From faee8f51a22d272e7a93bd2262d99ffa99b3dd3d Mon Sep 17 00:00:00 2001 From: sheycc <78368915+sheycc@users.noreply.github.com> Date: Fri, 7 May 2021 15:22:16 -0400 Subject: [PATCH 1/4] Phase one done (#1) * Set up egg-shell * Add some basic nodes * Add LetDef and FormalParam nodes * Add new module for expression nodes, add dispatch nodes * Add more expression nodes * Add constant nodes and more * Add module for operation nodes, add atomic nodes for arithmetic and logical binary operations * Add some arithmetic and logical operation nodes * Improve node's structure for binary and unary operations * Set up ply for lexer, add lexer egg-shell * Add some basic tokens for the tokens list * Add reserved words dictionary, setup required property tokens list * Add regular expression rules for simple tokens * Add some regular expression rules with action code * Make some changes, separate builtin types from reserved keywords * Add some ignore and track line numbers rules * Add string exclusive state and starts the string recognition * Add comment exclusive state and start multiple comment recognition * Add error token class and t_error rule * Add comment and string errors * Add row and col in nodes for handling errors * Specify some regular expression rules * Make some changes to the project structure * Add initial structure for parser development * Add precedence rules * Add some basic grammar rules functions * Add more grammar rules declaration * Add more grammar rules for dispatch methods * Add more grammar rules for assignment and control flow * Add more grammar rules for expression nodes, block let and case nodes * Add more grammar rules for expression nodes, new isvoid and id nodes * Add more grammar rules for expression nodes, constant nodes like integer string and boolean nodes * Add more grammar rules for expression nodes, binary and unary operations nodes * Add more grammar rules for empty and expressions with parenthesis declarations * Add error class for syntactic errors and error production for handling errors * Linking projects scripts for start testing * Add necessary descriptions on productions * Include some args to the yacc for building * Include some args to the lex for building and fix some typos * Fix some imports bugs * Fix more typos * Make some changes in main file for testing and make some corrections * Include find_col method in parser to fix bug, and more corrections in parser * Fixmore bugs in parser * Set up final details, include some comments and clean code * Phase one done, two to go. --- .gitignore | 1 + doc/Intro_ply.pdf | Bin 0 -> 135204 bytes src/code_generation/__init__.py | 0 src/coolc.sh | 6 +- src/lexer/__init__.py | 2 + src/lexer/error_token.py | 15 + src/lexer/lexer.py | 262 ++++++++++++ src/lextab.py | 10 + src/main.py | 31 ++ src/nodes/__init__.py | 4 + src/nodes/ast_nodes.py | 78 ++++ src/nodes/expr_nodes.py | 119 ++++++ src/nodes/operations_nodes.py | 83 ++++ src/parser/__init__.py | 2 + src/parser/parser.py | 374 ++++++++++++++++++ src/parser/parsetab.py | 90 +++++ src/parser/syntactic_error.py | 13 + src/semantic/__init__.py | 0 src/venv/bin/Activate.ps1 | 241 +++++++++++ src/venv/bin/activate | 76 ++++ src/venv/bin/activate.csh | 37 ++ src/venv/bin/activate.fish | 75 ++++ src/venv/bin/easy_install | 8 + src/venv/bin/pip | 8 + src/venv/bin/pip3 | 8 + src/venv/bin/py.test | 8 + src/venv/bin/pytest | 8 + src/venv/bin/python | 1 + src/venv/bin/python3 | 1 + src/venv/lib64 | 1 + src/venv/pyvenv.cfg | 3 + .../CacheControl-0.12.6-py2.py3-none-any.whl | Bin 0 -> 28023 bytes .../appdirs-1.4.3-py2.py3-none-any.whl | Bin 0 -> 18776 bytes .../certifi-2019.11.28-py2.py3-none-any.whl | Bin 0 -> 164552 bytes .../chardet-3.0.4-py2.py3-none-any.whl | Bin 0 -> 141487 bytes .../colorama-0.4.3-py2.py3-none-any.whl | Bin 0 -> 25094 bytes .../contextlib2-0.6.0-py2.py3-none-any.whl | Bin 0 -> 17188 bytes .../distlib-0.3.0-py2.py3-none-any.whl | Bin 0 -> 152027 bytes .../distro-1.4.0-py2.py3-none-any.whl | Bin 0 -> 23898 bytes .../html5lib-1.0.1-py2.py3-none-any.whl | Bin 0 -> 120020 bytes .../idna-2.8-py2.py3-none-any.whl | Bin 0 -> 66836 bytes .../ipaddr-2.2.0-py2.py3-none-any.whl | Bin 0 -> 24287 bytes .../lockfile-0.12.2-py2.py3-none-any.whl | Bin 0 -> 21972 bytes .../msgpack-0.6.2-py2.py3-none-any.whl | Bin 0 -> 92927 bytes .../packaging-20.3-py2.py3-none-any.whl | Bin 0 -> 42242 bytes .../pep517-0.8.2-py2.py3-none-any.whl | Bin 0 -> 26686 bytes .../pip-20.0.2-py2.py3-none-any.whl | Bin 0 -> 262196 bytes .../pkg_resources-0.0.0-py2.py3-none-any.whl | Bin 0 -> 127312 bytes .../progress-1.5-py2.py3-none-any.whl | Bin 0 -> 17547 bytes .../pyparsing-2.4.6-py2.py3-none-any.whl | Bin 0 -> 77093 bytes .../pytoml-0.1.21-py2.py3-none-any.whl | Bin 0 -> 17938 bytes .../requests-2.22.0-py2.py3-none-any.whl | Bin 0 -> 67470 bytes .../retrying-1.3.3-py2.py3-none-any.whl | Bin 0 -> 16358 bytes .../setuptools-44.0.0-py2.py3-none-any.whl | Bin 0 -> 477446 bytes .../six-1.14.0-py2.py3-none-any.whl | Bin 0 -> 20256 bytes .../urllib3-1.25.8-py2.py3-none-any.whl | Bin 0 -> 127041 bytes .../webencodings-0.5.1-py2.py3-none-any.whl | Bin 0 -> 20484 bytes .../wheel-0.34.2-py2.py3-none-any.whl | Bin 0 -> 35611 bytes src/yacctab.py | 90 +++++ 59 files changed, 1652 insertions(+), 3 deletions(-) create mode 100755 doc/Intro_ply.pdf create mode 100644 src/code_generation/__init__.py create mode 100644 src/lexer/__init__.py create mode 100644 src/lexer/error_token.py create mode 100644 src/lexer/lexer.py create mode 100644 src/lextab.py create mode 100644 src/main.py create mode 100644 src/nodes/__init__.py create mode 100644 src/nodes/ast_nodes.py create mode 100644 src/nodes/expr_nodes.py create mode 100644 src/nodes/operations_nodes.py create mode 100644 src/parser/__init__.py create mode 100644 src/parser/parser.py create mode 100644 src/parser/parsetab.py create mode 100644 src/parser/syntactic_error.py create mode 100644 src/semantic/__init__.py create mode 100644 src/venv/bin/Activate.ps1 create mode 100644 src/venv/bin/activate create mode 100644 src/venv/bin/activate.csh create mode 100644 src/venv/bin/activate.fish create mode 100755 src/venv/bin/easy_install create mode 100755 src/venv/bin/pip create mode 100755 src/venv/bin/pip3 create mode 100755 src/venv/bin/py.test create mode 100755 src/venv/bin/pytest create mode 120000 src/venv/bin/python create mode 120000 src/venv/bin/python3 create mode 120000 src/venv/lib64 create mode 100644 src/venv/pyvenv.cfg create mode 100644 src/venv/share/python-wheels/CacheControl-0.12.6-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/certifi-2019.11.28-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/chardet-3.0.4-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/colorama-0.4.3-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/contextlib2-0.6.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/distlib-0.3.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/distro-1.4.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/html5lib-1.0.1-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/idna-2.8-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/ipaddr-2.2.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/msgpack-0.6.2-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/packaging-20.3-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/pip-20.0.2-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/progress-1.5-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/pyparsing-2.4.6-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/pytoml-0.1.21-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/requests-2.22.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/setuptools-44.0.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/six-1.14.0-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/urllib3-1.25.8-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/webencodings-0.5.1-py2.py3-none-any.whl create mode 100644 src/venv/share/python-wheels/wheel-0.34.2-py2.py3-none-any.whl create mode 100644 src/yacctab.py diff --git a/.gitignore b/.gitignore index 4acafde18..e041901f4 100644 --- a/.gitignore +++ b/.gitignore @@ -408,3 +408,4 @@ dmypy.json # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) +/venv \ No newline at end of file diff --git a/doc/Intro_ply.pdf b/doc/Intro_ply.pdf new file mode 100755 index 0000000000000000000000000000000000000000..47618b56369ea2390f6c6137cb17c4a088cd53f2 GIT binary patch literal 135204 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 DgOvcU literal 0 HcmV?d00001 diff --git a/src/code_generation/__init__.py b/src/code_generation/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/coolc.sh b/src/coolc.sh index 3088de4f9..1e66f9515 100755 --- a/src/coolc.sh +++ b/src/coolc.sh @@ -4,8 +4,8 @@ INPUT_FILE=$1 OUTPUT_FILE=${INPUT_FILE:0: -2}mips # Si su compilador no lo hace ya, aquí puede imprimir la información de contacto -echo "LINEA_CON_NOMBRE_Y_VERSION_DEL_COMPILADOR" # TODO: Recuerde cambiar estas -echo "Copyright (c) 2019: Nombre1, Nombre2, Nombre3" # TODO: líneas a los valores correctos +echo "Cool Compiler version 1.0" # TODO: Recuerde cambiar estas +echo "Copyright (c) 2021: Laura Brito Guerrero, Sheyla Cruz Castro, Ariel Huerta Martin" # TODO: líneas a los valores correctos # Llamar al compilador -echo "Compiling $INPUT_FILE into $OUTPUT_FILE" +python3 main.py $INPUT_FILE diff --git a/src/lexer/__init__.py b/src/lexer/__init__.py new file mode 100644 index 000000000..f19d07a61 --- /dev/null +++ b/src/lexer/__init__.py @@ -0,0 +1,2 @@ +from .error_token import ErrorToken +from .lexer import MyLexer diff --git a/src/lexer/error_token.py b/src/lexer/error_token.py new file mode 100644 index 000000000..dac7fcc37 --- /dev/null +++ b/src/lexer/error_token.py @@ -0,0 +1,15 @@ +from ply.lex import LexToken + +class ErrorToken(LexToken): + def __init__(self, msg, line, column): + super().__init__() + self.type = 'LexicographicError' + self.value = msg + self.line = line + self.column = column + + def __str__(self): + return f'({self.line}, {self.column}) - {self.type}: {self.value}' + + def __repr__(self): + return str(self) \ No newline at end of file diff --git a/src/lexer/lexer.py b/src/lexer/lexer.py new file mode 100644 index 000000000..fd77cd55a --- /dev/null +++ b/src/lexer/lexer.py @@ -0,0 +1,262 @@ +import ply.lex as lex +import sys +from .error_token import ErrorToken + +class MyLexer(): + def __init__(self, debug=False, lextab="lextab", optimize="False", outputdir="", debuglog=None, errorlog=None): + self.build( + debug=debug, lextab=lextab, optimize=optimize, outputdir=outputdir, debuglog=debuglog, errorlog=errorlog) + + # Build the lexer + def build(self, **kwargs): + self.tokens = self.get_basic_tok() + list(self.get_reserved_keywds().values()) + list(self.get_builtin_types().values()) + self.reserved = list(self.get_reserved_keywds().values()) + list(self.get_builtin_types().values()) + self.errors = [] + self.lexer = lex.lex(module=self, **kwargs) + + # The tokens list + def get_basic_tok(self): + return [ + "INTEGER", + "STRING", + "BOOLEAN", + "PLUS", + "MINUS", + "MULTIPLY", + "DIVIDE", + "EQUAL", + "LESS", + "LESSEQ", + "ASSIGN", + "NOX", + "ID", + "TYPE", + "LPAREN", + "RPAREN", + "LBRACE", + "RBRACE", + "COLON", + "SEMIC", + "COMMA", + "DOT", + "ARROBA", + "ARROW", + "LexicographicError" + ] + + def get_reserved_keywds(self): + return { + "class": "CLASS", + "case": "CASE", + "esac": "ESAC", + "let": "LET", + "in": "IN", + "inherits": "INHERITS", + "isvoid": "ISVOID", + "new": "NEW", + "if": "IF", + "else": "ELSE", + "then": "THEN", + "fi": "FI", + "while": "WHILE", + "loop": "LOOP", + "pool": "POOL", + "true": "TRUE", + "false": "FALSE", + "not": "NOT", + "of": "OF" + } + + def get_builtin_types(self): + return { + "Object": "OBJECT_TYPE", + "Int": "INT_TYPE", + "String": "STRING_TYPE", + "Bool": "BOOL_TYPE", + "SELF_TYPE": "SELF_TYPE", + "Main": "MAIN_TYPE", + "IO": "IO_TYPE" + } + + # Regular expression rules for simple tokens + t_PLUS = r'\+' + t_MINUS = r'\-' + t_MULTIPLY = r'\*' + t_DIVIDE = r'\/' + t_EQUAL = r'\=' + t_LESS = r'\<' + t_LESSEQ = r'\<\=' + t_ASSIGN = r'\<\-' + t_NOX = r'~' + t_LPAREN = r'\(' + t_RPAREN = r'\)' + t_LBRACE = r'\{' + t_RBRACE = r'\}' + t_COLON = r'\:' + t_SEMIC = r'\;' + t_COMMA = r'\,' + t_DOT = r'\.' + t_ARROBA = r'\@' + t_ARROW = r'\=\>' + t_ignore = ' \t\r\f' + t_ignore_LINE_COMMENT = r"\-\-[^\n]*" + + # Regular expression rules with some action code + def t_INTEGER(self, tok): + r"\d+" + tok.value = int(tok.value) + return tok + + def t_ID(self, tok): + r"[a-z][a-zA-Z_0-9]*" + if self.get_reserved_keywds().__contains__(str.lower(tok.value)): + tok.value = str.lower(tok.value) + tok.type = self.get_reserved_keywds()[str.lower(tok.value)] + else: + tok.type = "ID" + return tok + + def t_TYPE(self, tok): + r"[A-Z][a-zA-Z_0-9]*" + if self.get_reserved_keywds().__contains__(str.lower(tok.value)): + tok.value = str.lower(tok.value) + tok.type = self.get_reserved_keywds()[str.lower(tok.value)] + else: + tok.type = "TYPE" + return tok + + def t_newline(self, tok): + r"\n+" + tok.lexer.lineno += len(tok.value) + + states = ( + ('STRING', 'exclusive'), + ('COMMENT', 'exclusive') + ) + + # String Matching State + t_STRING_ignore = '' + + def t_STRING_newline(self, tok): + r"\n" + tok.lexer.lineno += 1 + if not tok.lexer.backslashed: + error = ErrorToken(f'Unterminated string constant', tok.lineno, self.find_col(tok.lexer.lexdata,tok.lexpos)) + self.errors.append(error) + tok.lexer.pop_state() + return error + else: + tok.lexer.backslashed = False + + def t_start_string_state(self, tok): + r"\"" + tok.lexer.push_state("STRING") + tok.lexer.backslashed = False + tok.lexer.string = "" + + def t_STRING_end(self, tok): + r"\"" + if not tok.lexer.backslashed: + tok.lexer.pop_state() + tok.value = tok.lexer.string + tok.type = "STRING" + return tok + else: + tok.lexer.string += '"' + tok.lexer.backslashed = False + + def t_STRING_null(self, tok): + r"\0" + error = ErrorToken(f'String contains null character', tok.lineno, self.find_col(tok.lexer.lexdata,tok.lexpos)) + self.errors.append(error) + + def t_STRING_anything(self, tok): + r"[^\n]" + if tok.lexer.backslashed: + if tok.value == 'b': + tok.lexer.string += '\b' + elif tok.value == 'n': + tok.lexer.string += '\n' + elif tok.value == 'f': + tok.lexer.string += '\f' + elif tok.value == 't': + tok.lexer.string += '\t' + elif tok.value == '\\': + tok.lexer.string += '\\' + else: + tok.lexer.string += tok.value + tok.lexer.backslashed = False + else: + if tok.value != '\\': + tok.lexer.string += tok.value + else: + tok.lexer.backslashed = True + + def t_STRING_error(self, tok): + error = ErrorToken(f'{tok.value[0]} in string constant', tok.lineno, self.find_col(tok.lexer.lexdata,tok.lexpos)) + self.errors.append(error) + return error + + def t_STRING_eof(self, tok): + error = ErrorToken(f'EOF in string constant', tok.lineno, self.find_col(tok.lexer.lexdata,tok.lexpos)) + tok.lexer.pop_state() + self.errors.append(error) + return error + + # Comments Multiline State + t_COMMENT_ignore = '' + + def t_COMMENT_newline(self, tok): + r"\n+" + tok.lexer.lineno += len(tok.value) + + def t_start_comment_state(self, tok): + r'\(\*' + tok.lexer.push_state("COMMENT") + tok.lexer.comment_count = 0 + + def t_COMMENT_end(self, tok): + r'\*\)' + if tok.lexer.comment_count == 0: + tok.lexer.pop_state() + else: + tok.lexer.comment_count -= 1 + + def t_COMMENT_another(self, tok): + r'\(\*' + tok.lexer.comment_count += 1 + + def t_COMMENT_error(self, tok): + tok.lexer.skip(1) + + def t_COMMENT_eof(self, tok): + error = ErrorToken(f'EOF in comment', tok.lineno, self.find_col(tok.lexer.lexdata,tok.lexpos)) + tok.lexer.pop_state() + self.errors.append(error) + return error + + # Error handling + def t_error(self, tok): + error = ErrorToken(f'ERROR "{tok.value[0]}"', tok.lineno, self.find_col(tok.lexer.lexdata,tok.lexpos)) + tok.lexer.skip(1) + self.errors.append(error) + return error + + def find_col(self, input, lexpos): + _start = input.rfind('\n', 0, lexpos) + 1 + return (lexpos - _start) + 1 + + def token(self): + return self.lexer.token() + + def tokenize(self, _cool_program): + self.lexer.input(_cool_program) + _tokens = [] + while True: + _tok = self.token() + if not _tok: + raise Exception() + _tokens.append(_tok) + return(_tokens) + + \ No newline at end of file diff --git a/src/lextab.py b/src/lextab.py new file mode 100644 index 000000000..65b4ff945 --- /dev/null +++ b/src/lextab.py @@ -0,0 +1,10 @@ +# lextab.py. This file automatically created by PLY (version 3.11). Don't edit! +_tabversion = '3.10' +_lextokens = set(('ARROBA', 'ARROW', 'ASSIGN', 'BOOLEAN', 'BOOL_TYPE', 'CASE', 'CLASS', 'COLON', 'COMMA', 'DIVIDE', 'DOT', 'ELSE', 'EQUAL', 'ESAC', 'FALSE', 'FI', 'ID', 'IF', 'IN', 'INHERITS', 'INTEGER', 'INT_TYPE', 'IO_TYPE', 'ISVOID', 'LBRACE', 'LESS', 'LESSEQ', 'LET', 'LOOP', 'LPAREN', 'LexicographicError', 'MAIN_TYPE', 'MINUS', 'MULTIPLY', 'NEW', 'NOT', 'NOX', 'OBJECT_TYPE', 'OF', 'PLUS', 'POOL', 'RBRACE', 'RPAREN', 'SELF_TYPE', 'SEMIC', 'STRING', 'STRING_TYPE', 'THEN', 'TRUE', 'TYPE', 'WHILE')) +_lexreflags = 64 +_lexliterals = '' +_lexstateinfo = {'INITIAL': 'inclusive', 'STRING': 'exclusive', 'COMMENT': 'exclusive'} +_lexstatere = {'INITIAL': [('(?P\\d+)|(?P[a-z][a-zA-Z_0-9]*)|(?P[A-Z][a-zA-Z_0-9]*)|(?P\\n+)|(?P\\")|(?P\\(\\*)|(?P\\-\\-[^\\n]*)|(?P\\=\\>)|(?P\\<\\-)|(?P\\<\\=)|(?P\\@)|(?P\\:)|(?P\\,)|(?P\\/)|(?P\\.)|(?P\\=)|(?P\\{)|(?P\\<)|(?P\\()|(?P\\-)|(?P\\*)|(?P\\+)|(?P\\})|(?P\\))|(?P\\;)|(?P~)', [None, ('t_INTEGER', 'INTEGER'), ('t_ID', 'ID'), ('t_TYPE', 'TYPE'), ('t_newline', 'newline'), ('t_start_string_state', 'start_string_state'), ('t_start_comment_state', 'start_comment_state'), (None, None), (None, 'ARROW'), (None, 'ASSIGN'), (None, 'LESSEQ'), (None, 'ARROBA'), (None, 'COLON'), (None, 'COMMA'), (None, 'DIVIDE'), (None, 'DOT'), (None, 'EQUAL'), (None, 'LBRACE'), (None, 'LESS'), (None, 'LPAREN'), (None, 'MINUS'), (None, 'MULTIPLY'), (None, 'PLUS'), (None, 'RBRACE'), (None, 'RPAREN'), (None, 'SEMIC'), (None, 'NOX')])], 'STRING': [('(?P\\n)|(?P\\")|(?P\\0)|(?P[^\\n])', [None, ('t_STRING_newline', 'newline'), ('t_STRING_end', 'end'), ('t_STRING_null', 'null'), ('t_STRING_anything', 'anything')])], 'COMMENT': [('(?P\\n+)|(?P\\*\\))|(?P\\(\\*)', [None, ('t_COMMENT_newline', 'newline'), ('t_COMMENT_end', 'end'), ('t_COMMENT_another', 'another')])]} +_lexstateignore = {'COMMENT': '', 'STRING': '', 'INITIAL': ' \t\r\x0c'} +_lexstateerrorf = {'COMMENT': 't_COMMENT_error', 'STRING': 't_STRING_error', 'INITIAL': 't_error'} +_lexstateeoff = {'COMMENT': 't_COMMENT_eof', 'STRING': 't_STRING_eof'} diff --git a/src/main.py b/src/main.py new file mode 100644 index 000000000..85c7b48ea --- /dev/null +++ b/src/main.py @@ -0,0 +1,31 @@ +from lexer import MyLexer +from parser import MyParser +import sys + +if __name__ == "__main__": + + _mylexer = MyLexer() + _myparser = MyParser() + + if len(sys.argv) > 1: + _file = sys.argv[1] + _cool_program = open(_file, encoding="utf-8").read() + try: + _mylexer_result = _mylexer.tokenize(_cool_program) + except: + pass + + if _mylexer.errors: + print(_mylexer.errors[0]) + exit(1) + try: + _myparse_result = _myparser.parse(_cool_program) + except: + pass + + if _myparser.errors: + print(_myparser.errors[0]) + exit(1) + + # SemanticTODO + # CodeGenTODO \ No newline at end of file diff --git a/src/nodes/__init__.py b/src/nodes/__init__.py new file mode 100644 index 000000000..b8f0abecb --- /dev/null +++ b/src/nodes/__init__.py @@ -0,0 +1,4 @@ +from .ast_nodes import * +from .expr_nodes import * +from .operations_nodes import * + diff --git a/src/nodes/ast_nodes.py b/src/nodes/ast_nodes.py new file mode 100644 index 000000000..90d94680a --- /dev/null +++ b/src/nodes/ast_nodes.py @@ -0,0 +1,78 @@ +class AST: + def __init__(self): + pass + +class ProgramNode(AST): + def __init__(self, classes): + super(ProgramNode, self).__init__() + self.classes = classes + +class ClassNode(AST): + def __init__(self, name, parent, features, row , col): + super(ClassNode, self).__init__() + self.name = name + self.parent = parent + self.features = features + self.row = row + self.col = col + +class ClassMethodNode(AST): + def __init__(self, name, params, expression, return_type, row , col): + super(ClassMethodNode, self).__init__() + self.name = name + self.params = params + self.expression = expression + self.return_type = return_type + self.row = row + self.col = col + +class AttrInitNode(AST): + def __init__(self, name, attr_type, expression, row , col): + super(AttrInitNode, self).__init__() + self.name = name + self.attr_type = attr_type + self.expression = expression + self.row = row + self.col = col + +class AttrDefNode(AST): + def __init__(self, name, attr_type, row , col): + super(AttrDefNode, self).__init__() + self.name = name + self.attr_type = attr_type + self.row = row + self.col = col + +class ActionNode(AST): + def __init__(self, name, act_type, body, row , col): + super(ActionNode, self).__init__() + self.name = name + self.act_type = act_type + self.body = body + self.row = row + self.col = col + +class LetInitNode(AST): + def __init__(self, name, let_type, expression, row , col): + super(LetInitNode, self).__init__() + self.name = name + self.let_type = let_type + self.expression = expression + self.row = row + self.col = col + +class LetDefNode(AST): + def __init__(self, name, let_type, row , col): + super(LetDefNode, self).__init__() + self.name = name + self.let_type = let_type + self.row = row + self.col = col + +class FormalParamNode(AST): + def __init__(self, name, param_type, row , col): + super(FormalParamNode, self).__init__() + self.name = name + self.param_type = param_type + self.row = row + self.col = col \ No newline at end of file diff --git a/src/nodes/expr_nodes.py b/src/nodes/expr_nodes.py new file mode 100644 index 000000000..46fadbd23 --- /dev/null +++ b/src/nodes/expr_nodes.py @@ -0,0 +1,119 @@ +from .ast_nodes import AST + +class ExpressionNode(AST): + def __init__(self): + super(ExpressionNode, self).__init__() + self.expr_type = None + +class DynamicCallNode(ExpressionNode): + def __init__(self, obj, method, args, row , col): + super(DynamicCallNode, self).__init__() + self.obj = obj + self.method = method + self.args = args + self.row = row + self.col = col + +class StaticCallNode(ExpressionNode): + def __init__(self, obj, static_type, method, args, row, col): + super(StaticCallNode, self).__init__() + self.obj = obj + self.static_type = static_type + self.method = method + self.args = args + self.row = row + self.col = col + +class AssignNode(ExpressionNode): + def __init__(self, name, expression, row, col): + super(AssignNode, self).__init__() + self.name = name + self.expression = expression + self.row = row + self.col = col + +class IfNode(ExpressionNode): + def __init__(self, predicate, then_expr, else_expr, row, col): + super(IfNode, self).__init__() + self.predicate = predicate + self.then_expr = then_expr + self.else_expr = else_expr + self.row = row + self.col = col + +class WhileNode(ExpressionNode): + def __init__(self, predicate, expression, row, col): + super(WhileNode, self).__init__() + self.predicate = predicate + self.expression = expression + self.row = row + self.col = col + +class BlockNode(ExpressionNode): + def __init__(self, expr_list, row , col): + super(BlockNode, self).__init__() + self.expr_list = expr_list + +class LetNode(ExpressionNode): + def __init__(self, init_list, body, row, col): + super(LetNode, self).__init__() + self.init_list = init_list + self.body = body + self.row = row + self.col = col + +class CaseNode(ExpressionNode): + def __init__(self, expression, act_list, row, col): + super(CaseNode, self).__init__() + self.expression = expression + self.act_list = act_list + self.row = row + self.col = col + +class NewNode(ExpressionNode): + def __init__(self, new_type, row, col): + super(NewNode, self).__init__() + self.new_type = new_type + self.row = row + self.col = col + +class IsVoidNode(ExpressionNode): + def __init__(self, expression, row, col): + super(IsVoidNode, self).__init__() + self.expression = expression + self.row = row + self.col = col + +class IdNode(ExpressionNode): + def __init__(self, name, row, col): + super(IdNode, self).__init__() + self.name = name + +class EqualsNode(ExpressionNode): + def __init__(self, left, right, row, col): + super(EqualsNode, self).__init__() + self.left = left + self.right = right + self.row = row + self.col = col + +class IntegerNode(ExpressionNode): + def __init__(self, value, row, col): + super(IntegerNode, self).__init__() + self.value = value + self.row = row + self.col = col + +class StringNode(ExpressionNode): + def __init__(self, value, row, col): + super(StringNode, self).__init__() + self.value = value + self.row = row + self.col = col + +class BooleanNode(ExpressionNode): + def __init__(self, value, row, col): + super(BooleanNode, self).__init__() + self.value = value + self.row = row + self.col = col diff --git a/src/nodes/operations_nodes.py b/src/nodes/operations_nodes.py new file mode 100644 index 000000000..7bc8dadc1 --- /dev/null +++ b/src/nodes/operations_nodes.py @@ -0,0 +1,83 @@ +from .expr_nodes import ExpressionNode + +class BinaryOpNode(ExpressionNode): + def __init__(self): + super(BinaryOpNode, self).__init__() + pass + +class UnaryOpNode(ExpressionNode): + def __init__(self): + super(UnaryOpNode, self).__init__() + pass + +class ArithBinOpNode(BinaryOpNode): + def __init__(self): + super(ArithBinOpNode, self).__init__() + pass + +class LogicBinOpNode(BinaryOpNode): + def __init__(self): + super(LogicBinOpNode, self).__init__() + pass + +class NotNode(UnaryOpNode): + def __init__(self, expression, row, col): + super(NotNode, self).__init__() + self.expression = expression + self.row = row + self.col = col + +class LogicNotNode(UnaryOpNode): + def __init__(self, expression, row, col): + super(LogicNotNode, self).__init__() + self.expression = expression + self.row = row + self.col = col + +class SumNode(ArithBinOpNode): + def __init__(self, left, right, row, col): + super(SumNode, self).__init__() + self.left = left + self.right = right + self.row = row + self.col = col + +class SubNode(ArithBinOpNode): + def __init__(self, left, right, row, col): + super(SubNode, self).__init__() + self.left = left + self.right = right + self.row = row + self.col = col + +class MultNode(ArithBinOpNode): + def __init__(self, left, right, row, col): + super(MultNode, self).__init__() + self.left = left + self.right = right + self.row = row + self.col = col + +class DivNode(ArithBinOpNode): + def __init__(self, left, right, row, col): + super(DivNode, self).__init__() + self.left = left + self.right = right + self.row = row + self.col = col + +class LessNode(LogicBinOpNode): + def __init__(self, left, right, row, col): + super(LessNode, self).__init__() + self.left = left + self.right = right + self.row = row + self.col = col + +class LessEqualNode(LogicBinOpNode): + def __init__(self, left, right, row, col): + super(LessEqualNode, self).__init__() + self.left = left + self.right = right + self.row = row + self.col = col diff --git a/src/parser/__init__.py b/src/parser/__init__.py new file mode 100644 index 000000000..11bb53991 --- /dev/null +++ b/src/parser/__init__.py @@ -0,0 +1,2 @@ +from .syntactic_error import SyntaxError +from .parser import * diff --git a/src/parser/parser.py b/src/parser/parser.py new file mode 100644 index 000000000..9cf7861c2 --- /dev/null +++ b/src/parser/parser.py @@ -0,0 +1,374 @@ +import ply.yacc as yacc +from nodes import * +from lexer import MyLexer +from .syntactic_error import SyntaxError +import sys + +class MyParser(): + def __init__(self, build_parser=True, debug=False, write_tables=True, optimize=True, outputdir="", yacctab="pycoolc.yacctab", debuglog=None, errorlog=None, tracking =True): + + self.build(debug=debug, write_tables=write_tables, optimize=optimize, outputdir=outputdir, + yacctab=yacctab, debuglog=debuglog, errorlog=errorlog) + + # Build the parser + def build(self, **kwargs): + + debug = kwargs.get("debug") + write_tables = kwargs.get("write_tables") + optimize = kwargs.get("optimize") + outputdir = kwargs.get("outputdir") + yacctab = kwargs.get("yacctab") + debuglog = kwargs.get("debuglog") + + self.lexer = MyLexer() + self.tokens = self.lexer.tokens + self.errors = [] + self.parser = yacc.yacc(module=self, write_tables=write_tables, debug=debug, optimize=optimize, + outputdir=outputdir, tabmodule=yacctab, debuglog=debuglog, errorlog=yacc.NullLogger()) + + def parse(self, _cool_program): + return self.parser.parse(_cool_program) + + def find_col(self, input, lexpos): + _start = input.rfind('\n', 0, lexpos) + 1 + return (lexpos - _start) + 1 + + # Precedence rules + precedence = ( + ('right', 'ASSIGN'), + ('right', 'NOT'), + ('nonassoc', 'LESS', 'LESSEQ', 'EQUAL'), + ('left', 'PLUS', 'MINUS'), + ('left', 'MULTIPLY', 'DIVIDE'), + ('right', 'ISVOID'), + ('right', 'NOX'), + ('right', 'ARROBA'), + ('right', 'DOT') + ) + + # Grammar rules declarations + def p_program(self, p): + ''' + program : class_list + ''' + p[0] = ProgramNode(classes=p[1]) + + def p_class_list(self, p): + ''' + class_list : class_list class SEMIC + | class SEMIC + ''' + p[0] = (p[1],) if len(p) == 3 else p[1] + (p[2],) + + def p_def_class(self, p): + ''' + class : CLASS TYPE LBRACE feature_opt RBRACE + ''' + p[0] = ClassNode( + name=p[2], parent='Object', features=p[4], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + + def p_def_class_inherits(self, p): + ''' + class : CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE + ''' + p[0] = ClassNode( + name=p[2], parent=p[4], features=p[6], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(4))) + + def p_feature_list(self, p): + ''' + feature_list : feature_list feature SEMIC + | feature SEMIC + ''' + p[0] = (p[1],) if len(p) == 3 else p[1] + (p[2],) + + def p_feature_opt(self, p): + ''' + feature_opt : feature_list + | empty + ''' + p[0] = tuple() if p.slice[1].type == "empty" else p[1] + + def p_feature_f_class_method(self, p): + ''' + feature : ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE + ''' + p[0] = ClassMethodNode( + name=p[1], params=p[3], expression=p[8], return_type=p[6], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_feature_class_method(self, p): + ''' + feature : ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE + ''' + p[0] = ClassMethodNode( + name=p[1], params=tuple(), expression=p[7], return_type=p[5], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_feature_attr(self, p): + ''' + feature : attr_init + ''' + p[0] = p[1] + + def p_attr_init(self, p): + ''' + attr_init : ID COLON TYPE ASSIGN expr + | attr_def + ''' + p[0] = p[1] if len(p) == 2 else AttrInitNode( + name=p[1], attr_type=p[3], expression=p[5], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_attr_def(self, p): + ''' + attr_def : ID COLON TYPE + ''' + p[0] = AttrDefNode( + name=p[1], attr_type=p[3], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_action_list(self, p): + ''' + action_list : action_list action + | action + ''' + p[0] = (p[1],) if len(p) == 2 else tuple(p[1]) + (p[2],) + + def p_action(self, p): + ''' + action : ID COLON TYPE ARROW expr SEMIC + ''' + p[0] = ActionNode( + name=p[1], act_type=p[3], body=p[5], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_let_var(self, p): + ''' + let_var : let_init + | let_var COMMA let_init + ''' + p[0] = (p[1],) if len(p) == 2 else p[1] + (p[3],) + + def p_let_init(self, p): + ''' + let_init : ID COLON TYPE ASSIGN expr + | let_def + ''' + p[0] = p[1] if len(p) == 2 else LetInitNode( + name=p[1], let_type=p[3], expression=p[5], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + + def p_let_def(self, p): + ''' + let_def : ID COLON TYPE + ''' + p[0] = LetDefNode( + name=p[1], let_type=p[3], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_formal_param_list(self, p): + ''' + formal_param_list : formal_param_list COMMA formal_param + | formal_param + ''' + p[0] = (p[1],) if len(p) == 2 else p[1] + (p[3],) + + def p_formal_param(self, p): + ''' + formal_param : ID COLON TYPE + ''' + p[0] = FormalParamNode( + name=p[1], param_type=p[3], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_args_list(self, p): + ''' + args_list : args_list COMMA expr + | expr + ''' + p[0] = (p[1],) if len(p) == 2 else p[1] + (p[3],) + + def p_args_list_opt(self, p): + ''' + args_list_opt : args_list + | empty + ''' + p[0] = tuple() if p.slice[1].type == "empty" else p[1] + + def p_expr_dynamic_call(self, p): + ''' + expr : expr DOT ID LPAREN args_list_opt RPAREN + ''' + p[0] = DynamicCallNode( + obj=p[1], method=p[3], args=p[5], row=p.lineno(3), col=self.find_col(p.lexer.lexdata, p.lexpos(3))) + + def p_expr_static_call(self, p): + ''' + expr : expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN + ''' + p[0] = StaticCallNode( + obj=p[1], static_type=p[3], method=p[5], args=p[7], row=p.lineno(5), col=self.find_col(p.lexer.lexdata, p.lexpos(5))) + + def p_expr_self_call(self, p): + ''' + expr : ID LPAREN args_list_opt RPAREN + ''' + p[0] = DynamicCallNode( + obj=IdNode('self', row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))), method=p[1], args=p[3], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_assign(self, p): + ''' + expr : ID ASSIGN expr + ''' + p[0] = AssignNode( + name=p[1], expression=p[3], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_if(self, p): + ''' + expr : IF expr THEN expr ELSE expr FI + ''' + p[0] = IfNode( + predicate=p[2], then_expr=p[4], else_expr=p[6], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_while(self, p): + ''' + expr : WHILE expr LOOP expr POOL + ''' + p[0] = WhileNode( + predicate=p[2], expression=p[4], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_block_list(self, p): + ''' + block_list : block_list expr SEMIC + | expr SEMIC + ''' + p[0] = (p[1],) if len(p) == 3 else p[1] + (p[2],) + + def p_expr_block(self, p): + ''' + expr : LBRACE block_list RBRACE + ''' + p[0] = BlockNode( + expr_list=p[2], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_simple_let(self, p): + ''' + expr : let_expr + ''' + p[0] = p[1] + + def p_expr_let(self, p): + ''' + let_expr : LET let_var IN expr + ''' + p[0] = LetNode( + init_list=p[2], body=p[4], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + + def p_expr_case(self, p): + ''' + expr : CASE expr OF action_list ESAC + ''' + p[0] = CaseNode( + expression=p[2], act_list=p[4], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_new(self, p): + ''' + expr : NEW TYPE + ''' + p[0] = NewNode( + new_type=p[2], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + + def p_expr_isvoid(self, p): + ''' + expr : ISVOID expr + ''' + p[0] = IsVoidNode( + expression=p[2], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + + def p_expr_id(self, p): + ''' + expr : ID + ''' + p[0] = IdNode( + name=p[1], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_int(self, p): + ''' + expr : INTEGER + ''' + p[0] = IntegerNode( + value=p[1], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_str(self, p): + ''' + expr : STRING + ''' + p[0] = StringNode( + value=p[1], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_bool(self, p): + ''' + expr : TRUE + | FALSE + ''' + p[0] = BooleanNode( + value=p[1], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_binary_op(self, p): + ''' + expr : expr PLUS expr + | expr MINUS expr + | expr MULTIPLY expr + | expr DIVIDE expr + | expr LESS expr + | expr LESSEQ expr + | expr EQUAL expr + ''' + if p[2] == '+': + p[0] = SumNode( + left=p[1], right=p[3], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + elif p[2] == '-': + p[0] = SubNode( + left=p[1], right=p[3], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + elif p[2] == '*': + p[0] = MultNode( + left=p[1], right=p[3], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + elif p[2] == '/': + p[0] = DivNode( + left=p[1], right=p[3], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + elif p[2] == '<': + p[0] = LessNode( + left=p[1], right=p[3], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + elif p[2] == '<=': + p[0] = LessEqualNode( + left=p[1], right=p[3], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + elif p[2] == '=': + p[0] = EqualsNode( + left=p[1], right=p[3], row=p.lineno(2), col=self.find_col(p.lexer.lexdata, p.lexpos(2))) + + def p_expr_unary_op(self, p): + ''' + expr : NOX expr + | NOT expr + ''' + if p[1] == '~': + p[0] = LogicNotNode( + expression=p[2], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + elif p[1].lower() == 'not': + p[0] = NotNode( + expression=p[2], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + + def p_expr_parenthesis(self, p): + ''' + expr : LPAREN expr RPAREN + ''' + p[0] = p[2] + + def p_empty(self, p): + ''' + empty : + ''' + p[0] = None + + # Error rule for Syntax Errors handling + def p_error(self, p): + if p: + self.errors.append(SyntaxError(f'"ERROR at or near {p.value}"', p.lineno, self.find_col(p.lexer.lexdata, p.lexpos))) + self.parser.errok() + else: + self.errors.append(SyntaxError('"ERROR at or near EOF"',0,0)) + return + + \ No newline at end of file diff --git a/src/parser/parsetab.py b/src/parser/parsetab.py new file mode 100644 index 000000000..f9a0e3fa4 --- /dev/null +++ b/src/parser/parsetab.py @@ -0,0 +1,90 @@ + +# parsetab.py +# This file is automatically generated. Do not edit. +# pylint: disable=W,C,R +_tabversion = '3.10' + +_lr_method = 'LALR' + +_lr_signature = 'rightASSIGNrightNOTnonassocLESSLESSEQEQUALleftPLUSMINUSleftMULTIPLYDIVIDErightISVOIDrightNOXrightARROBArightDOTARROBA ARROW ASSIGN BOOLEAN BOOL_TYPE CASE CLASS COLON COMMA DIVIDE DOT ELSE EQUAL ESAC FALSE FI ID IF IN INHERITS INTEGER INT_TYPE IO_TYPE ISVOID LBRACE LESS LESSEQ LET LOOP LPAREN LexicographicError MAIN_TYPE MINUS MULTIPLY NEW NOT NOX OBJECT_TYPE OF PLUS POOL RBRACE RPAREN SELF_TYPE SEMIC STRING STRING_TYPE THEN TRUE TYPE WHILE\n program : class_list\n \n class_list : class_list class SEMIC\n | class SEMIC\n \n class : CLASS TYPE LBRACE feature_opt RBRACE\n \n class : CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE\n \n feature_list : feature_list feature SEMIC\n | feature SEMIC\n \n feature_opt : feature_list\n | empty\n \n feature : ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE\n \n feature : ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE\n \n feature : attr_init\n \n attr_init : ID COLON TYPE ASSIGN expr \n | attr_def\n \n attr_def : ID COLON TYPE\n \n action_list : action_list action\n | action\n \n action : ID COLON TYPE ARROW expr SEMIC\n \n let_var : let_init\n | let_var COMMA let_init\n \n let_init : ID COLON TYPE ASSIGN expr \n | let_def\n \n let_def : ID COLON TYPE\n \n formal_param_list : formal_param_list COMMA formal_param\n | formal_param\n \n formal_param : ID COLON TYPE\n \n args_list : args_list COMMA expr\n | expr\n \n args_list_opt : args_list\n | empty\n \n expr : expr DOT ID LPAREN args_list_opt RPAREN\n \n expr : expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN\n \n expr : ID LPAREN args_list_opt RPAREN\n \n expr : ID ASSIGN expr\n \n expr : IF expr THEN expr ELSE expr FI\n \n expr : WHILE expr LOOP expr POOL\n \n block_list : block_list expr SEMIC\n | expr SEMIC\n \n expr : LBRACE block_list RBRACE\n \n expr : let_expr\n \n let_expr : LET let_var IN expr\n \n expr : CASE expr OF action_list ESAC\n \n expr : NEW TYPE\n \n expr : ISVOID expr\n \n expr : ID\n \n expr : INTEGER\n \n expr : STRING\n \n expr : TRUE \n | FALSE\n \n expr : expr PLUS expr\n | expr MINUS expr\n | expr MULTIPLY expr\n | expr DIVIDE expr\n | expr LESS expr\n | expr LESSEQ expr\n | expr EQUAL expr\n \n expr : NOX expr\n | NOT expr\n \n expr : LPAREN expr RPAREN\n \n empty :\n ' + +_lr_action_items = {'CLASS':([0,2,6,8,],[4,4,-3,-2,]),'$end':([1,2,6,8,],[0,-1,-3,-2,]),'SEMIC':([3,5,14,16,17,19,20,30,37,42,43,48,52,53,54,55,76,78,79,80,81,92,95,96,97,98,99,100,101,102,105,106,113,114,124,127,132,133,137,143,145,146,],[6,8,21,-12,-14,-4,25,-15,-5,-45,-13,-40,-46,-47,-48,-49,107,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,120,-11,-33,-41,-10,-36,-42,-31,-35,-32,147,]),'TYPE':([4,10,23,32,35,39,50,64,111,135,],[7,18,30,38,41,59,78,94,126,140,]),'LBRACE':([7,18,36,41,44,45,46,47,49,51,56,57,59,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[9,24,47,60,47,47,47,47,47,47,47,47,86,47,47,47,47,47,47,47,47,47,47,47,47,47,47,-38,47,47,47,-37,47,47,47,47,]),'INHERITS':([7,],[10,]),'RBRACE':([9,11,12,13,21,24,25,31,42,48,52,53,54,55,75,78,79,80,81,87,92,95,96,97,98,99,100,101,102,105,107,112,114,120,124,132,133,137,143,145,],[-60,19,-8,-9,-7,-60,-6,37,-45,-40,-46,-47,-48,-49,105,-43,-44,-57,-58,113,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-38,127,-33,-37,-41,-36,-42,-31,-35,-32,]),'ID':([9,12,21,22,24,25,34,36,44,45,46,47,49,51,56,57,58,60,61,62,63,65,66,67,68,69,70,71,75,86,103,104,107,108,109,110,115,116,117,120,121,122,131,134,136,138,144,147,],[15,15,-7,26,15,-6,26,42,42,42,42,42,42,42,42,42,84,42,42,42,93,42,42,42,42,42,42,42,42,42,42,42,-38,123,42,84,42,42,130,-37,123,-17,42,-16,42,42,42,-18,]),'LPAREN':([15,36,42,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,93,103,104,107,109,115,116,120,130,131,136,138,144,],[22,44,61,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,116,44,44,-38,44,44,44,-37,138,44,44,44,44,]),'COLON':([15,26,28,33,84,123,],[23,32,35,39,111,135,]),'RPAREN':([22,27,29,38,40,42,48,52,53,54,55,61,72,78,79,80,81,88,89,90,91,92,95,96,97,98,99,100,101,102,105,114,116,124,128,129,132,133,137,138,142,143,145,],[28,33,-25,-26,-24,-45,-40,-46,-47,-48,-49,-60,102,-43,-44,-57,-58,114,-29,-30,-28,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-60,-41,-27,137,-36,-42,-31,-60,145,-35,-32,]),'COMMA':([27,29,38,40,42,48,52,53,54,55,78,79,80,81,82,83,85,89,91,92,95,96,97,98,99,100,101,102,105,114,124,125,126,128,132,133,137,141,143,145,],[34,-25,-26,-24,-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,110,-19,-22,115,-28,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-20,-23,-27,-36,-42,-31,-21,-35,-32,]),'ASSIGN':([30,42,126,],[36,62,136,]),'IF':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-38,45,45,45,-37,45,45,45,45,]),'WHILE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,-38,46,46,46,-37,46,46,46,46,]),'CASE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,-38,49,49,49,-37,49,49,49,49,]),'NEW':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,-38,50,50,50,-37,50,50,50,50,]),'ISVOID':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,-38,51,51,51,-37,51,51,51,51,]),'INTEGER':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,-38,52,52,52,-37,52,52,52,52,]),'STRING':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,-38,53,53,53,-37,53,53,53,53,]),'TRUE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,-38,54,54,54,-37,54,54,54,54,]),'FALSE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,-38,55,55,55,-37,55,55,55,55,]),'NOX':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,-38,56,56,56,-37,56,56,56,56,]),'NOT':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,-38,57,57,57,-37,57,57,57,57,]),'LET':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,-38,58,58,58,-37,58,58,58,58,]),'DOT':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,94,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,63,-40,-46,-47,-48,-49,63,63,63,63,63,-43,63,63,63,63,63,63,117,63,63,63,63,63,63,63,-59,-39,63,63,-33,63,63,63,63,-36,-42,-31,63,63,-35,-32,63,]),'ARROBA':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,64,-40,-46,-47,-48,-49,64,64,64,64,64,-43,64,64,64,64,64,64,64,64,64,64,64,64,64,-59,-39,64,64,-33,64,64,64,64,-36,-42,-31,64,64,-35,-32,64,]),'PLUS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,65,-40,-46,-47,-48,-49,65,65,65,65,65,-43,-44,-57,65,65,65,65,-50,-51,-52,-53,65,65,65,-59,-39,65,65,-33,65,65,65,65,-36,-42,-31,65,65,-35,-32,65,]),'MINUS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,66,-40,-46,-47,-48,-49,66,66,66,66,66,-43,-44,-57,66,66,66,66,-50,-51,-52,-53,66,66,66,-59,-39,66,66,-33,66,66,66,66,-36,-42,-31,66,66,-35,-32,66,]),'MULTIPLY':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,67,-40,-46,-47,-48,-49,67,67,67,67,67,-43,-44,-57,67,67,67,67,67,67,-52,-53,67,67,67,-59,-39,67,67,-33,67,67,67,67,-36,-42,-31,67,67,-35,-32,67,]),'DIVIDE':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,68,-40,-46,-47,-48,-49,68,68,68,68,68,-43,-44,-57,68,68,68,68,68,68,-52,-53,68,68,68,-59,-39,68,68,-33,68,68,68,68,-36,-42,-31,68,68,-35,-32,68,]),'LESS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,69,-40,-46,-47,-48,-49,69,69,69,69,69,-43,-44,-57,69,69,69,69,-50,-51,-52,-53,None,None,None,-59,-39,69,69,-33,69,69,69,69,-36,-42,-31,69,69,-35,-32,69,]),'LESSEQ':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,70,-40,-46,-47,-48,-49,70,70,70,70,70,-43,-44,-57,70,70,70,70,-50,-51,-52,-53,None,None,None,-59,-39,70,70,-33,70,70,70,70,-36,-42,-31,70,70,-35,-32,70,]),'EQUAL':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,71,-40,-46,-47,-48,-49,71,71,71,71,71,-43,-44,-57,71,71,71,71,-50,-51,-52,-53,None,None,None,-59,-39,71,71,-33,71,71,71,71,-36,-42,-31,71,71,-35,-32,71,]),'THEN':([42,48,52,53,54,55,73,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,103,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'LOOP':([42,48,52,53,54,55,74,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,104,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'OF':([42,48,52,53,54,55,77,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,108,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'ELSE':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,118,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,131,-41,-36,-42,-31,-35,-32,]),'POOL':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,119,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,132,-41,-36,-42,-31,-35,-32,]),'FI':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,139,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,143,-35,-32,]),'IN':([42,48,52,53,54,55,78,79,80,81,82,83,85,92,95,96,97,98,99,100,101,102,105,114,124,125,126,132,133,137,141,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,109,-19,-22,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-20,-23,-36,-42,-31,-21,-35,-32,]),'ESAC':([121,122,134,147,],[133,-17,-16,-18,]),'ARROW':([140,],[144,]),} + +_lr_action = {} +for _k, _v in _lr_action_items.items(): + for _x,_y in zip(_v[0],_v[1]): + if not _x in _lr_action: _lr_action[_x] = {} + _lr_action[_x][_k] = _y +del _lr_action_items + +_lr_goto_items = {'program':([0,],[1,]),'class_list':([0,],[2,]),'class':([0,2,],[3,5,]),'feature_opt':([9,24,],[11,31,]),'feature_list':([9,24,],[12,12,]),'empty':([9,24,61,116,138,],[13,13,90,90,90,]),'feature':([9,12,24,],[14,20,14,]),'attr_init':([9,12,24,],[16,16,16,]),'attr_def':([9,12,24,],[17,17,17,]),'formal_param_list':([22,],[27,]),'formal_param':([22,34,],[29,40,]),'expr':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,109,115,116,131,136,138,144,],[43,72,73,74,76,77,79,80,81,87,91,92,95,96,97,98,99,100,101,106,112,118,119,124,128,91,139,141,91,146,]),'let_expr':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,109,115,116,131,136,138,144,],[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,]),'block_list':([47,],[75,]),'let_var':([58,],[82,]),'let_init':([58,110,],[83,125,]),'let_def':([58,110,],[85,85,]),'args_list_opt':([61,116,138,],[88,129,142,]),'args_list':([61,116,138,],[89,89,89,]),'action_list':([108,],[121,]),'action':([108,121,],[122,134,]),} + +_lr_goto = {} +for _k, _v in _lr_goto_items.items(): + for _x, _y in zip(_v[0], _v[1]): + if not _x in _lr_goto: _lr_goto[_x] = {} + _lr_goto[_x][_k] = _y +del _lr_goto_items +_lr_productions = [ + ("S' -> program","S'",1,None,None,None), + ('program -> class_list','program',1,'p_program','parser.py',56), + ('class_list -> class_list class SEMIC','class_list',3,'p_class_list','parser.py',62), + ('class_list -> class SEMIC','class_list',2,'p_class_list','parser.py',63), + ('class -> CLASS TYPE LBRACE feature_opt RBRACE','class',5,'p_def_class','parser.py',69), + ('class -> CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE','class',7,'p_def_class_inherits','parser.py',76), + ('feature_list -> feature_list feature SEMIC','feature_list',3,'p_feature_list','parser.py',83), + ('feature_list -> feature SEMIC','feature_list',2,'p_feature_list','parser.py',84), + ('feature_opt -> feature_list','feature_opt',1,'p_feature_opt','parser.py',90), + ('feature_opt -> empty','feature_opt',1,'p_feature_opt','parser.py',91), + ('feature -> ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE','feature',9,'p_feature_f_class_method','parser.py',97), + ('feature -> ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE','feature',8,'p_feature_class_method','parser.py',104), + ('feature -> attr_init','feature',1,'p_feature_attr','parser.py',111), + ('attr_init -> ID COLON TYPE ASSIGN expr','attr_init',5,'p_attr_init','parser.py',117), + ('attr_init -> attr_def','attr_init',1,'p_attr_init','parser.py',118), + ('attr_def -> ID COLON TYPE','attr_def',3,'p_attr_def','parser.py',125), + ('action_list -> action_list action','action_list',2,'p_action_list','parser.py',132), + ('action_list -> action','action_list',1,'p_action_list','parser.py',133), + ('action -> ID COLON TYPE ARROW expr SEMIC','action',6,'p_action','parser.py',139), + ('let_var -> let_init','let_var',1,'p_let_var','parser.py',146), + ('let_var -> let_var COMMA let_init','let_var',3,'p_let_var','parser.py',147), + ('let_init -> ID COLON TYPE ASSIGN expr','let_init',5,'p_let_init','parser.py',153), + ('let_init -> let_def','let_init',1,'p_let_init','parser.py',154), + ('let_def -> ID COLON TYPE','let_def',3,'p_let_def','parser.py',161), + ('formal_param_list -> formal_param_list COMMA formal_param','formal_param_list',3,'p_formal_param_list','parser.py',168), + ('formal_param_list -> formal_param','formal_param_list',1,'p_formal_param_list','parser.py',169), + ('formal_param -> ID COLON TYPE','formal_param',3,'p_formal_param','parser.py',175), + ('args_list -> args_list COMMA expr','args_list',3,'p_args_list','parser.py',182), + ('args_list -> expr','args_list',1,'p_args_list','parser.py',183), + ('args_list_opt -> args_list','args_list_opt',1,'p_args_list_opt','parser.py',189), + ('args_list_opt -> empty','args_list_opt',1,'p_args_list_opt','parser.py',190), + ('expr -> expr DOT ID LPAREN args_list_opt RPAREN','expr',6,'p_expr_dynamic_call','parser.py',196), + ('expr -> expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN','expr',8,'p_expr_static_call','parser.py',203), + ('expr -> ID LPAREN args_list_opt RPAREN','expr',4,'p_expr_self_call','parser.py',210), + ('expr -> ID ASSIGN expr','expr',3,'p_expr_assign','parser.py',217), + ('expr -> IF expr THEN expr ELSE expr FI','expr',7,'p_expr_if','parser.py',224), + ('expr -> WHILE expr LOOP expr POOL','expr',5,'p_expr_while','parser.py',231), + ('block_list -> block_list expr SEMIC','block_list',3,'p_block_list','parser.py',238), + ('block_list -> expr SEMIC','block_list',2,'p_block_list','parser.py',239), + ('expr -> LBRACE block_list RBRACE','expr',3,'p_expr_block','parser.py',245), + ('expr -> let_expr','expr',1,'p_expr_simple_let','parser.py',252), + ('let_expr -> LET let_var IN expr','let_expr',4,'p_expr_let','parser.py',258), + ('expr -> CASE expr OF action_list ESAC','expr',5,'p_expr_case','parser.py',265), + ('expr -> NEW TYPE','expr',2,'p_expr_new','parser.py',272), + ('expr -> ISVOID expr','expr',2,'p_expr_isvoid','parser.py',279), + ('expr -> ID','expr',1,'p_expr_id','parser.py',286), + ('expr -> INTEGER','expr',1,'p_expr_int','parser.py',293), + ('expr -> STRING','expr',1,'p_expr_str','parser.py',300), + ('expr -> TRUE','expr',1,'p_expr_bool','parser.py',307), + ('expr -> FALSE','expr',1,'p_expr_bool','parser.py',308), + ('expr -> expr PLUS expr','expr',3,'p_expr_binary_op','parser.py',315), + ('expr -> expr MINUS expr','expr',3,'p_expr_binary_op','parser.py',316), + ('expr -> expr MULTIPLY expr','expr',3,'p_expr_binary_op','parser.py',317), + ('expr -> expr DIVIDE expr','expr',3,'p_expr_binary_op','parser.py',318), + ('expr -> expr LESS expr','expr',3,'p_expr_binary_op','parser.py',319), + ('expr -> expr LESSEQ expr','expr',3,'p_expr_binary_op','parser.py',320), + ('expr -> expr EQUAL expr','expr',3,'p_expr_binary_op','parser.py',321), + ('expr -> NOX expr','expr',2,'p_expr_unary_op','parser.py',347), + ('expr -> NOT expr','expr',2,'p_expr_unary_op','parser.py',348), + ('expr -> LPAREN expr RPAREN','expr',3,'p_expr_parenthesis','parser.py',359), + ('empty -> ','empty',0,'p_empty','parser.py',365), +] diff --git a/src/parser/syntactic_error.py b/src/parser/syntactic_error.py new file mode 100644 index 000000000..70c46be66 --- /dev/null +++ b/src/parser/syntactic_error.py @@ -0,0 +1,13 @@ +class SyntaxError(): + def __init__(self, msg, line, column): + super().__init__() + self.type = 'SyntacticError' + self.value = msg + self.line = line + self.column = column + + def __str__(self): + return f'({self.line}, {self.column}) - {self.type}: {self.value}' + + def __repr__(self): + return str(self) \ No newline at end of file diff --git a/src/semantic/__init__.py b/src/semantic/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/venv/bin/Activate.ps1 b/src/venv/bin/Activate.ps1 new file mode 100644 index 000000000..2fb3852c3 --- /dev/null +++ b/src/venv/bin/Activate.ps1 @@ -0,0 +1,241 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/src/venv/bin/activate b/src/venv/bin/activate new file mode 100644 index 000000000..44737126c --- /dev/null +++ b/src/venv/bin/activate @@ -0,0 +1,76 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # This should detect bash and zsh, which have a hash command that must + # be called to get it to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r + fi + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV="/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv" +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/bin:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + if [ "x(venv) " != x ] ; then + PS1="(venv) ${PS1:-}" + else + if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" + else + PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" + fi + fi + export PS1 +fi + +# This should detect bash and zsh, which have a hash command that must +# be called to get it to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r +fi diff --git a/src/venv/bin/activate.csh b/src/venv/bin/activate.csh new file mode 100644 index 000000000..c5172ccc4 --- /dev/null +++ b/src/venv/bin/activate.csh @@ -0,0 +1,37 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/bin:$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + if ("venv" != "") then + set env_name = "venv" + else + if (`basename "VIRTUAL_ENV"` == "__") then + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + set env_name = `basename \`dirname "$VIRTUAL_ENV"\`` + else + set env_name = `basename "$VIRTUAL_ENV"` + endif + endif + set prompt = "[$env_name] $prompt" + unset env_name +endif + +alias pydoc python -m pydoc + +rehash diff --git a/src/venv/bin/activate.fish b/src/venv/bin/activate.fish new file mode 100644 index 000000000..38dd5266e --- /dev/null +++ b/src/venv/bin/activate.fish @@ -0,0 +1,75 @@ +# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org) +# you cannot run it directly + +function deactivate -d "Exit virtualenv and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + functions -e fish_prompt + set -e _OLD_FISH_PROMPT_OVERRIDE + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + + set -e VIRTUAL_ENV + if test "$argv[1]" != "nondestructive" + # Self destruct! + functions -e deactivate + end +end + +# unset irrelevant variables +deactivate nondestructive + +set -gx VIRTUAL_ENV "/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv" + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/bin" $PATH + +# unset PYTHONHOME if set +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # save the current fish_prompt function as the function _old_fish_prompt + functions -c fish_prompt _old_fish_prompt + + # with the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command + set -l old_status $status + + # Prompt override? + if test -n "(venv) " + printf "%s%s" "(venv) " (set_color normal) + else + # ...Otherwise, prepend env + set -l _checkbase (basename "$VIRTUAL_ENV") + if test $_checkbase = "__" + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) + else + printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) + end + end + + # Restore the return status of the previous command. + echo "exit $old_status" | . + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" +end diff --git a/src/venv/bin/easy_install b/src/venv/bin/easy_install new file mode 100755 index 000000000..1e88bc95b --- /dev/null +++ b/src/venv/bin/easy_install @@ -0,0 +1,8 @@ +#!/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from setuptools.command.easy_install import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/src/venv/bin/pip b/src/venv/bin/pip new file mode 100755 index 000000000..9c3bb9364 --- /dev/null +++ b/src/venv/bin/pip @@ -0,0 +1,8 @@ +#!/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/src/venv/bin/pip3 b/src/venv/bin/pip3 new file mode 100755 index 000000000..9c3bb9364 --- /dev/null +++ b/src/venv/bin/pip3 @@ -0,0 +1,8 @@ +#!/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/src/venv/bin/py.test b/src/venv/bin/py.test new file mode 100755 index 000000000..3f77f6b9f --- /dev/null +++ b/src/venv/bin/py.test @@ -0,0 +1,8 @@ +#!/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pytest import console_main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(console_main()) diff --git a/src/venv/bin/pytest b/src/venv/bin/pytest new file mode 100755 index 000000000..3f77f6b9f --- /dev/null +++ b/src/venv/bin/pytest @@ -0,0 +1,8 @@ +#!/home/shey/Documents/Escuela/4to/Cmp/cool-compiler-2021/src/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pytest import console_main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(console_main()) diff --git a/src/venv/bin/python b/src/venv/bin/python new file mode 120000 index 000000000..b8a0adbbb --- /dev/null +++ b/src/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/src/venv/bin/python3 b/src/venv/bin/python3 new file mode 120000 index 000000000..ae65fdaa1 --- /dev/null +++ b/src/venv/bin/python3 @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/src/venv/lib64 b/src/venv/lib64 new file mode 120000 index 000000000..7951405f8 --- /dev/null +++ b/src/venv/lib64 @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/src/venv/pyvenv.cfg b/src/venv/pyvenv.cfg new file mode 100644 index 000000000..8dbc2bab8 --- /dev/null +++ b/src/venv/pyvenv.cfg @@ -0,0 +1,3 @@ +home = /usr/bin +include-system-site-packages = false +version = 3.8.5 diff --git a/src/venv/share/python-wheels/CacheControl-0.12.6-py2.py3-none-any.whl b/src/venv/share/python-wheels/CacheControl-0.12.6-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..bd54b9bf435ea1ed31f2b20fba21469bac8a751b GIT binary patch literal 28023 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 dO+H}$+>jKc!6E+oAjv{s900 literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl b/src/venv/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..a52728b763646e34a56346fbcf8cd40f490acaf5 GIT binary patch literal 18776 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%0A_-uQ2C75bZ}x=BDA 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 literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/contextlib2-0.6.0-py2.py3-none-any.whl b/src/venv/share/python-wheels/contextlib2-0.6.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..c0e697532df231a939031ed8c53f095253b7299b GIT binary patch literal 17188 zcma&O1B@um!mT~FZQHhO+qP}ndu)4;XOC^$wr$VceeTVl^Pe}l-?`oCbgDafx{~VZ zs$OfQ6r_PcPyhe`AOMurg%m4{`y-Nx0RZ4s007AUUNyG2b20UBv9UB_qGh0Cqhp{m zv2=E!wX`#{rx#RJk&stXrgQOdiS?0<-{flF_VWu(ed)L8+q&i(0mA}r;{Ryfa+7Zv zndZy_ls1y2@l_xzsjSgDA{wI;OfU_w0n3;o$O1rzY#5yyW)?^_{}%F-%snYlp-b_# ziUV}NBgOxP@^=44R1wX;xz59-o>6&FQ`dA~-`M81%_gZwtvpmw?f;Plty)?77#cxC@9q}QQL&6NB%ez1qkG)ke-LGOT3gaK& ze8*Y3llCRPoah4=WF?$w9(4@l61>cDo#m#=lx-;gq^Ic zH747!q*H9ED#j&au@svl6S&0ZvGgX})N^Q14^=MfG)0Y)v^1tF(wVTQzq;4Vmo;Ba z63)nn+@z{+O0`BxjtpN$$g~9Z0&MVv|Kqf+=D1YQ94{xA_xtmkv zHZ>sD(Kl7_fLAqFnye{9uYipeO-6r4V7*JdJU|x=(VYaWfC8xzP+I4i#*J^xhF^K= zm4U^+G49$1T_y3JFy*mHGWwS(mo*ly?#s4u4D_gy0}wdq0Y+5T=@wI{5Geb2Kj@2^ z^i^EEe5o$!y_lT(Jbf}J2f!;=9*0|s3%mDt|eV9MHw9`XE3U%=#Gp3>vy!Cahqk3s)08Ox72<@ zii#Ph+m@p3&N|qB>Sl$6Fbp`Cq9yq0+!@3*%c0+L8Wv>v1@Pqs^!T?mDY8cmnx>Al z*DM!z?Orr$N4~*yHNn|xIO7%hdEE!Ao771kE}2)F;2ft~*stju@`GlZ+tL{uK<>j$ zk214i)6y|_MtRi@%$>mCSbNtY_4FlSrzmGwy@!;2sdPxdAx&8hN|Tdtg7VS@(?>e@ z3zvZ>?&zz8+;WTJB6$B>O-jOzL(u+%!81 zMN`Z&+Z}4GmUGUDq{Q{YVhBg_mXJS>3-WVs>0G^6@|IJb4rH{ZbxlvRDM>8=0T;JM zw97j*3H3yOpUk9kM;2$-bO$(|4YF^9TWTWUIy)<<22q>^$yzOAOk$^4J{ktSI>T%x z%V=_F?lAyo1i0{VI=6O~G(tWCZ$_808C=`-a{G)~PQXx;RWe)r#8S1rErjszALp312cC6ORm_`&Y1Tz>GmOK$SRA_?VM37?Pe__H@;S) z-dvat8j_=RQHe_;bu+6jrzAl_yIA&pPmxUbNTv6NrK5pCI?C9HckiYxEiY%loSlv1 zac7R8$y}2K7nLJtkf~LUlUGbr9{x$|7P;gLj@$sC{#@c@y@89gF_Zke(7NlGrO%=Y z35IIONduXti9rDNPX>y19>ozG13878f(xz`}?74zf{eTVv# z>{{z4+N0SW&ow~Tl`3Y;wqfaW1ZK7IlsV;&(j@=f#3*wiS*lu;%dAJuC1q~Frm(6* zrzhYAEsU=dc8!8Rv~YjKHgi<+BKNwV1JhZ|`bOu(G5Ary&x}YbNEVox+e2<`&pLY^ zm@gv6s)`d0torUZdds1Y-?>kMV8-ahf2J6{an3oazza}sXz92|A zJlKRwLWtZ$eTzGTK9N5p)$HLh*ND+GY?b2Qe5lPBR^%`3JPm7tQS+H5)^DsjC-YaM zq(GR#cmMe9?-4sc1qGX8PAs_5=03p2 z*I+mhW}hx4Q#StM(lp9!35I%slgo$5F8C7Fkr@61JV8O@o}b#V_!8yn5(wA#krqFTJ<3zN=Q6Jg-RqY1!1~T>gMBsp?IJW3Tloa>3IR+UQ!__h+EY0|C#w}>dxVw5 zxF;_0u_TE5q~pEylwnrf&pCP*h$j_0O$#nNWiaD(nEos7@jy~Ut+xja`U8UKUbTcN zGSEb5#512nrb}T3S5uoM@tP7WC3LVT(#N}6{OjW*$Php0r`50&fo#@)^XmCfVQkRAd4Uev% zh2^@xh44IM`O74!m=TouGS->6Ai1-jFzx+c*cRGdQq3{<#XeQLs%0{puvZD(AEt#dJHy+ zVk;g)c(4#p;hBqe7*W@jk5n4_peJ9_Tp1Zk_6B=Vg{ZrvzJ{+XRWrp7MZlc4sT>>g zBAoPx?Dek3ySCU7>4qLSAp|<^tyN4H2*K7gPnQ*+{-BA1H7f?@@&|fJIv`f@;$Bd7r@?OP=mrJZ+T31ko6f6yH-?>r z;GKvw{%M;-U5hDg@qQ%Q(;0tYby$05WSoJ$PexmIt#`W-z?T=Ll{3(YD*kMLKJC2E z-wK)xm6))OW;_-(>_IPo5+%m}Mp4p&KjDW%Bw z4Loq%uvXbkUbG;tXwa=wulrv1k(Jh$`SP>2>2s}ftPrtU-X1xqlHC=nLw%!HSL6AB zYg5T(yrKbR9*J>xlEC(U7NZuhg9=@Vurq8>6germQZLd`!H31P0w5H$FW<45D`ho5 zaJDFIpYA{8VcOy`B}$>+W&}HJ6<%ZIFg^=2^S_XAoEXbuU}|jQgy=*ZUc!tQ-8|9_ zir}k|a>)pgUGJBe$h4at>yrN34rQv$f1<>!pCI3wnJR7e?BOFbl8_spm@M5)^Y`(2 zK0SO4oCW82O0gwuF`U&CKZ%dS&&k={3FZ>NzDpv9hv$90{^GvwE05!rwYa!EybJDp zy?&e(_OzCoZaB};8YXxa>Z&yWkHVEIQlIm&tqu+}NSIbFD_vzZK>;x#qr(Lwa>V8W zuCJJ#FEz#3Lxc)jylzA&j>cmPuCQDZ_+!gvHQtkEkt_~|6ACN}izJ`x(*u47dc15} zxC)hME>G47MXb%%X@A^qxjUJIPDreXDw2<2$3(Yf_aecFd1JF|nZ9OcTpHJO{6y0?j z*%iO=@wXp>kFzJG5-|}lwxYvlfGX2yhlfW7XlGL*s%Q*6w4DR&kIJA!|7ze31@ViY zk&AnYzTsL@%iN&u=^l^2trY#957q@GDi5$cQy83@7J}_t#COsNRsRB0tE6vTmM)d$ zL-Yh{4~9qYFQRaT{COp`7P#viRz6xbRJLa;CPVG&^6*3KQccYS1)^(lP8t6`ryFHL zsEdWs`8nDV*#6%6`5Yo*0$HrcriR$HcHmt#`urf+3>q5dog_gl?re5tBsSD+0a_1PX)EGTEDg~*^CJ{OvVuGe98!?PzHXxRj4UCP z_A5q~xdq3;JgX{k4P*X*LqT_YScAAZ*OTvxK~?e<^CBD>%(A)!!_26{ta0wvzgpG# zku)LVCG^QEt4Leg`^Ec18Es#eYjIF!?oI29v z6_-#o7RmsTZTb5sPcg}aWKY}(26`*~1DQgGBh=ZP+~}K?X3R_0%-RI$*f%N5Wb34D zhz6Dx;*gvbUAJykVt;lK`zRW(5W`oGKsVznCv8Oo>yK4GWo;X4!ZVJDpa<9w9yz|W@A>9 zYdFYg?(}7^fUw6}0UQiOmJbxZMV**X(DecTg6?Gg8$z!5$PzM+1msPRbv`s?#t(1tRp1wP%&;rn*VK-pt>|DP1jrHrPv9Cfen4I& z9YmL(bR@*n;V?CiyHZGFw(h#xVX|mKWYIFGfjMe#l=@t>#ugSFt401azh79hoshR4 zV{&IrfD$<)?QPAEgR?u8Se7+3sFH{reeNAzN@`T9snYRb;kR6Nd4PTmF8}rk5P@ z=~m$pC$=@F2Dez1qI9P(oE$NYY4n0zG|tihCf^ zuuVNC(HRK;+tk72<}kK-v;2;U6BUB~>};-$y$)PI!!&@#a_8k~5@y57p5eUN>hyYN zZJT-+i8P$6rxqBvn~}B%0M##htdu-^Tc94|qtBBrU#!waf(*%WW;iyV-4}}Yc5-wr zAW9@VF@14KS_4OFH5m229f+591gaHGS-DuHiG)mT1^e`6MJzf+`H4+Wg6r+kGJSQM zt~(hnw5JOHw;!QkCXB( zsM6YY#T8Wqj0wr7b8&MU_v}k$&9ZF3-6%=K79nZr%Rzm({O>OccwKlJx7(p~uFV#t z8>HtmD?7n7A(HCG9JW|?S8lv*v`Ylv7r-ku;I@@O$mwdNt<@U)$+F&TkX=|h!(w+Q z6EnL^Mjm&5>ITFk)Tw}W9`F0tj$+N1z@K0GL5iMwL$?|V6{g&9z*zSKHoCv%=v#IB zAV_r5*251&-fG&)>Z0_RO92R>7L6pxoHw|CDt55eLa?@!;UrM3%?fb;jxQK zz{G<(6FGE7%)C&1M%(aPYi9(-gO`)0A&4E34kWA4KgLi;EOb<0UIW1Rjg*nXP z{wL*#4>H(PERNRme(|C=dz?CgIT?E}9H*@~r?m-K5A(H0KKam)4Htj9nyyWkU%d_b zmg+3LuWzz*bNM_!4?o1=!?J~EZUMwx{64?dlEO#e??BFkJyt{X)U6x7(z82}X}C$X zKM5UOD3Dl#==q*lSQnouSxtO?AEP_El<536m3HkNIZAk_2Ct!7(?+#O3CTY} z4N;e=NSYd-ZjPInMVKOQu~jSYB9nf4>rwr4Pm9v#q2IKFB)PC-&299MdvmPZ950|1?h^~tUh2->mexLY*m=}4 zZn&rG%XxqPT-wa3a%$rO8GlOu)0fCDKn6OR+#$qpTH|RNi`dv(Kx}+{)|dH#k_2}4fku=mC@Ko!BbhUKeXtB~^j*!7<^)B8m!jKv zD`{=+*6Q}C7A#%3GAF*PAYoM>HNlhx!nk8)XDE~vS-)@#a6qFFUphD4g5mH;PCrO8 zR4#E&J*bQB5|TYmlcZ``PBDQy=&hVKUgH_ioW)agmt4uOE85C|v00)@uDJjeTwXNk?ah>nwk==yIbSD&s`q-?T;x}}a z>8z5H(Qx+6hL&k6<~ertNS8INv@_+ZX`O36;9nm(P*N&|}au?`NB(@2=$eT;C3vbHUEwIbP)Ht4AMd+FvzkB~0fU{@%^1XlyLxsjQlqZw?uM?gC@yU)-V?yAu9%(`d#zU6F-3c6Ntu{l>}}+Z zd50Zb>+9bbl~SW;8-T91w6+0kxg#;{r?mj~Deh2{%WR3Sm7h8KcPOze#-v}UA&Am= zguVmiI?OuV1l`(?!UQQCUH}T3zU0dq)SQy9cgEc!boPr#2Y`-WKv#1cyRb{F^8NVy zTztMB@4N0@%TvtJjyyaG)KNyL&zo!eQQ=#QE8e&4?KG$;?1L3Qz!NG&A2YC>0RgA4QGIgqH5=L$asGAvD%QMrP! zFVYcwr1ceSU1`8F>?lq2Im7c7&~cpKlUo*$5@)a^J);)@5Q~VOUf_@QvxNc?Ya6tt zoK^EHc|Xa@t*2Gc3?4wv)}B>_llB3+1NF&GVUot@yBl|rYT`HNm>$}!Fh9+1(lT6z z9<=pMF{{ndG$dsJ+rFIdzm)#|J}ukRe{m`8pZ;N~*>L?GCjvQYN?mo^jjPTYUzpNx zMqQ70)pdE5>Tl6Py2JCU4?KEk-Hj!=uw$E6h8;uMosD|b(@4k@>7z7~XVdvXwyAnD z&}8xMWdVAs*YqOSP<>m6II4K&h2gN;x(?UgcjZ2s@|7sfK6@E=<|TM%td!({E`bL# z{AdHv&HxCGeee#Xiy+r0g}BHzKk0dbv)ZvaK4)gmUohs zpZ)ghfZV+L@Y3zmokx@iY`kP})HDBZK}6DE=mEiL(6ARf+aJnh6RIn^Gq%Wq>%QIH zX>iQ6sTk>X8&kd=hJ&@t^IJxc<{>!>8Ec=ARhHcm$zGMU>@Y}h1yOwpxo23Z{E2rs zvMkts$;`MgTGO5=W}W;k~ejwV7|7hCVyx`F}s&{tM=HLjrA@~+uoUNJY` zYukKa&RIOmnyA`dHgjCG);dLfxRmlZDm;2C0e_|A&0Bsvr*==EmK)9KuFjL?F4m6r z1>7FWSH30btas(+~xx5VQsk%hPqnZP@qH)cLYOhDt$6(rhwvZK<8I5Ok zddS^+EvbwFSrORd5UdyqdRe;j(-WB1e6MGCfRF}NApE~i5CKnd7drNnTG_J7G$Ab6$$32xc=d*ls&YFI%49`?t^2kQA`7^&{zaL z*Eq)2>aZyxBg7hh`oxc?)=1|v^8wzq6&`eA^y2Vr4?@m*hP`jmL;9I5M!r4|23oe# zM9rD+Nop9HLq{&YgbUNhd5Pl1Bo0rGwtL?)!o8cSBUGEy|L>e@p2JTNJl1^`R z4XnDA@msMN^r(Z`z?ns@u_kRpU}b0G!(hmjfG;H^aI}{k8)2RUqkO3er!M~uJ_0+2 zr><|HwwsGCE6T^GP1sDL&v4Audb#b}oweW!{ej3vo3{uSBn&+qZdXzDmFY&)NNz;mgi+Q2T&@_5~q*fp59;l8S$+Bv^ z#aV!^$NT-tD(FVZG|wjcxhntIxqCqlYhvp)9_WCWOvM+C|ViwUvf4*tGul^cYRKdJS8b#qVS*ZH|!xT&S%)2nMKWy|VT`3xHIJ>tQU-XE$G=V`uLRydaDnxw3jB%yed!RfOhThXTq2pufNd(NTA6kl9^{^ya2w z=-UFStNP_dnF5)U92jR!OHKv0h>-pGd3IkcY0kr}G7?Lz<{T!E(qV(4ekRQfN60de(a>?=yXTf)W0 zV!r5(5)&hY9Zq`v!64M$K@uTg5dIRy-Z}+W`k9B#O#ylDjoD)yP2|PVoMpobyLdW? z>oOrnWO%o6?@IeZip?{4m7n4JCM)fL z1tsfeA~W4#Gf2(Gcn;5x!Ye_O?-{XMB37 zv2h^alRBh`rupi@p#N4Uv`*F;;L~#XBJ(QZHQqQGkn_`l#C6{y!D8b38wEgjv*JF} zRyuW+ur;LVYF5Hed@yzLx!0x85fte~u`3=)aFmf-uUq0dY4g>HH)&cDSnvb+JtY%? zJ>qK|cgtk9EZp@={3j)m;d_E!-?&{}y8Kt*rtLwN!tiHLzP5Jt8!fmU3ge=yeT4;J z@(wVwTl}wG&WmY|YuA34ZQHkz=nLpI91nW@FXm4k;p+ZxfXkQ$d|y1j)IH4c0dcJE zH^gv!)?mh&*!2+p6KgXQiTfWANZ`&Wy8r_rHP_Lbq7^4PUC;X^ulvAq{Iy$ar>)kI zL$ehuUC+-Y@jk!#&rM~Q?qB+?+_Ids5Ix|-S7rSXtzL49K6+Yyy%X*iT^2X;(p?2v zu0`ByI>LXg;E+%@9PjrF{yS*EtW(%kG1wjGRT9*S*3hoI2Yml;eEy%Cp0BdJAJX@? zp3l#npXb`2=bN8r{GVre{vUdiS;GMN{$Nh)u%>WmnIC+G{|NS6$UH3u0RaFAf&BMi zkBp?SsGPFszk)rw%JTN>3@AM($~=x%B{8nNwjCLRDAt5=ILgC}Bw-#F5h>eKB~~os7L~UZkp= z@IAmdHs;qw zzvMjG;;^Qcznlc5<p}XK*1v$Kva(v_Xprk9F54kNU?G{f(En)0>Su>H6OQX?1DkgTmZs zck#Y83*C4l>p~0bR<*n%n3H(oJKUjl;BRuAec?ODy;H-L=$z9kW<0(g;!^To57i#0nltHcN_rgFp`+DG8G; z3lUeO3IwrJ^&z&zEbEX`^E8BxhHMYjp>UB;lO{4zq|XzrnaBv%D~8f=j+ZIYIsc+Z zt-NKOdBRaugnDJh%h#!=$tt$S}=t6Tg1!jjrmN&ji7&K>es1S zU>Ukoeo{oqSJ!U`&XVTWgwoXs%3@m^_pNX+0mo7X3q2=UIxI&;`7Ca?SSH5kI7Sze zbj_p0VQbg7^sNk+)+G#)w=%0%hv2c9uR>HP&5HJX38R|orHAp30yPoCPb_(3fHbT0 zBUh1y@}u?8@O?HJxJz-6uON-}ac|}`*^0nZ)B89ilsbSiYiI%Kc}NKefpdm3EMr%V zOyH}%+&0@*uNhz-9mN?~X=F6*Kt+9Sz z4|9O8iG)3)xDL*V-@Q4@(U5zQ#+?#Ii?FFCMmGpuv!Mb9EJAA+(VNw#7QT4P_xbB z7IFtIL!8XXnT5bSWi|@A0hGeXywjH#RVh?H*wwSrRTS3>^TqBdB(t}bM5^pO=XWRO z|2nhB@HMl7B8|2WC9n|$AcseP{DPW_{M;nGytEDJXD%Uth6tZSMth#e+WbusUQ4QKR>!}tX+#0d;% z9Tuq>B7U^oz`BZx5N>jHA|>{r-kY<$Uv9oQ)b+NHh}%o6^9;xfZ)TgA6KBea?c<(% zT1l4U4;Fb@j_laW{2Df}PK$tZpI76+TeY%c0BXfmi&wsoGrf6w8^CIJZk$issF6xd(dIkVBHq*M`?{B3FanDg%1rvo&;fn$|JgFV zWeXbme_O=v??L!qT1H($R8$6fMnZOK4py3$YI<^}QHf!ZdDlsPN}5)RW{kc;NkVFj zhAxsGyh3r7VV0R~j(PqNYJ7%%?ulj@mV#DlYD}gp#YW1z|@xxWBc6`Fl|Qm)g15JLub(x|!PiYhoikJwq*7O))km!?X|d z59s}KuTL#9006Sk-yrmVLg^eltGTV6H#ib^o~RY(!KL{`lLptau+MjXv_nv#kW zFQ-&XbabLZXsRfKq!UtA)jxJxI_?Mn5*tpAl|B+A^XKRvvlh-+l1vBiGli=38_aET z%-mC|u!rWE%sV$rO^4k(L%?HArcxX2csIs6X*=;jemC&xYy5*=@Ge{)0P$c`e>u%7FbhS!bI&O8h>uw(w|}=yx7umMw`P-n2enWNIXT|HfgxEWPMHm} z*330K+dbSl5wT6~&U06wG%_NbhfY88yR@>AYapxS4R{%*uMb1_jp_Xl zWV!eQ@yVsx(k}b~C?|#zziuQG%Z1peB;}^peC}#RBUIFir6Og1_&=^D$|R@RX&B>^ zbZJl0q``D7qK65RIjA+p|yeUaeBpQ0X7uj)L&)Os2N?h9^`LtCWWT z%k1184!PYAi-T?OLSM;qm57wpB%6=cbQ=z))Q-m$4)}$<&5xa1loERz0q*shK)A zUf>WWKu;}^=$N28R(76pvB^+AD5SUbuj`+SY--#C_^@DdU({->bGO^da zRJ|86zH@iKaa&VsGHJo6MNFD(rN*vuI!gu+b23jR#4`4<0~rrLcrU zUFo@AC=AVOjW0TjbC3a5$Vvq-^330=Q`rP6;W77~vk^qjji4FdCXl|oFsxW-?OK)c z1Yb1^)oPeP$dm3Au;~e{?lf})wnD?H5|Ohg*@A8ZyxgUgU>1NxVWGCzse^;DQvG?C z%ke3Dhu?p2nIq?&760vDU&e4ezrd}(al0G^zVE&sP+5Et^gH*vAZcsjJ+1_5)e1md zOY;FXz0NlAN^D8#Eq5Kryc+1aAF#I;Eqf|Z=eHiDKi1E6K*oU~beqX+&eCAlCs-Ch z8VU^MyX90?GRh@>wH3?>3b!bXd{=B`kGq{TMugrQ}wbtw_HDzG5(t6Q(FZrRhG2rSlwhU4nciM4*%bxUlP+N&|&*8xPx zUDV4BZ+HR;v6cTy_~Rcu(iSNgbq=eI{>GT^2gQSQtx~5)&Iq01J0;}PxG{9CSIak$ zx1?2W`yZ3L4qD4Hh;s1w(I4z{icfM=Rod%7gnVF{VX(<+H5V5mV~r}D^jaJ?swF2j z@4J0|{V$0PCx|AI0=3}6n>Gkr6J{u+Sn6Kyv%4?zsN|E!#f~9t0nFK~ywWGy^uvXP zj;?5p?7~253?z@8HSEsY1PG%TuAK9jBaHatJJZw2liJR5f#lK3yn%=wWW&o^(X%!w z5vMVhM8r9f3tD=@Z7wk=+69BtGCfg#$AY!1yuIe>RaVH)A$fE2nVG)b-_6%qCf?L2 z8>KJVTT*qQZIitfirt6B6wDkKXeeMpBW--hIA}a%JE4CyJFHIP8vK|Q7J?Z3$7)?n z0>YtV!m5y;7m9c6Lk!o2)O@@l!wT3|E0EVX9VgXX76<7=-d9K2Q8bWI0{Y5zupGZL zL7;YOm=@VOlh{ED?|?I)SaDYf#_{!buo>WP8{cw)nbv2Y=~WIrB`#<%(^~Y_6FeFf z79lZkQh=bcw{h)&7LN^wuW}Q*${yJIX@`po>Poer^>g-Y)JvuMGhJ(&K>SgHjA;Tox09{M<01?z>tPiOpnI_8qsi zn`<*|X9LR%9Y77ky!^RCP~10 z4Q(WvXG20m_QnU99ALz*FiZ1Qz{3 z0aApO?>^m>jN|H)AnLnS8w_7>LAZ5a0-^Bx+eDpKuS$raQE(bB6KP;iNG;VB*qThp7pq9El zzB?U?blr-GL#q$5R8`euOXoCHZYqTCf?!kpW85KCvUsH2(6FLd5d`_lss7tWL_pId z{4vP)3>wlhP_+y3fv}O3w~8BizziMdlm!?1w%asZsTR9Y7P?3(p7l268 z9dg*)RQ9_9$rq>q7k`hj3 z$ZHdqeC8tg&ex`iRZp{kFQUqMdh5wyOMexjb;Sqi2Z^Q@6=RX<Yp@7{Sc#oxA?(A!4X=V|1AAMuUBUlY%U|C1`*nZ#7%uVIh}xYv9Lh z;1AZY1&a!H(II_-HpeaeU}25D7qkQj{IQ=0(BQR<*$vk93Xg|97S9==qhU~94=bUm zN94H);wh1DXOJw!|Ass|k}BWeu|5MGG{iJnk$S*pHv|ma^}tLUG-|8PIy30&etewj ztY7p2c;_EK4z`)do)6dXP^z}-PI~c)vx8eZ0&QY;J4#qQ;@(B4>6ry_v~4Bl2*xD4hGk}*f431xQiJBe^AI{_W71Ja7QI^`f3LCfor zZI{UA3W#WG@A)5e-=7e{!s_CS)=3mz7+FdCa5{`O*>|0`k6*Az}*L}cAm=EvBz5H&_9P~;-l2i0Kbcz_1Y(1i` z<8?f1mC0VLKG3}L%D9%ZkLWB)tZbs8=~x@<)V_XMZ4uI2Osav#W+UOrA?y@#%?AUJ z**-kgIYN<5AZ0~gaInX5C$eJmPn1g=Ethw4FXRyBS%DcqE>xOoRj;@3t8hfiU)Rf? z<3>r2*QBPq#etv9X2?1N@He+5nk{xu1OQ^%C>Tm-&li9^i@`Ol?pf2{*~>6+7IOox z6dLy6Gsn3~v6sWgsDm#UMh=I=%u6^>3pF6s3x*hRUVxd%WgRMo;t_WF&+8(HJG*;> z6l1Ji_s59lIqLOYy5|Zn(@Th~CR!oQXR{$tMp|MUc*l3QNjURZ&{)Dw@l&^H{zP4_ z^nvKtyc)uJ`+dvAG}m6)5f5bvlN#)}4n+3&G@^ukfhoO)%};?xLZ;P9T=x|5;7I2F zZ?!$?GJ{h%{Fza+G-Cxa?nKNpr*sOIQiLF%k$d#69`!e-KnL)L>`E|g`$DSjT%;i& zWK^J#+4|lC-3uKlas5|Q`IAn-6n8^Gw?#W1BM#W#YV5xZI|KdzwHSJ53fwTxK|niV zz#5Q}!%I6L7W)~2u%G6pE#_DTge2-&Mh7%XdKpsxF;C`>ZGWQ|eX5 z54!Kluo(oH98Td$l`#kEG~z+mZe`gVYmm-EyRqkgCOL}4jJ+s9-%$BRI~ui;lX>8s z^|mHynTPE{)3uz_?B&O0v%ot^8x)~cw@wR35Tq%nG+JcVk)SPc%cF7i8@T(=nw88q zx-b=)W$Jp3&2A|G@w)2v&x)J0{y!Mf15uEv1e1bXeVDFfp#>a|_44``%W?m30 zbJs4yscSI}mnvHZ|9(~+ORP|I&=9>^(O~2Ht(-oP%_ecRzNX$s=Up?HcUq=L;X_W9bD&BXxVD-D&P9F3%6op>}7+~q8p7@tm^ zu?~%{obg~!r_DmoYSO%!CndJ^q8A38jxIcQ>qKqbm^`A-h8~7F!W0+36G3D&yvV3wX=p8EMPm8X{54IgQ>bOJ2nI5Rox~pc zwRofPHBrfA?eSruSi|ZrcH$j*E*dYi@pn}zWSN*c5Q&XXA=1*Be#2Ytb{A>O2yr9& zx*gRpKOMf$O+VR1vOZEzjF|E$Nn|a8U1$4i}cl_2?5V>VlOEDs&rrcDv|X4gRcuz3x7u;3O@x z0hd8jMf@#(lA|+j3l-EyBVI-l42r4}S)|!1e_R4RP-j6j?(JE2()jK5wTGPKS_9lF zSHOL9KJ>_3SmmG6HM-!c45PZIf#gLux$X*s-?P-zPgsVYaq%PpQ1ubrx89e5_-SV8 zOVf=*8qVj1t>u}`^podKRfXM3GPmDnNvj-r2M~I`u)#3k4lBkd54gcX9Kis~i-*a1$Ua6(Dg60ZeL4JMsGsphC(W$H+p0+nEshH_ z+&1~`!yY|JJWF#uX9Ov~gYK(ihQRQJ=8%kh+d0Rvy-Jv3`>@LKOkHy@aYtSCcHg_+ zbD(~}uDgomRs>8{P)*D1A|h5O40u^xPmr!sW)sq?VW~ZuD-kDEExwN~h(%<}ZjyWcTuLjAzLf-M-cYdJ3zwu2knp+=TAI6fDYm#`XpCE^=2 zL+b7KXKAoUeZp|EaS7o9IFHKNJ6t=KfFKKege1 z^N?u%XWsu-ivNlGr)BW`# Lb_M=b`dhr002$}0N~#Tz{Jwo#m3TzmVu6$j)CrfX0(=eX7==g zswxulO3HLD9xkyyvhiD79Xo!0p=qxJ7X8~de4}7kz|H)hZQE}0t)nxX*?`hUk~F>w zWTjQLTE|4=bb<+{0XATn(*)T7=#Y(L(<96RY34sdev)~or7Co(zE*L7?)Rkli74+6 z-$a$s{97A5TvwO}46#~b?o{e@T>QRo+k@hx@p(K7guBe2 zbBFTu{$JmZ(fGyLo6)c6?DO03_WHU-i%mw`=2qKW%av>mzUrFVVd6_u`MCK!oWM}2 zt3REi$*Ypj)Y~p)3-j+tklEbH*q?9nAR&yAd8iXC*$e`ZzcfbM@TRxjc;YjcB`e(V zp+si*9@IemMXqYS2lfl7Sj3ju`?!r8EH;4rkzdc^t5m*G={y~dY_&F3R4a!uc16~g zFlMnH3y!#F+w4lATHMPQb~O>7Lb)W&FuJ^pbn)2Rg);*x)}k=}@x9(}calai=ZzYr z4VC}`=4vah!>TSlYTNGQyQJ2t8k1oMMIZ$#JrOrKnpC@$q?blxfKw73gv4&zbMt@n^kgGA!0(S-n1GZL@C9^K zI-ceid-mtT&!rURUQYa=`&cT^Oik4@HqN@#+WSS0MpPy3Z1v7*@A$k*S2Da?%5M*K zBDz-s9P@w8mDj593}>J+Sw4Dz{YRad33fFusk_18lIh1u?o`XbLD~dPsZ>&qD2ANy zqHefS(cDZ`Fr!qHEzx&s7U^2(;04CxZ=&q3X~3{2eTx}p+5=y|leeBQ`9QakT83BlWQI z(V873Y?IyvVC!}&z-atyWJWI}G`n+pT#LE1Yl>gFXt`)qU`*J_%G+Xc980^zmaAi2 zGMCD*IkJFDeV)p0b4)#lhxAb8vd>c0C`rp=sw15Vdk1Rz%zRl3)Fk1Ie8^3z`=?cF zrR2!)WrR#iVK2dkPWeC2+G|hB1kLes^LT%Lo}S(U`+U$I;9;-)V6A-2HfCL)7A#{` z^Cac_SAZe$X3(f;{Sn9U>cpQ23L-kHyeg{Bazx7V4LRF_fm#{okL%I`VjX?c1P^&t z^Q6g|GxZADSkYwkX9YI8)hhyY!4Ta^zzQjlngFGBUTEC-#%=hOr{5S@?3?0lY|vGb z9tcyPnkAzXO}VVGaCKjIjANk3lpKJ-K@Tyavd^}eLWMxtCk8-Y)ugZE;^oV9Ngu>q z?NZ9FGk&1VY+Mv+QPY}Y>6)#_#^%&?jk(7hUQzvUyAc6*1TqCnR1gl8A<|Y-nGoy* z@fn^C5E?P)f~myz*Pohz(11TGLz_Zvi#nINi1tZFe`o z4$`(NC4^zXxfCtI&*sk|Zdi`|R?@K`D=vYrE}2>g`*F#<(go)^)xr{IZpjZ@Z0^ctZ2-BCwmizsMoi1b-5KRo zH!*hugJbPoht)Hdg`J|DVf7wU52P|60f#kZIVep|!wD+N7EPb%+%H`QpSh#26Y>Up z%oz^x4g3v-z#-dVQYx0qJ<3mQih=NFT$1p1sCic@l_syqWM(PJb?2i z4DjqX8_S~YV%+4QflRibIIokb=MS+ngs8~l{!QD%ty6*>Jg|c4x6Ads1*OTR((0^i z3H~;oamDdrRXEhs@0zogAv0v*fo%%{2x+-9Rg)Y5i7=_#)pFD9DilvM%j|Tjv0BbM zCy^322#X;c%UeSJJ}t`6zh`juUCUcecR7&Jn$|Zz&!r}}0t8&%8PTrn(j+tx{rfYM z$~{?}UGqKQL=MP-5pJ1@fa~0xpc+I;HY96}j4_FwV#Qb(^x7=5nJlBpk-5hpoDtyS z=h^)FdGaXvD7+b6>Q-=F_v_sYW(5I5ZLWK#K)nm{2X&++`&E_a?FY)@J*jW~IiA`e zH^jNHU}sd`IM253mG)@2ng ziPY_!x}1^(3GGt(&jUpY-4m7GJC=?H2I&}M6W)WHwzRyQ0dr0cj>o+@f+llqHe6J$ zoI#dW1x|hmO-1+@ty|=>FF0}|fci_Rll3Mp(&lW+pCaq-6PA99Y9tt{VJ8h_nq~$8 z*uR-5+W8d6Yz*WSZVEQkG)fsOvUC92^8iw6gwSj~x71JcyKG?hDBbi+Yj|U-XMs3tLffRLVggX6gX$*rts}a`(v3x<1AnkQbNN~s1Rsn7 zRwT98)oz9OHmqvH50;~b)R!YxI+n`H#$-oxBIVwKyjRUrI`thIQgiC8n`w{dc0Jbt zU017_G22I^FA$j3CQ|2>JIj*&^OB;>g=DGfP_D9{G?$gR0h`0BkDQ)?7qu|HPuVpJ z|I)(!72C>H$&cLcc?ry5G3y_j7sud70Y5h)tt44wX6^{Nvpw(XePq6j7_Tl#GO+4@ z*zBu-K6z)3rgUNP$3&cS_#-(8@M3JO0QDp8 z4Ejv|m|VM$$6PB$&#+yFfBUI6Ygk#Zy!$+&2}aFln$)nl=A6P`gOUni2H*4Rx1Xzp zr4e^F=h<>6>74Syj9Vrf^$8XC!5IS>b27hYbS71ftHLd2;?OO`SqAL9SwS^v;A1GM z$~-`H}X>nfh?NtVMhff4gkcf4iP}?CzEvj-o^)-vYu|yI&#-!Du4ousYh`f zk8Rz;MLZJ-U?Wu%NGhRLtwOpIwEWBBYLxw^G7?8+weVZr^1= z7rM_a`;qm7*9QA~oS;&WLL_gTk# z`#ICBWPo$*J`hhTc7_&QcG_Up=_n&H?&(lcM6ItE4f+#;=s~rVDKgMRXwt!V{SY*{0X4; z8mt?aXBr*MPsAlLQl`2<#iuA!)O;K?f=+aOZY;R7OsQK#hK5I1(86-V-$HnSG4h;m zHhMzD-LfI59}-&YlknZ7G5Ha?K&1U|U(n_4zu>MocsxX4U(s!|Sot@&ihVgoQ&=`+ z%hh^Rbh2>`n$Z$g4$nA{R4?kPqhfyIXc%j<88r9^58Ar1R*%6ZNo>_)7!MZWIXr90 z4kPNu@`+000QB@*nkzF?$=+Z;st9$D)YtHhrFyo+p%|FcHjQI*L4=e3h`qtpc+VC) zBE!%FCxk%9y{($*5+T@{1}ZelmSqH=_Ufc_+{w&yS1Kpr7N1NNLeam@m|JJaJ5WEX<)<1n~xO*wJ zJ>HK*dnWTQtPX4Mtc)|T_vu*cp7mZ20{F_3v~ngIQRUyAujk#5g*!o$;ZhUUvCOC9 z#)If+akyZ_+7>rwnp>54#^nJw{X=^~9VgyHm04l6tC4ESZ>3cE{=r9%Th?m3smoTx zRSmig>J8tkezLNLa$kPdc73i5j#VO7%e!L-RkHgMb*LZoni@PGaBV8N%r`WktYb0m zE)v+juM*Tkc2J>f5q5@6iee`vSL!7?D)_LNHUNaej+J{hbEWK-N6uEIowI|-d`w$B zrX(r!yUbvx?V=m3T*en+X8uArX8PQZ5+*vYUfa z6PXUv6J658olvH#f@ez1hDq}6+3B(t&t5(L_x@zeM?{M_8V-C!>9oBL#PczE8on{V!${)#wmS&Pf7qx;~lx0|OqVNYwRnZ}D; ztr3D3q3${Z@F-lVV)c0++nV4&gM=B?^0GBn6BG~=GCEu^B1dd4;D*Y%g)&o&eMG3R zrJE*%l4v}(;7ZG7fxotFRujGH7AfLjIHACzut@TGKE2@gpeHM)MQcz==JI4sP{i77 zUG^s(mU~mV=!C?Is3HY;I_c8(DX7pOMGys2t+-z&*PJ1fe5ZVfKXmY-yC5%Mc@#D% z%_?zjhKjBTH_3E}pqr?1q$EX1oj143H~_t6(AFce1qIa2NYUMQk=^l&pa0Gw_yl`$ z8W9r#V;eerCa5xvc6fMXfOZZgqKd}gWBUcb!I%s>bYdfKD2QMDtX$k{^exx2TGl3Y zZ_h;hU6tt1La;6G1ELVYZZ&hPQAz|PO^ z@7FL96Ub6!4mHG{wFB>(+2>TdzyVk8lJre`L$*wlH-QaNXtO2vdW2t%5;t@-v=Z{m zZ4hQ@<=`Wy2whl1|Thz4;>o+sZmgR0~k=4CiCm}N~VhM7^NS=0QTe~qg16KO)kYv{98cCog! z_pJ{iP{m`yWzvER!|L98#u^l?u-?$fUu`J z0UQiOmQNJEC7qa1(2YU=!k!fVTSNQ)zN7~Z?22)naYJwz|Xb;3yVAkPzFdu6dHsw@|k7+jE zVb5(eg;^E<=;|ymI7O|#k5<_X0*#TRtv>|?z-NOMpFq@(pkmmZf#OdKMe|~5$PzM+ z1mw+6^*%IY#*gpu)!>(Q%&@CHH`I=zZRlVk1jrHr&)^y~en4KOokUk(bR@(x;V`vN zds0Z_w(h#xVX|mKWYIEbfw^k$l=@t>#ugSFYsLOFe_mO0oRGJlV)EupfRZ>P?QP9Z zf^)i*SXMMNsFH~seI6WMOKVkXs50jT!@W&U^wG2d!dM>&!n8qA1vt^6OqWmEzL+qur#=?;2Sdv-3yT_ zqLq9ObV+=MI#yKKjZT4ctDj zPKm*!pNzxm9`uc^7|`HP%;j z@plAy3cSz=4wWJ}k{&OT?+LKr5<_j#RB3b`ku(vWLeHF?;U0=K?of|QbOplyF?BGx zJ&JAFs<>z3M1`O~Kc8=BuLsx9G!3A!+Vq_l4rUn;KgWh!V+3%2-;K*1(Zk z3r2nD0OF+`g=zy+RxVL#CLvQ>#Xfso6^l+)erD5?;Cg?u%vjr@>q&tN?XAZD;|DCa zivVNp>J0FH@`%s4od2uoK}baJ^Fut?cofzL^U3Yf`z9jr>!f@Ksk;k2%x)Jdh zbvmGf$NS-}vqbYX@HbIENYPVo_)bHi(v%wx80%rsM)!{#eVcAS1c^@iM)*<4du@Ap zeUu(^82};Fl92?N^CtIi$OfRD>AyD1|#_aiUw?BAJ1DY{3eoQi?fcr*#bK;rQ9GYd_64-kW$rKGSbPw3e^jM3N+j{+8l*=sce_Da~D1%MK;%L3# z7cY9dDro4F6ean^=&R+oVFxKMZOQveOwc=@-x`NnkR&D)@Vx!%J2<~AoUkI(b# z=u;d%EJt|u4nWMs@9TR#IeZlU9^_ouV=Y8a-MaBRBc}_QhMQFTi_p=90*N(o$Y1h8dK*A#`tCsvn9((nAGDXtVQgL zAN|+!xUYFfXTmXsp;1d7)F>V&@d8@mKCwU@W$xVV=^f)oUB|5xhWom{oDUZ-Wi6a4 zXErX7@n`hE{YmTsWT0ayok9#}wVtN2h)sQk#Kt%0{aK$_&R$F4Ev#+t4Pj*3>Mm+l zmrP^28F^8!$zbQ7Xhd0pqM{H!lDShihb!<#KQ$cbPEaIxsk%*flGf&KZEjC$!O}&m z^Wu975>^dSlT6tljJsBLhCe{n`(H#NfXyR>bxwDtz!v;2Lit$n7&GWTOlHUo8cjpOuQ;6;U zPDAGw@G)Z#blvjYa@)!`$Vw zCP?M*0#MNOC125?=9GN9H|`OkvtL3w1a$lcx}M+MgI#8oAHe75;`8G~&51ai!jy85mMSDiJ!D7EpNx&iOH`|3K)-=dXt zmnX3wJbHM;jU}b1bB9)j9Yfijje5+}NXQfEvn-Nl%lT2Zxn?TRWa<8O5qi4M^fJ#- zeMg5ls$}++;i$&C9@pM?^&y(_jVRqdX9aimHF$TtjO36mfd@1EcoWdh00@qK=pLk- zAkQb2xY)KJ`DK!{7rS-7Iqdg}Ep2lK%Xl%xb^#!8p@#~VcZ!vt{qFma+`Q)K%I(XY zN0bO`qI77?v*2h^MABgR5y5H5un#-OAIfD5syn(Xw%CE|p~Ky2Xxy~91nF%DQ@#U+ zgSFiAM@Eq5F(nEa>wu6|mfaD_UX``{C`fP>QGFV@cSNb;nRg_zJlKBO%(y68)1D_- zJML)R1hd^{ByS3iCPG^mTkplXk^%R~S5|f{uCT`PzQtidF)!Y0$9!p0ya{&LL$O}P=?9KM27m9 z^^y?lLSRn0q8#kGrc}kFh6A>;Y2AowzgN}AV8(r}h!vL^jc09U*xh-W9(s zdlj{I(Y$f}P=KVLL`ZzW72&rFdmK4bm%MI(I_aJ!4;HiY{!_amJYH*tQ>pr^*Z)=D zGm+xj>o>e;*4aaco1CNU@9Yoho}OU7MX{^!Q}^9j+m| zJ($z7=+7RZ;DYgYIR1R2dzBUuEc3+*3xE|@lHZifRtD!va|nm0t@V25vz4K|9DW`y z|GMq$V**SovQVFj1oLy;z{qv#K3YUQF>z?m;fdB5rh!&yEP|eE9OGI|*tC!lVl6*? z(&uwqq;t9XAn*Dr4>~b=NqCM2A!h@_{*UMp{p>a)U%v+fEn8WV=IqZDH4M#>BNt!7 zrRmdxM9ESzhbKq-gKs(E{%!R!s?Ax-N_An7ToRh``t;!fA|Sdiu5TZYx^*6FAS4_v zsegDetozo&!O$eS%$kBa$=9IwXJKYh{@Se7NDDn0l)G}x-l}% z^Qi%@s=s#bUXUZ2*m_NeIv^&~F@_r!q|+X6_Axg*v~+L=>heBZ_x?ylt6|9n#LnWRPT{Yr%*u{MkP|>>^-*(%A4G?k zzc}ywL}a@{Z7m3VyhrH=YnjIY%<=1|I(9tWbKDyXw%r%|y;s@`s#pE%>_Tpc39;f1 z{kdwB8-kEOt@D0!b5G~j`Mq1bt)t`9t8Xo1%kEM61G(zX+y%G&^2nHa21dNMZ!EY5 z6ZrWWs`+--&D`;li?cM?=D^*g#Ox@yJ9*k%l-{v!uooV0J1r^eg{DyFVJyvOw@|5L zXYUKVD2yGsx^^tgbZ(YijOJXA0?GrRzsLsBS$}7c)l-G^?xtes+X||y`t3!T3YnV{ z7-vmOP6f7vkn{9){!k)m&cm!S8cTVwMHk5I`s9N>ghTe1`8kn?D4YNGm_T_HH9UyJ zoQcsTJ8V^$^G)I=Z9wXDey6exDL}1;XLbS_!D$ERd<@?LD{JKWyX!QWkhOAkWnTKy zY=JpC%a*q_h0l+|IV(=C&{G02^ebpOBhg_{T)hSRnv(C1aH*+;FS@hT#0X)RlU{!) z2(@pBLfkF}8iEGw^`*`WdQHBl_nPo`fN7?Hly^W8;J`q)h)Fkcd zaRMTGQbV&kf5zWKO>LA&z(y3Vm%yDGrW6{|zpMv9td?sjO1oe|Df(H+O!wFfQgiY6 zGOFiiwL0$Gr~HTjOfMwMY%x#$EDmC~OF@beq>=m{NQ=Po0;N11j3DAeK}X@1PgY(+ zupG&?-m}h77@lv-=H>EoczL`UaG=dc_!%$oWy+`+^3!LkH0EEvU)v?IQl*?-o^k?bI2WUmj{~90>TN4ymH)zIrg| zf7A)BQ*;LTv|PT)yoz~^H%|xU{B$63-M2}wnE3ul0npv7xX-nf&RivI4QaYtl<<=t zO`UumbSZQMMfy}mF1gxQS^%c(0yDeCC+=}x&T!ng z4!G>tzK=#bG&ra?(Qdf{$F64@9(i$tn8iY5Da{x?gr%+{#OL7iPN_bFb?N|7!(@gtFmy ze_Zn4Ljz`?!LEtH?n1ATpjNhpcHckZ`~Tqc|K9d~m*@YIe!Ta7eeM3f)cwBP{=VS< zzR2_c(woc~2FMQtb6STrheON!;w$`zsOM7Vc_|1806+-jzl(ZgB!xxgltuqX)T65` zZ@nK^`FO&EuxJiy;AzS!O$gLl)#*vIBYs>%u93yfo9ep6h*a5(N| zuM58-Y%SL0A9|?q+|R;@BPP-gykyIYCkxXrxZDfGNYr;NZ0fyiL<7dU1l ze12sJ@latq7yIGvUwNF|O^M)hF^YV?ZVdE*IXKSxBCu-~#hUY)`)rHDnpW|88jzkx zXT69Fy4}nEv#GJ z`hj3h;)(BYkJgF5#c}?P?;Q6*4OgmjL92`-0vVb#OLR;*r4f0m38Njz-xLd$qd>FD zogi)S4(Aua6HENlq|ikpNQH1ogv=8wcqG{(Df$BfJ#?%jOtvCKT$v^i#7@ z(?FA5V&{+akUnNqKC~z`C}l=DItd!j)Q^VQD`i+gVr+yfJh5^WDNhke17&e_V%K@F zhp-lCS-hoOQA4sXFL?}&~n0Fx(k|TkT{zwh23j1pVB7W9I z`QDkH(gf2k1>}#DC+-jMp9mjERhCZx0stKTLzv*d=+b0GRRl!@RRmL2WaAeZ5V}9r zr{D=@78(PbHmsnFlnkjGuUuJU%PTFv2sbTJ{df=US`_4tkcJ<3vOV(}zEhE?WHfjb zBR1Bd%pPjq!osK&xXR@0he10Mojr*!b}(RsL8V86cU~d|_w37)%P4v{ghNNun6H!{ z8mJ~~4J{N@QlW6fhvVMi6_M} z8`WSpCQjObooJuwtr(rlwK!Kq;qR{g9u}$;6ZD8hJ<1)^zcijRTU!O_6j^nvHyi^5j#Odx1jV0<%jTKd+^4TrWTZ_nWV38_zpZQFnf~Ydmmk zJoq*le$w;pQsUvN%ZAa3+tE)KjcDdZ)rAAlH@>9-CvMw*?;pRF$VtV^25!;0hc(zW z!^A&Nmh)b_bdxt+qG$U9;lta%N4VKJ7QoPmN*VG7`=1841{bQgD8~_0Czi^-= zDlD%g;=3f>WNm>0w)g%{dv)l{eilgJh>k==2IYu8r0eHvuKql}qU-(I*LPIey3@Sk zKKWTVF}T~4zxuxSiGL0CtQmlGq<`K7q-ogc{xip0ybpU3+Ch-9qVdZeut0u(}$kF+W>sPN)5HjNPo z&p{|b(zha{c;FhZMtNkGw6xoI8+Xp6&gnGxi;F{qhvgV{C%9|g(05Dy21?^4uWbj% zn&+(RZ%$oz=U6qXkz_FRvBqY=ke)uB06;n5nt?9nFEz%vn8pz4XRg7pG+ho|(*BMz zheau|ZlNPS$;bFGifyPR#HhtZbX53W({HS)31Rsba?yo(Al~IfnhKG_iRD}efzP%0H_0|uDNA4|L<4>q|s-LOck zv|O$r03q9t+hRKV@EX(lQU>}J5?l6#H?DI=M+Ps027Q4 z+gM>e+f`^tW1({z$-73`HRbHBydC-IveNqD+H%N3B+Y(oVkA3OFK?|pm;@w5CKb;&2} z*7>4?T)r@qci^pI;nNh7%G}{H1D1KFjvl<&+}xY6C+%zIfWIi&ti>bhCISKZj;aSB z-y}Bo(3GTyI;nS@7)X<1s?i+)n$c=C1Yf9UrK(s#Jj-amUXuu5@AE4m%#%&#FWuG* z3PQuOwduurbeNHhl(Zj?oAf)vMe-xV*UiJy9@Tw>0Z4n|Z$wZ*AL6v|=1}VNe@wk| zqqr-x68)eQDBY;?F)?SygS68-@@RDk0sQ2+S!(o$7cZmObs6f!-xA@A`FU48QdNk# zcyv!X8Ywy-)1w9ru{e$vj%JZQ+D)YQV4}kd^!F2JU}}X6h26 zqB79460+0tu+p?tGgGroN(@WPdrtDx(zH@En$dbdmJnm5Or=bIfe>%nL_Q z6SMU5&onEr6tq&)<1&p(6qHo5$54_otx6OXEDO_0feM(JpU60ma6$7oZ5vn*;VkvyNr)65R3ARz<#Jl!`*Lpc; zca*S3KRY`+4nf9_ETL;=gE$cQI4&Gsk%-klz)H>}I=)BilOcO+hP;lqKd9jwq~V`M zhOjYFVxc`1fa?%>=XS858KFDFpM{{e)o+#+Yk))$nC6!@eg%I;LJiR%Hkqpy1M%mW zNNZHFPaMpaS;J;C;)jB2-9ed<(pvgpV{c>xPAEfA zn2X{iLUr=}kSx6`n}g~VY)5|rJX}YrA)INv7p>YmEkaow6F<*qXPKexo4%4%1*SUP z_eG`9d0YXKz>dW=4b^gcB7Ua+2rSf*YP_eUk!!5v0ep#o`MPPuWuTA#H_(4VM|^Ak zHTcg9NdG+Yzo4VnH!?J~cCdGH`QLsajqjHOW`q&BeUDO{K>+E#2j?ZY2dBvP=nSh? z9)?@~;ic=Ij^Qaj#W)nNYf3D7`X|fh`iPqyY@y>2q?Mj7F1lxWFjye3_6-=ekg&^; zI$MZC8PKHqb;`|4OH=h-oYW{sIi$M*^Yru@3HnIuNz?JG_0`zWlm?pVp-Q#N$f5^P z(-607^`Y?S)gNF>iynZ!I1u!fs)IMwX1n_R?dmM7m$7@9dMHx+27Wruj-s^N!b0m< z)EmP(u^lMo|9M9@fAXDmFO_iEOg0@S1*Z6W} zZ0tHZz(6LK2&h^<@s`Ip2fBtcoYZHwBtiVBxrzM7_L9WR8A7r~wDPm<#bTf@E1Qig0V}IZ?ENoxXNVxv|()zR-I{|gYzVor{uz7(4{ z+>76ej2S}Agw5N|QKE*~fiUYz#lQ_TqlL@*no% zXX3uZrIqKy_TThq@;ARY!=joVw!?swWx^637mxe9ArBCrwU}ZvgmA#k>E zb+NShhru$BwLSKD;_fpw7YYm<`_s@0E}FaE8C=||SPY5vVEmOHNFY{{tX0uI3^V-X z)6UQ9A9H@Qu%s18hX}qklJd@us*W99-tv=s_W0>4t<&R|%=3-u!{0uAIXQW`>1Zqe zipOhL>m+n$=a-}N%y$Rd=}lp8-P9A`W=s2~jVyIl_1Y%3x(O7r?$(vB^XKSv{x1K_ zmVE8xRO`osX?Xmd?w{{bc>A61QGCO#aTBKZwG+`Dys0v3b&hVv>?$yw7jS_vGPCCk zuHTSdHcvzB58K>Tw`H~G{=d!5vR+OPi}L)4MtC#Lpj|7foVJiTmiv~r*;Rkk(a_r& z>lHwISIo>eVd`gL5}rn>JQV*RY(evGr5$+J5)`VU?5n^(o~OeVp4 zFWO|=CpS_*JF21vn1Vi%Yc3m&6e@u%o3J8zIV~>-n~;J19}M1)V|wWPepj1@KjZCp zdpuwFk6%x=d@8uTjri-XdRXf$uO>TcFU${%^-V>Qh02#-Tdj4?tT(@HGq2->mH+`R z!>e!tHda0XmRfqiQD7Yk(4wm;(4gP^82fXDkLTWX@edfnsnP6Iz-H+$P5g~L+s9)DFM*hiOZ#Rq}i8910>i3Qt4OijZ`;PULA zdUF$pqA$33<40J5XJ2YiakzM*Ir+Q;jq=3 zILN9{mI)P5KvH5PZBtoSe+u%D60v7zK0ZQ(dz%xoHfhob`u+@<^+tq>iV!1&e8qhe zGAZ~DZOPW+v8tC~d;tQ%EMXJnZ6$e{@Wfy~!mT$^%Ial7`?`3JqOs9N5F$k1(5$Dx zZ#F0gzbs!-WyB)s15Be|PU9Y&xMJUF z=nkeRlox-CFFVLXytE&l=kNObGMQ9jgC|2$DNoGeJV3d@ctUhSaE)D*F+~=e+Vv@3 z(exesvWd3XnvGK6kna(Wy?QS0I}zFgP<@Z2jQjM<2JEM=bF=~e8O31bOQaAB1YBMf zClRYJ;pr4EwZz35p=PX_8YaGoE%Nl<4hHrht(cDjG=&Qonq;^4_jm+6^cFz;ve$10 zP>?d7wx8kLmiSIFt~wJvk^2*cb1#%HqvnkSnG&u!0TpGrzQJaz=hW3O35PLi!WW$! z7#LU4Jd2HyGKA(?gCs`$qjp@h_%VsJ1-b#{MnhgG_lmQxkj=Yn{+hI{j85`>-;4F! zz-e&d&FKFS>-P}jL8{5t#$SMMq)bvd$bfvLmRxN@R?xS<6oA-=ptK7m&~h33?QJeC zF+td~i?;mWxQGW8MP`98UEn&myFg^%AfOv%H*MFdxT09UES`TzZX$_XpD12~{={9D zmChFi{G7ag){Lqkk3RTb`MtH_lq=Dg52VCET4?SJ%JA4hSEy*bNfN{i4P4GgsK*l7 z-eGAV2iHkNZ=dB1wRRG;!3nnJjMY0=G{y<}!lUM)X_lL+4bY@Jv=_t!w2;{mr~?uN z4b|VIhj|jw_bJ#3XMzr^p=J=_yEhk7JiLnC5WqkRc&b!m(9CHjU;{6xWF=`bmu!x3 z0>F@f5wN6UN*oQ05i>>=1l%8mB+LgL_}A4u(sZ(FOg#+$gkmhM8+|oA0k0a(6}0O0 z?JYto=MMLb?vF#Xw5>A-UQF!j?7vqh6I6kL!*32Un=bx7h%J1U!0@WWGdgPRuWrDOd9lB%eVXC2P?jdy zi?boRjOKsPK z}9Ay9L((zU}Zz%QR87^a0nq3;5-9qoMD)md)*#BgjRH`*sp5Sdg0Q(%rJF@z(U+f-uAVX%L2 zO$=fg(J1W-0hFUw$v8?li;e}KvFwQysFzxmTU;G#2EukMan9dif&>1ZO~W_z{wKo% zuz>Ehy56(3mE0_RU?A{e45jkgr&L!cv5mnUw&DoB5a4nHTLKfZut_2fwY@qU>im7lD)O>Ga0?|6p1#`@)YwxN zYv?HZcvIFoc19f&I*;P^4jh=};dq}@+wmM3&vV$&nFAO>ARva_)p~wV^<>L>6V8h# z*`TVSNNi-tqWZoL;5?swL3Td!;0vC|99|$i=b7^g?4Ikr*IOKvSUlZ`#V9XZuXA3~ zZBE|N*k8C(NzkPFy}gR-m(bXt>5~BLY2zeKE|X%WP$yC(rG2!YF-)73fi@Ng4VK6~ zuxF%8H-dLC)(-M>IjwcL(Lek+FsoBwQ9MsaZ=MA_;dpQ^w@RVx$#uP|b`#&WXJq=EmMLwCF|& zv?StzXc?DP9rGSN>IjiSGLd^kc5xy3Lo*3*9%k`K2P%ggi0&aV*|iiSLR|WW9mHkH zKpaH<;@m(sWvq8S>6l1J0iH-w8QiAtKhK>eM;@Zp#kFfq2{UY9es%_b!H*D(mwP;n zjHLb13A=L@g^v?)Hgh0gSuJ{%z$|7MArpYL)kR?cJ}>dG-@InNrz~@>ka5883Sb4v z3cB`~XKw_FIqhkicyvH-{;i{(O7mK!Jj&4x4wO;bG7AUWG~h^`#ahbS##5lvu4#yv z7uOX6gtZZIS>vJrT5Qd_bBfwp>&DAjIDx&~D%2h#G~lFwfl%WssGN|B`x|97+^sL5 zvSWcRmVEm_^oNyx^wE}i-8ajkQ$(i`I$7_5%#RetRR<_=^27X*AW=;}2*Vik&-f}^ zZGB1b0ZDtmpY8(sTwF0mDg(AuC+SvHJ#hIrsQ-*6zo3S~DXj<}01U8jNM~N|^eLuKPg9Jmof`=o>{5LUj@Z6vq@o zp73d~EUGFQqt?l!tSg%4%~Hz=;=Uo{?wu>XQtImNt%I-wkxIpVEzd=lmi;2#p5QS+ zVFW!dZ53JI*#v!Fad;hiG#{|WG~;V;IGG#nJ#*Wy`7GRKPP$=LqeVcdL{QG62c^D) zovrSghBgXGXwQgho&dG-d4b;XK{uGX!5$Ly1g>fV8nGEquc?G;&HflrnvK;vUwzWD z_$*8Lk^8yreyr9JK-c>*W5yAUlg&Zo*7#whJlxG*KtUvc$oq$~kh6g}?768CH0%$; z>sQ+lgF|3+Qfdy@{+Y=gu^X2GT{>0{lbB3YhriU#ImI<1;+laUK6V3nShb`{Um>#0 zRm@8y>UB!>La=7oiT)5DhyXYC-5>*l2mmeI+rR*f7=Q$L*0SOIn%hhf0ZLbnTPK$! z6(I@MNmBKJ=FYYM4_oKhBU-d&(Xw&Nwr$(CZQHhO+cs{Qw`|+Ct*$TK>DTFhuurmc zvUbLtV|5>-b(}vV2bKs(?rKVrWV6w>UWB~_!m^aW3TsUVOyhL@8{s5e^J@;vHSd&w zGwpF8lQaTV6bJ~@&eq9&yt}tPi)|`l))_^k|9V2#YV&x>8$k_x`58mC90cXi6dX^= zx6!somcXOf9ZZMHXFf@~O7rH+z_O>EsBAcq%fB<%UfKT?tOL zPl5r3)Znko2w+ot2KC-b6C}xJc=|LMX6fNVneZSpXUj-45;pNtM7r*^{h#iEcqMqU zW&#yCi`PEOwIdO!GK03DkB)bc{uRw>e`3))dq_$FXgT?Tru5n^x0;hwxC7MsijAF$ zHyV4M5C{H7qt~9(W-9=QbzoMn@FlGaSD-EIrMy!mMv1?A=_X0eZ%30Yw&jW~xJ3Vk z|FT!g_PZE0o(j$%xMzOI(tOJtQA7@7h*=e^(UxAaai%4)kCgxWhmjv z(*+`bb!T+}9&{;Gpny%{4t|e6Tn-@vOmD4W3MV}ypKx>zU4y{sX-_it<1JOEiWhjA zU=buR9929+^gUm>oTy-Ygs=l!W6p>9dZO!}T`{KX?oQ z23n`9k~V?7wdoT+0Uj%)KiB#J2?A@RXN=IQ_kiL7=~L#6c?}1MWmGUN?t=Q{`c@Vm z%3=%H;sIe@SjGw1ve<)^xaJbWKpvaX2TsU2@oXY5QC*dPuP1x>L>dHGWdJqxo$<^yBxG~9mUW@&jsahWVaUHgQxCY( z_l(#Rh$h?KXS6r)~(7-5#oh7dvOrl8c8;kEz09cL`y zz}%!wfhBZ)oX?Oi=YwzD*1OTkHjQOv@VWZ7M}V^#_q^&+I{K=hfU1j~E!r^fu4cBe2` zE52)^y3HYrK@kK-?q+lIE*HPj$y4TEl&LaNlvPb6;@NRMs3iJ%RJ!r7*tENsb}CmO z%toFb4xnG&>*Eih15~gXV=Jm56ROKlkLBIxRuo^?_r%0d72D1C=WnQSQmehW{wr{7 zmMKY?CB3~}d_X(KX>;u;8yZcCn$!5n=pLb|U6}_LECNXbXb5japMls3p87sF&G}(X z%|d&vAMoID6A;M(OrISEM~xj5@s()ID=!R9km2|czT{1J3hMwe43mg$A*o@YvULT_ zN0&RZd7?KqfDWSb22r%@atZoXURYCbQzb56k2s-+e53l@`$lVNvHN`gqz?(V(k-2C zn$}GA;A>{R3-|MhBQNm&%Kv@BKBO7YGU*g9lskd6=&tH5F!^~>-%3`?4EhowLC}DI z{mmJ(F&mI|Ps9$4a&ocKnvXO=phrP$IJ%Y0>6qGtHzLraB~;S2NBcwpPkU<5Ub+i6 z)yTBVPi7M;=8D-Hc9e~7Y_HHNGp%})K}0Gc5nYNFMZ2jeMCnkN-ZGIhL2y&-IK?1z)2tM3Q zy&Qa4T#?vfN~R7}$ZcS+4hT>Ms-a-5DBuYOI7*Yb?F3J}@7FQ6!L{h&Qrd!r{ z`Ya{L+N#Q-SrO_WQO5fvGfyEVykcKH7kmVDbYIY6))ISorTXgSM7Q+)n6(`4$&wS( zv@{&ex}ZO=>9i4chloj34Sr^&pPPU&HCs$VW%5`=DiM%qk7S3q8afOcrQ$|~>6BDu zU#^xIEY#97}4!)~O1DO7#e2YK}r+J8w*1ZEC0I2FxRC?{SZrx^qpY@99F zi&wD{QfdM4%5dx7g6rrMEv zJH+XKb%o7msc>5vUV;W#P$saF!46*(5*nIndGcvuJVgiFcH{Y&-P)4zpkHZ{3Ms z{AWEv18HlK>o>xqDpO!GRMa`&4#@JI!Sf}=cV5*!ghUQ>6z}6O#L?C{6X#(NfeQ)I z!osq=pIXVO_I{uAByX>S8z*$%uka?s(4K&Cj`C1%65@mEw@ClM*m39*j30AbhfCNI z`_l%r{(zNyDQoI5%m#dwH~gV}v2mtmIrHM*Wx@`ds>L_K2%}zuiNM{ zvieUg|I3>@o9Bvb=!H(7*rF8bC_p$f*r7lgKla=6Fbw{SXKNNsZU^6fv1I1CCw3;c zCFz1WYSzEkCtZlMggdU!c)?Ab#fOmz4Q-e2G7@%zn9K^xpU7S*uBFzCJG6xu^W!`1 z4_aSta@doS1M2KrZN06OFg=gULlco}&2BILd{q<>`l+7%X}yT1{h{QxsxY#rz-GB~ zKA2ivArP~N;BOx2=x% zv>Lj{ttGy?uG^I5?33Z+Ig{R(so1Vfe0bb*gL0Nt?TyhZkTS--Cz)353O_C>hS)N8 zCjRCsiuFBfBI+XG=(I=mokxDUl!!#6#a60p#}e3y4%$4@=i|l}M zOt(zyJH>8bM2h@h%)EbK#j?k%1dNgD?K&tsQg3#coue8-GRh`0EGRjiYw?Vfg7jw> zxxa9_(*SEn4w%J%TOrJ|lQ^*S(Yrf$Vyc4j4Fq@rWGhVAIB9~&{J(u~-&T|wT} z4D94WMH}n2mU5)%#9&45AjFp}+oqIzGF!0+Xsu^gem@8`efK z%pu@4zT-wAHjvCe?&`-RwloB_jzVAyu%n#U_j4I9u+Nyp8hOp!MPuvf%Bz`4es$a; ze2010{#9~3bbAC@$l+wHKlp>|z73&&>jZGTx<(|^b#U5n;x?Ex0(}k68+g%;F?(H@nR@+!3WwW__|8uf(h!lA99VzhXc17Ik&YtGrnM{ecYMr8py-zWRX78&YY_;RVP z@)CT>`=Qj8j(VR{FdIY3m!*$>8wPG2kU}lqjf91c0)0~|&P;xl{_mQ23*kaq`IzyP zsbmkTI-$brGSH<+P%{C!cBmbBd`#SZfC`sxJ}lm_%Y`n1W3waMt$TN-wcN*GA~l_F zF||}AJ^7Sx^1O92Ro2;zoNq>lt!Kpym<}(I$a-1Y+=4^S!2AiP9))PBeKluz2p=wm-H7y}NvJhHb#W4svO8^5d$5Z+Q&{07Z}u-k?96h2?{XTCD+yJRe5%mmUI_)O z=J!+o3P*-u(4i}lH)na+3h6UCP5`{Bf9?x-RIY$0g0)c5qAVN~&%;7`NWKQ2LyjqG zp`E}jmTgcNA4u5ib^R;?32_Qbo4fi`7`BqnB#o-WwFw4oEZ71XAK8~J)q`mE)Pn>k zho3SjA$P#}95#Rvby*ZZqVRc=NPJl^Z6upRto=nXQIr7zopjavb)*B$^cZf2Vy^*y zBeBO~-APm~m-AUth;nx9e0Lt(x^B*wtJN=kF%|nm8P|Y&1$YHHW6i#_H=V(55^7p` zP>K7Vh|8j;YCp>;sV?2DW`VgK1JcNMCw@vx)N%JfPMteoS^_~78-FfhyP^3Ut^4>q z3rAex${p@+mRP?GoU~mZN1_K51?}3};nW=+Z9Jo*uo|M^Y7NnVIPyyiusc_~DOX}X z@uu8_lU@-^WxwD2lDxK!ufeGBF#gVz;*?&_eWU#+vi|nCD605PJRY0>NAU4~r8b=Y z=gQc7Z1LE5ZLlWpd{Naa-p5N4b2@12P1kIUG~_I=5I_HF(w?pB1SR5!(h1u^&eE=) zegPf~03yD?#+vKR;Q5*jF%UY8zegV6mRXS*5v$aRf@AyCxFLgQjNJ0Ol}~G$shfv$ zJ9T<5n?4quu5JASiP?zT5Tnd0yACp&!Svcjv-Gh6LWu-G&~SE>TbLI(-Y~d;gH}C# zMpJhYd>L7ooi7IuC&q!$>EGpxCs#8jS`aEl(0L?(@y2l4iR``xa*g6Q$-vNWE2}w5 zsRy9BBc=kslBK`d7k2xy)in3cpfLids8Xf5W(K@*_XLkHM&3QDhi)5IFuW+{!T=qR zxpj9N7&B0=;xgbKxyPzIJm+50J{shg4OUi366hmIkQ)YO%;TMhL&DD))MQcQ#}aM( z+x1KCILFsz1KwRwb?iV6f&(oqesc9m=DaO<{|o}OYk#`7Bk!9GF?*2G9k{AdwsUn&4k) z@=`?DW7;p-Ie0nV>w>x$#<2*gH#tP;4ZZ0z42PJwe`JJL zgF$enEev3;hLkmNWqJWL*o1KRH(Hy9yC4yX`*Uj2WPvgCfJ>hSdu#pZ`9T=IfR+0J z{8HOORxImk+ghMF`Ec|}yZufQY$`_cHL!Ogo*7WdTg(gX-_j$(7;;`Y<+uPzn zXWMLWa1(xgB4j=fDYlu$_O5 z+Af>PgGkPCEmHczo0Gp}sdB{=qfALZ>ijKJQ!WwpX%JHc@kb!uDIt}E9FwL6 zO@R^ot-4cYa1DhQ+4!9J`9_&g#)Y%nR)Ja-FQtZYFMFNybDZ~e^*73l4`$kLWQ`bb z#}uENG*Lf<&cJGJw$N5)i1 z)pEEXa4-Mwa`btDw&7fGeto=^>Xu`VWL^6K@pAIH>^v4JJf^gnXdr6eAp)gyzdu|d zNHQ-q3<~ExO=B7M#rnoF;9^x}!S!#^l*;>JcPTtT;I}5g0lu9M_!J1pqgA><7vq!I z5qq}0%P2Q7>BnJy&G!ThLPfp4QA6yvbO1A=UCq(KZ0coze?<&+BB`~wz)xv?f46Jw?fwYJI_^aY^qx18n+RJ@y$|V0VYX36JNcb-CnrW$ zwnY9C4?7Y+7FIO&oq*|a)0Y(VH!KfEi50N3n^Ct!AFSQw_DugKpvQbdwi0l+s+;E% zfemhGKa6?LDoJk`oNPV0fNZ^(uB;G$B>3{N;1I|&9}cpsRcH(_KRI5G*Jxzs)PGLF z|HupU*K;z5V%7^Ok0;O&?At3<0|tyDcbq@cqBRGJ!au*b2c*@{ z7Xxxz2@SG4A!Oo!gsUG*^*b)E*6~E<;U1C%#aT+{94l{a?h@i+@$ce$IN}^x?1Lz> zvH3eU7R;@VG0&q_IcxU^*ofnz>^}JOh3^Es*sq**KHnH$p!5=fD!;(qCKOogmi520 zU=Mw_qCn?Jv@Q4H$#V|>Gn@SavM*>~wl0xbte%1nN_0Z(?ft54VPPe(AmCFkTt79n zL1cy17%X^cS+%X}ZFEb%B}&#z?IMLRNhp9#MwUU69;jZ^qiqph7?$_8O!0KmY#cCl z8{%u`L%jn4XenTHW-7>4{kh`HE8}b*>lgD22VHcfNF?ywkE)OU&4M6RT*+28RWMv8 zO)3br=)@57<0Mo|e{@82*m!5TS8>38-p0?NFNX)Hr|;T%^ht{AZ}#0t9N?MoM0(o4 z#W$mP5VAY}i7?FtB!fICJ|D|kG5xLvUlOX`r2I; zeH_2g;8Jby^6u*O>e#@dU!C6md6ssZi*iehv}Fdd6`Qdns^?-KV=P}#qEbR2$B`uZ zcVgg+L;`jng}v;YbgWhnq(yw{zxP-Oh}1Pl4&FBE4@4TxQW{=rv6Hi`}e z1Bh=RXM+O6F>-f&9n$%)$bun(pE|*irBdbk8^%E4uu+@HDde+d0U4*>VgcvcbU&^^ z_JR<>PvTFX&?kbxQX|hTL!0o1b_zE~?*I8rBWULyi4q#u80f?R&9q&#I#no20A_~hpf0}~>iZUY2u~Ph#}B2d>Gtzw)9G?+4U@+AsxpF~3i+5oEc_-~{{G2FS1B=B8g>p3D?LoM6>UkU<-J4%PddeFl*c z9*=;c=1{~*M*+xGk1Mf+5d%*_ojDQX`8{BW0nwa#du^_-t^J!UmOs;r0G3}DFP`48i)4TG_TBIZR~SSYB4J zVp%E_rjjbO5-!@!cM1uVlJI8!6o^q{+@?{LS+ih(LS7YyAq_O5yR zN=@%2Htxu+#fMD_c^+T<)AH8eXGRyD6x6<@HOwTr?)uCXoYK%v#7dP@y{6a!-#s1p zuhawDQ5c2Q)iP;sO);=8b8zK1ajCO8(gje`1gGJKwJ#tzZY~ zc4&!iX7s7x57+)^DDCR4Ah{@6E>^dG?@RMDw8JyN<7v(-0c^)-%Z~w$B%<^Ubi1_7OhjH-`h9oh>Du>;Hdk|*$eW7t?Xb%nsRhx zb7Zvx+HgSmwyDu}VAhXlD7>j&6_gLL;*mt-!^^e*NX}=;0ehm(GpQm7Ip{V-_fXzX zFDp*_InFbrMdu#_0(hyb``$cZO%sv!{qmY{AMzpr1&K@qzN`>oiEb^Bmw92(o$ZWW z%b0c?8FiG*#9-21Y)LpYk%MQqvI0OqS6RHi_w{<`JZpb`Vt6H2ulLFdBw-8j+<~8O zNye}#MTUgJiw+}=x}ishG{3vqDvD-AiM%P>FeCFFW2<_OF=N;NX!tW5E7?QXrE*um zYXlV9=VeA~E78{?j{5~PPrX%(yGYk*y(^RgbC2H1b&`R9VEV+)jP>zb4OGMKKi}WDUY!_n@n}J@S3lzg(w%1s(LV zc8IC+BwTXw7Ru_zZ%y$Wy!Dp>FZJ2AujLDKvACLC+HAhS%W*SBJg;&pRd!B~TflI& zdwG-Z{^f2WjWc}-t!p`ab%W63W2Ke?WvdyrtE0n07xAl^y?Fo}+u6wBnHGpx#Om>vfaN9(jHZm=VSJzgv<~NdNh5TIMz?i(w zCDSVQ@8Jt1mbMZseKP7(%y;cN?UX+*4%q`cy}vUK7LlcKuIF~l*xK0%$U1Oy-X7Zy zfB?7V_dvz>ppUUKRL3U*$umppXT6>U#^9JG_!D%6RfgMxi-a0+P|0_;K^X}cm1~mDW$B1TsnYF3xml;cC}#(vGvtmpy*h^;zBCxTTbWIhp}xmX zT||Qn)oi{JnULd9W4sTMahh-kt09hFc7}p$mLbsyZN`#a8NSkyty)(xXg~LY5*;}% z8IrD&N;6oh5L5w!P0`4!uY!Vk;#6u$0b)U!@iySYILzKe!V0O@slTa|vV;}->IXz>09iU{y}`rHE`DfcL9g@Y`HO38Q2! zgz%xD7cx7G1qSS^NtzE^3>8iQ!c?lVK|W8r3A)1r1ixZ}^<0yXKYuL_EMw*2&%qKe zsF@$W+d%H2ivww^DohG$s;Ja3R~=@}*+=>r0G(YGS_kHg_owTR7Baa8w@#!O39K?R zYHe10axE|~U=|U^XCT!nx!`2r}^If5nV@wEYBSKCd za!j>7^<;a#X$5heW=cqm?(7e{A?6rQ-As*6WPjaJXIc}K85Z|S6(Cb}Ee-fc(h zb_Pt*(5DGFnf+n@2Z{~)NTioD5lR`M+k9S|$r36Teg%L8&I{yf?H_#$^f-H5(75tp zz|zdX+rHVBVTA>oSjia~b7M=B=cHZ0r` z8{?-D@_rz%ns0@$X|8d_VxA_W2axT&w!duISh`fBJcQ9scb}ifZ|!}M7@s4f=)3@Z zRihC(UokmoXfwEgMIn@6q%=Wrd^(U%Tk2ZW<^b}l;N(Pc$MbG|PySrIRQ2hyhEmLj zgfIW7wJPD(MCR~fW#L;%bSCyY{)8AM1eGxaA?0p2Y*81z3-1odi7)K1i+JO$1!iNQ z6UyI(HjH=9qD<4bQx8gYbzwl7OiojT9QzBy5#MsZ599N0m=`fLdo{i!5toiAdn6>+ zS2n`{;2=NQP1xiV^~N4eBK$CKWbhyM&N#rNN&x0h6KrK4=a&h=2zd6fR0#Z2FT*j^ zL96u7JfklwwKB9Jr?eml?`$q#G2}Kl_{t;MtBjPstqZ9#t&dYr56D%4@QxulW_E_c zjWPBGQ8c{t*Y8{l#!eGK=O8bDOMbW{ga}bNKlMFr2}M&IkuV1 z80}M!j1N=s8Ezf0Cdbeqnj zfEplk@4Pm)ODvZ2B01MZJw0V*16X{M7ncXGpA9mL`(eLD>-+EX{QF!7bi8@;XoJcd z-BYgO1TWFb5$lI}ue8r6CU|fLFUhePQjg|rQlX`pDHca|ix2JR!T46ZA}kO5U%K}} zf&zgzjUKauYLSI%>4uNX55U&B@%3NwY{~t}iweprw5aP#e-wL{kZ}@awS76#J_?c; zLegWGWVLbZ@uS%SEwxjKSw_U?M^h;wyT$ zokG@@Su#ld^-k){G4#kuB}wA``AXfOka77BV@(Fl(6YFjZi;^5=wkV2%bPhY@pgn^ zcfJG13hq05)pWY71*btp_W6?8_gnK%nu9bzg~z>!$gbAoIFQs3Qv+S$CPp|XZJ2H^ z2q$vhSYY>Cdb$!U*6+J`0GdJXSi40magm^;uBgQORMWObob6}qM64(7%uD0La7Pf7 zhH-51AvT6-hR7a|ZWBJpUri6=PgvxaFcgxAVKahtjBti^Y6ro1(Z(EGKh?v_^07J9 z>Z}Gv#&AEiQHq0X{2V2*ZK1I+-KydD@-gxy3=i0{q}^$tQa9Av)kV!1>g#ftM8DCe zA2}j3ccw`L z`X5qHtSm?v95AiHqyL-;k5r5gIl@HmKW{LigO%c3YFa!b{VEEJ%wj;~%yKVJiU*hLhHFvZe4N5h4H{bfU-o_#N#P+U29w~0t0a7A&XFS|&_ z6{ZX_ILMzbnkOZ6^=Z>Yiv>yN(kjS9*AH+k6_~5LfSIJrPUZ_-gu)LtoqL#oiUhT` zJHqTFCk2p!wOQ6j_&;H~GF2i$k1wa({l3g$?h_7uaY=!`h*Yp=ybnXR83KoC2Iza# zD=jhG!2}Z$ZzB87KN2rOQFQ3UeX2SO<_=|Wuf=vnxBKwXI&d4lra*@lB>p{1SFY0B zx-bV`rzNcFkpThFL$#GfK{j#^9RgFkGBW}Q*Xi1^gy)M`B_^-Fy1xh`PQuFs8g!Q# z5?B3F%v&fxorF1ESo0ud^r{HdOlf-9cb>=B(!VzL+IcY(AftO&*gUD0AvWsL8aV25 z6*;;=W{}*i2hb42J?MKiCpiA}ekyYpYs1eW8L36k&hMq<@fs=5sYr2)^$EO2>>6h@ zD=3J|vex4{{7YsuDH6S1Af4vpCLhbDH*`}rZkHVceGM0NhuQ@x2@L?Cu<9svuE1M~ z{AO-x&sCJ?LGm)g(RairFCN|_?x*2NeOicO8Pq4TX`C_3izpG`63AR0Z zJKdPSnb-K(ecc{cUcm8W$;vv(_;BNq(YojXP%Q9itR`2;Ke&dhC75IO%iDk%i=*Kz zE>VsVg~cQGHNqWGxp=fiOh7uNRcI19!4c!thhwKJC$+avKh_=X(WYB&(`jf`B5Wpp z%4b-!br!mXmNY_1I`q9=%J^2_RqPi-&Sr?m=`{y4oZ@6YuZ91JRP7vS2|z?xkwTH;-p zoBVKFcOb!>5f2fVg9HU)LFD6n=edCJJMULj;q1{*#smW%@jf*P{F8z+OYN~X=43gv zxa3{d{2d=tB;WTEl&>RKr#@|}<8d1H+yGq+Q^pNM+4D}~%dIW^WYq^eUxynCCl9!; zHo&s=CRX_M^suOWlU{WZ0&pK|=#w{mqe$5Og&gFg_Bw39Q{f3-3H2SGQ^v9O@o2P4 zEU#%7LW@gA+g6kgs$_gG!`;Z|*nx3sS`vK}Btc}uvOr!#(7ldc04sIp)b$;5GhMNh zskFqw0#pXa&#rH^0CH@|8|_p*pcSx!D&TL&?e%PV&~K!4;x%Kc02E0GHR6>#-d~qQ z*|tjB87`}E8ZA?Gtl8TEPhBk7ZNy4h59El8T5$Il{?_MRpZoo(N(tQElp9cr zV?+&+d@pA3(F;*pC%P6PkiXX5;0Ac=%1dsDwTSCG*x#VA;`w2}BA-0?RDlgR=^Ti+ zR4%%D(ibEYgf0CrOe zlHdXNZ%3P=ki&K{Lw~v2JqFn+&IBKuk+!3Ux$x6C{mj>~_Gc5$dmT%>e%7q69I0em zMULJF-+w}GVL?10Lk$3cMGHWH-+K0cZy)?$klWe7(bU4)OJ?UW>QjBJb*LW&NXTVL01+W`A9$=S^(+Ybx2 zMiC%j!20y*7%--+e|x{08ZcBG95SYp`uAOp9^wLCx%DnPb5twQCPtjL#B4$Ftsmn{y{`M*+iIggOl$}G=+@G6BweQ>05I2)n^a% z`gYJ*FO)I-)Xj;ks!vQSfas1OcB-@qLSPX6&GJp;Zz?B$F!oQP4CT+{%#O*Ehfgq1 z8F%9aWG}7jIc+`u0QYP^+43}LQH4~sS?FPCvuFmR$auFS6_`V$7z8?86@HLXpgc*v zhKC7;S#8x4dWER2d{+mEKQv2NrR`C9a77ObX=pca({M#a52sUWXFIXF*gfH#;3o*& zr;kN$VrYChJ>B8?qig+RLv(Xz6Q{d}Y2@#3r-z`^3ws}IW??5Mb7vaPkMC1=b9+&~ z&d&FruUAn;Noop@Fz311y22x3b#b%+_d^!KQ&3$+gHHZ{^hGOSW;1?)WZ*Ngv2nD% z0SrDK&JKa`dsqN*aD}H+{cA&W4}V9%Z<#zFo-e1)-UzzbJpk!{EB>*vy14>HVRi6w zv|#=}5+HI#r?+;uT%12=yRYdRv2fdhWzztReLlYL$7xMPYJ55X(Rs3Qdf599W?}xf z{Y?i#wppB?pRc>8E_|L2x9_`41S>qC=KfHqCdGimoq2F?6wH1A=-Ax7?3_FWw7h&g z?d(B2KIkD$QJ4drMGr!!H~njK9Qp9{y16-mQtX%Vu;9-i7rEGsbEl3PG*QOPk@Hr?$>s{h8lZAanw?l!IkG3z5oHJ{ zV&h#D^OORF;IUA|y4oWu$Y@Dbk4}nk^{>Oj=8qVuh|1vg9||XY(}^<_-=FaAWOjs~ zeVsY|FF`qQi{WW~Xi(+;ax8dXF6~W8+=9C6Pwp1*RWboV1|*fwcyzlfxb^#c_FiUg zUM~*JpSCx1*W1(dp7p>moaa5%^S&T6dZb2_%TeFJ1=74}XUTo|$wgw z|A5}p1HO4WLSyX)^ZP6_$yN?b7?9jWfU3F=uNQo8IpSpJ4>{XqB6)qYxV|pL%qSe6 zESwW|0PrSCfzhjFoO(G5At|TA7|o7sDteCJv6wY0ZX^_p+us#RRwQ)F)n%O-j7849 z60EJ2hpx84Vr#gwP@whu*cM_ACx|ta1Lq7B4nfm`fM$)z0e^B2G5q~;DzKCPt~~ti z`{-}(m1?r^RU*s)%mbqIWL%AiWTy#m$T>ve4-SyF?CNO%s12Z#5hj|UXXA=_r7UoeSH)+d$(l+KwCjLp_DexkGviazUc-zDxp zJZ)Du!g0wy;=i6n_yv>9C{-`_86)|T&Ihn4qx{ap5>IyLVhD2p#A=4ksp%vbVF`DA zpqVif(ah^iyT4D;1wtF67uPs}-CKGjZaD@Wxb@c70JsHWh*5r&As7PBg;#`E7`7}N zCwgGQS*NJo=YTO5=LkH?+5mOVhE?R9uzOfe2K+7)1ookfXtQ@ivnc>-Mp=IcJAe-D z($+MutL6(`p7eJl-0Nf|M;7_r8qvjAYSY9ZWjKkFf;AT>kN4;8^YkW6{^`!1P2M8c zxal0qZCfNk4smr%00eX9VXVyY;PUqEYz?|XH>d+Xd$>x6IH@Z=6{}8mJ68XO!&7#Y zP>-T;w9f;HeV#f;xXD_=C~A`qvqlY>>_2r7@}|ZA#d9GEv)}OlfK9?L0bMXYoLcq!e7=384t7yQKDl>7ki0@ z7fv;+ls{cXchmOw2p*Ntzq-&OMTd+|ntbMBD<8B<(5OyHvk7mFd-DURKFp$ng(Nk> zl!Ix9k#ZoC@Zb{7UCzCIwI$IrRCT3$^pZ`O$sx>SX?uV?i9!RWs|pOI?s zT;MsNAD65xcQ0QDdsZNdm#2QvMJKe1x$E1HGPxq!hPd2O-+xKYTLutTEUJooQ~e(u zfio;ywytP*Xj`jMgK6M)adhYJE*CpJDYL8}Vb)~$y+qaLu7HlhE})2wKzg)j#6wp$ z*}XmwV9x%7Xhhj{PRUlm506E_UoxvweuH>r;_49O#9fLX37Vn(`<5+FM0+G(;_O28 zZJqP)37zqpRd@4eHXy@-5xOX2isq33rFM)!vQWuOHLJLAJH`YqGjO-H3G1Nu_N%&h9t*vZWB2;xqSszolzZJLK1QA zDWAHf{m3kCFo!;3xj1u7IEVf+eK!dYi}#*QV7~6z52dB`T^kGx|D9WE?)xg0rW}S7 zD-lJ&bsIGApvjUc!XR3;Z|%Yj`nOI-B?i}|a=Q&@mAs7={4Y?7LcH7O>+-f*^dgU$ zGABLMoUSAL#9@eNDFY-|2RwI={Ti_J{AKb@W`Q4`_4_LZ`wYW8-W-bP11|B@g;%ES z;Oo?hTaT34_^mkdB*@O<+}ru_KK*$p$Ga^`(O@dlh5$rr;Qb(x%T+>(av-ozyL@*V zsS_U>ix5a(KwnS$HbJKzm98F{o`&{FUpW~A7e!u(80RWo z;fy4~Ht;vUjzlkUEU_9N?WE2*WQ#vU%{Qc1rz;Igs4S529SGNM1`b}=oSU#ySsI$A zcT7L7$Nl5_@^oLGKtIJeC|cq1_G`~+t63!(LHb*h)VzV=ysHu+Km&r1k?Q^kNOC#+ z@{$$5FmgG(kGq;*_&ggk{E{0g4uTPY+ycL`2}@KMh2_s0MlFBvh4;q1OcSzA-Pw(y z;*Y0#e*MW2fCowKlPy_Qyoap6QzNdg`~7F~Wc5d1R^`N18IF(yn{MGUpA;qI)lMo( zrX(qc=3!^I-Q|S`TpM6khxRm)3F{~6o`q4SHW1!SN8hbR-Gvy`25)BLePQyp8)wdm z2bdPwCDOqATq$x=X^&396L*xyNaZY}Eb4ne<+v#(b~a$YT!$``ahg z=Y7Y-Qex`4HRZA}Gm;z}_xt8Dsz`}zyS9EzR*okEF9YY~ez0s=KSF^JNf#~(KBO~| z<6_-tr~;fXXs^8eM%sPrROgI%|H4q7zgWM}5s$|umuD6HvTW;K2%d)_#qrP zeNSQyMmXZD%m=~t#fFBGd2YG6l0;=Dk!!BFzQE_CKoK$Ous5yVCr#2-2;C^dljMFP zaEcBTN`f)420OQ*o?-%IMKn)t*w9;plEShts0QIUw5t0zJ zwTeC~;Zc0wl$2lm9>j72k$HV+=n9|HKLmFHf%K*?9A|UrB#las93C*GIoDUDO4ztuVF^#&i^djm!+;}WU&b*ES77qCLsEYIh!ihpWffc{c zVvI0PnYg#B&2|ay>Z(Ci`lwCuawO7DnKZ@LwO6{ z8nX(_(swYSFHSYa?DFP@WN(P*xJ7Q1-231UaIlp1 z4X{?935ffJ;dY(fq+oOGwnz9={H4_$TmW3}a{04iJ3cE;@*j6%Nnz2aD^AP;d8 z+WH)JZ5GZ#BdYwRCauRvO+lo3xeK4){6hVEjvw&GxF%Ta3eu7gy(s5jg!VI6 zQkjRp}= zBX4vLm$!*`eaYLn26#V-9e4A)30fJi(x)-kP*0+akaV|DqBpPGheAw4NdF$8Rea{H zz6#!?&S;e;VEe_u!MkU=OowDcN+mQ3Mqj&$yVkaztISDt%d-nYZWZa!MLv)#g$Aru zyBRRi1yz4wKhxFHU3O(DdvWV6ip2@evqK#zu%izztdN6A9k@och*Gp4%hkhk>nd`r zZ03)?(m5p2MP!6n_gd=?H`lVu@N*WLnA!Q%qVK~e*_WwdFURkEvQ5p&<4&^rJC*B- z;KY}FD8la~Y}cJ{t=`Db{h(#I$&c4*C5b`px8H@HpSJd>yLVakAE-d%)`7&S@#5BH z-nuUZj#xnBmeIIpL*e>$y2HCGlj1v|(MXM4I^hijIXS48~;H-k|FZ1Ap8z;3Bz ztSYc8D|hN_dhh*M(Z07DTj;%kPcAef8i-$X=aU!h42n%rrPl}OtrqLjkr|Rx+hsiv%yL>EXn+P(OKs0^;SBOSv{)Wu zq~A{R&`zuZY4R635>|x&XhK&HcBREQB@o;}sP%a*5xk2eAeU$HSCdFZ&bMEJqhwcw zR6`8nhoJ5VV(I5@)~8`Q3}hB6_M@O{0GK^_W1-|aO=+aPe09p6hI}oqg&80-uU*i` zIw9xNt%KH;J@+SdN>5VvCTA+P@NeXi<0FYw4yws$1?*+H8=FuvW8gj>1= z%lLMjy5`8Za7{~eF6dXqBu9_tW0=(QXY9YekeIVxp|s-_9ef_MzhzG*@OE0uRV#$0 zZ8&*P0MocCoO0vICROOTfQdlc{1*UJK&!uigwIihqNtopl@%K0$!o_v|4{}^92mwP zy@>=sJVB#MEeX>X++Ri`w40Ac-7=Y9f+ibZC*=N}81f(SX?2pPKCmP1p_%-2boS!( zw5qGfDL^#rM9cM#1q+Wj+VsJ(X*qI zgR@^cjwVj%{cE3La*@3?N=LsY__JbBWq2V*kN%Y;V4XaXwM&jFTE zp5#p)I6Q;wx!MHQ)n%Zn6srNS2q_TkHtSbhQSVP9W~m;1J*T&1MWeH>k_>*JSWn{x zn%c%mb(18S;-9AW8e0rjQ6~Az`!9eW&u>-DEJ>zhXS|9(Cq$6YTQc!7{yo_nc!`!m zhly^Pbd4JjyayzUAXU$PPZtPa41ag6Z3eATazrD+H>r+qB zSE8@fT~fmxx?<6fm3BZ>;bR`Ms5Y%7FaoxywCH`(U(IEv-gxRRe(GvAe=}HxZ5Z?0 zdl`dRW*HAvXHoFmy1(U`5f3vKU_c>7XD_trn1nD*s$^2{idTtK-DBPj{o&DjQ{-Q6 zyYkrXOO2+gh6j4;Y1c4_Qm^UA5I_4gvvktoOaw72E`nd}mqv5ytHa3z_ZlDjy%0=9 zKEd?Wdml;bV;3`6TI$`7gBG&CDZO!K(mVZernWQtz2gh@UM*dl9h`rkr(^GZll!~- zVKv?pZ951QhkS{u3p<)?VYcI|71VL6vmeHXN2Zv_d;I!vw+o}{!&0ga4oDFg4-Jl) z1M<+(?Dwt@$k%QH)rs+P{nn`&|GxVba|5;h@TmcqcbJ*AM{~-CA(PO(GLvgO)&&Fx z&;GvqB2i2Ru)6c;TcDnY0P#3^3kEyvGEKi7bN!1z65zYCR2>$N9~yjfBbp|2*@uk% z#gMsphw3oIPLFnQjVeFgYe1lDh&T>WI_<$mb)@_@c)J$SmyP};3mBZgWryS8*UNUG zr*iy{?)QD;#f!t2#|IaOFM^(wji2or!0Uteqj%4aF3#@;!NOql`tbGW`0#Is$9Ds= zQ_nd%%9T~j-8N6Ve!%lDJc7p(1N^7k>-Fr>8jZwy+4*(n;dj684j=xyGu*-dI?)3I z^aJw8-`V~3;dkG4EQ6}v@CG0Tl{j17&H&iGdrYSH#r^vGhrR8GwVb~hoxOZM{QmK7 zRK~X@9=%*I%L*l`=;-`(`{~oi-)|4~Db-8zKsQdry*`IeJc1=HN%U!cJ% zc6nr}nt~OhSBVM79!zs7kG^t%5VaU@_X3B{k{g!#O{7v*e{V&Y#%4geZdvWf+F=Ar z{ge-8Xhh_FFZ$6EiUQ-V*r`D`bU0>K`xxM|a^j%MTdjOtp-z&f2G41D9Qhrj@7nMc zl~w3yCV_nNNQ0~);e9lMGzbk7ApJQ{L6t8)(fK`)U&dZ#1z+8d ze&fC9H<9Sb|H;w77*p%%h9PbnTYD9M zN;0Mn#A)yf{vq=dJ9Qup#q&zp`aNzjqRw}Bd&qlgVZ~X)tXR}%BpuQrco67DuD?kN z;GqT#l1~VzudSG;6#gNI=_GYIk7tp13|eh^do4YGV$&7X{?F)4AVLqS1|o6gFBT6eI(gFbG{?J<2}ItMM5=`TrS0yMYC+ zNwr?SRWhFkR_z%Zhimz0i*H&2A0(5N@WUo`NBN5hZ>pOsljM^KXYhP~$8PmJsal$> z$X6I75apVOz>EU~>OVOTkJIV2Nj5`o=p4P}G~@hn-*pmf@lLVp_AT+vo<_$@&vRL^ zW~Mg52VvD^0u z$k?M56DUnLI#&@m&%ugtQl0^xT*=KV2Z5@MAbdgA;ryB}CqZH`ke;$0iuz|z%Bl;A(y6fx5!6>vlu#3L z4Sgyu?z4EI9m&X2Ht4EYobgprzHhh|Wm*LFHT0xp+dq`5Or`eDv)43vuHB$<>NX?m ztk*gE)w%CbnYCYMdX4OZ598zztvlPw5iV1 z_Us|3Pv4pju!7U7W3{Yx`mT5M5Uk)9~JHc;hlHv8S@ z#~z?(f4};E*aQL3Y+U?_i?1*`1vOAbWCl@bLVNc2-LIlD^u8fZVR)n{EJST00_zle z*cY+@b#C}Ol2<7=Zpc-jTH-0Xsvbu-dGRSO@+H*aOAkgoLl6b)V+Ni z-xugEGjbNN^wA!kdjNwlv8-D*{cGZ4Mv)txCBPym@=((qd&TPTTy54_BjS$ZA0LaE z9mrQ7;0$y_9SH(Ja;04lF*A>B=(kJw{_&p{Y|H~=&&(IL7XH4=9bA3#W|1ywI6G@u z0DU4@Qoq*ee(`?XHnSJXl*`>aDLDr15+(zZ9St=x7ExQ`g)_nW}b!6Kc+E>PUZwLd8Ytck)5iLHI7^jq7n@O-RwuI&?0v&ns zQ5JNhJiz;bwRv53gcw6Xq$Qmlo9r65C)F|7wmzp*^o-MCXz+3$tsQoj!^@>mWGOqC zs_0%~U&+?<%gYjd$#4Pmd2hhDf38-)4!dViX!D~l_Dk7td`}-`LL%mD(uT$*tfkkl zL0iX*io}>cnkHS-0qr_ouqBtr5a!|cq{wA6bk1j?>p z=V!*a=(i{ln4?Y-f$EIsb0LHJqiU$Zas+rO3qhA$pZcmoJ;gMofwg1SMH5F|LmGb| z)FJ(HV5r_caAwyY9Sf8>&8o-`HJt=lWLy7qJ>5l%Eu*{_U_BJT)9@fM1Q1or6>j;~ zuzfm!lq5T}DaOgj5J$E=Tud%)3JZkgoh-7GWkEWUSV!+*h)p?ouQ^Ed-jx~`Nd(S0 z6p(-pYO%^KRgT9MYSLZXezWV?5o5Mk)cSdIgRLe##eFm<+I9v*6$}VtT=hE5x=dq@ zKs*7&l=4{UqG~_7hUPZwB6c4yiNh{{fAWQ1mHT>Se6YFJM-K>&4MM=%{`SQDKrruO ziCp1aR`X8a2g6`Fz3g&uUvO*%1V*8~FFo`rbbCMe%EI!2SH`sDc=F7~hQ2C>KTk=t z@Pr(EW%;yQ=ewD@*CqG<>x&|#G;Uw(lM7}zQr(_?AKKDe+f-JGrbu6KPi+=sOyNz% z^j6zIBMBNGX+U=P5v|p`)FTSLQw0hr>ImMVO{+2#*3>E>dN^pf_H%uf&(6};I~iyb zQ^ym)65OmeVth4@*cHDI?ZxIUY3VF2g$?iSwrzgh&34VLD6XRGysUyp8bmwJ!Ie3) z608MJaybS7TcPK3-r$y5mCo_JN<7T)7WY>;OL-wuj{bUTIBLQFWzNOfpk>1{?0%Q- z4fNK%wgzX^5A#-wP|UZ@jL?GWYW88^W(CvpZDmgydH1SAwqPX@8I(D}b*yo?bi2uc zCD9AumPe=WM7>;=6lsWp08EGaLK9OFJ%h0zyRt?1^E69L+TR`qC?9?KBvu8MZy|f3 zb8|@8A3NJtu3z;zuJXbp#Z0X(QxB%mp>3QkqUilKPFVj%Tf{u67^DBmwPL7tOjSD8 zT1KwAL$iG{yaKAy!dw2`_JhYKxJfc;Tre`j5UU2 zi0kJ%{?et+?(_`p+1x{eu%Ev@^P~NI0HRI;JFd_X6u^A7H)Q5m@7{nJK_E!1wj$y<6_3&?Dg3)% z6rQ9aDS#Yu(V+S{DRhHdWgCFMAB`mIBmaX{BA8nso3uf(|0YXP55DC&6gB zbp#j;2Jh+Q_z*)a!feHJ>qr?>7O|8#O{zGZmzZa6iDRiSxApaC2H!Idvx!k!RM0*Y zGxYGPnDmSWN30Af_p_v8sNG)QsB6C~yL^Mscp*xtya4E`^0K6Z_h=%a{~B+!k4EJ@ zmy}ywb->&~y_mwzTjB59W91`M4k3qS(DOnCu~$%?Aod{u)8zAY{ExiAQusa1@Oz*j z8y2vbVPe3ai}=e(;)W2;WETj6FmgSOxY&pfMX2J4vQSl+Fj8}ehU@?PosP50jpG%Y z1O|MoJY`DD7ea`ZWg?1{_oibR^4WtJIP|6Uh?4s-eKuM z7wlK;*TOXwtVJ)RmR(I7*3A(`3N<(%yFgL))llV;xHs(7m1Rew7iMjTS~yh@XU0=) z%R`x>wC3uL{!lXm0PxR$Q(YrfhFMX}2S=GvfR`z=MRs)3{7izZQg~9#em9l+oW7$j zOg{%T`v7)=kJ=1!da|iPX;ff-!Lyw;HjSFa~+{um#gy5gr)()OPe}n6O7_>TSqX~=Qr5X=IC4)kPk}DKYa(NPZSw!ne=sv@em#xt%g1AM8aI zr*;aF=wP%(5q0b$dKK>31m^a<9?6;+yM1@c%mQV!RI+FD-as)DSoUmYt4sacQW`0X zB=`0sDnu%AoQl%G?+Lw+#tr?yx`*#(IW&|&2~X+9GKR4r2lYnzyM$uf*GU-mRWb~f z>tMfAF5$}z#LA?c#EYcUU}Z7320Ls$C4Hng@UD+ZU}^B2sAcF}uj8ocFmz@rw&vRq zEDVn*51VWYT?89QIbkcUbwhP{_La@dvgKDcQfGQw*+{*?IgQ*+9ai@t7zb0_4UHKS zPD7`fn51&OMN;4loI#Drqk#_{O0tPdBr+0mT7-b6K`yHq!$*uAVC2zUH3E8zLeV_W z>F%~;QyFm}$Vrn8&Y4r4n{~yJ+nwjwJZ>5p{l=L!N6!QpNKn@_nqNZ{>!TDx zhcoE4pi>*f(VMK1SZW@&4yhO%CPXS_tTdPNpWpT`*-Izs*J5txLU>l1K69})Mj*%l$F~2E+ttY=vk79 zgs)zFnIzO#$y2BE@)j~c1~|;UZH!NvMF;24kB;<&)IGyiIKtl*|4|X~Gl^$zernr~ zq#QJexYv)mmLbQ;OlT~>o^NF7);1sY<>4-Yn>n^1d=9ka8Wpcp3NK@feFGy0|1k7A zya+<6($nhJKOLj&xY;tXTLT~kMX%wIL+a8SIqQ@>$Tq0ptwkasMEawX|HVk3WL1*8 zi*K_OOCM65hHH$*7<{0CK^m_eQwgwjfes9f^AAbEGia`}{L&G;@h%pp^uSTgaaD^y=be*o!42NY^WrQ`8Q zu^vj#W3PDzVX&GfUM%sHzX%HkG8o~2r)5eBdnZX3O7(eE1MY<;0Vq6yj+MHX41gBt&CCT=Gr*&=2c{4pPFH4_H?55E2DZpk_6A|NyvdXC~I!6wj@@seI2ok zA^sQHA=nQkwBvG;Y6W^ShYlFMS!>h9k+yPOuO*&IH=)J#N0#$%_bHR&Q_EKF3AjNc z7M|u}5lmQyYYxRBNi2rR(RBJBKJ6uu+MF#q`rw*)B_!N0$!*V8vJZQ*ZM``=e0lVq z62a+`d{db3*KY#4jWgxk1W%3-X^A&8Ck~Yc$({wPH8qIX5e3y%7SmqF!kc-4heo58;8dF& zX>gp7CzhO>+*c{obXM{Pq9B{|e)Pc_Jj|gPxXY#2a{fiBu&PiobcgS4Gq zZJdjALc!LWyn&%(zw4h z0JLYrltR~@k-7&Y+4oJkzO}Wb+0?_`l`Yw|XLqb^kG63Vy8firN2aZnY&^wCp+@xa z<2F;(M^{a^BCg$=mS}9(SN;3Ahf0DLTx-TP0DVa3X3P7qt*h^Sq=bKVgLH3o`{9#E zlux#EZ|6z=>khWcFhY433F^bg-?aqUXye7MWJFxh! z+B8`^NU~w^odf5uxq-NL5!@MF(@oGOpwxx%&>FjSV{T)~AQ?!2NWs?*Y;8E=EQG`>U_O zSaKvUBJRj)S_#OVt|07EO#`(MzaI>@cXxK4)}sNGV9UoLdLca&)i789rScsGG2>Hm zdjo5<&zdXXlok~DB5_q&_$Ud5xkH020y+}zm2|VUmSjYc)(Ggc7c&Vc3aOMVb9`%n zqoAE-bTutVeom@=POL(yqCqq-@(B)cx5s&SK)ntd$i^wjWA0rTtmF)Wtt$`GDgln} z=#)XD302p8o3w~Oz+9pc_X4TYTif5cNHFJV>D!$ditD8QX33HG>d{sH0Q`KM%+f3~ zlDP4p*aiUACiOAMXZh#yoSH|Y*!{V{nx2dRRPyTtO zO;ABU*C0$wzg3^PuxA-vWP|vVD&mia)Y~oi--BptpZ@(d+p<8=Env_7({|GVYs{r3 zw8ks~_bVyC^FBbn%N_gwC_do(66VJAjF-$-p`IKtbzSyzm}gvK!XVYJ8pVE8#qP^o8-%^>SEFY z#J9BxCk&{;-rN0tb-kHe@B8oe9`1g>vYz3As>TDV?LB<>-ABKmIGyT(521}m zkBx%0fmYCf*L#l}sKnr!ryz9w?K|=|5`&-?L)fAS91P@@TQ-VIwnbA+){)F(46vBa zDftDkxhv}^qMp0`=s@`iqu{NmyUjz(n0RsWvJTF0|AJniBZc_2N>B31WVuLz15%K6 z+3J?r(#XEYzOa)-U4D{#E0l|sYzvPROy;@E!o2;l8J%O&Kl0?gO0KEeJf`^7pdKWg zniC+iw!nZ?^nt*@C=LAl&B58Z!_xTH;KQd+97_~A+(%wqVJABDqrlNrW1cJRt*odG zZx&J@o@luH(U+9)g9n$i*;uuxhE%mUhWdy)Qd`>ZB5X=uMcb?!vq{Sf)uHyZ3~pw_B9ORn?J zs1Zz;*)+~7UQsG6fLfHPNsB^DX$fy#CC1o7^m;2$A6U?8vs<1R@&$XIpvB2H`rzSW zeZr$@ShhtprXV4oH)0``AK-Bi{Hxx$0vbjFYZsj45(*1X@}oUwct~VY2|?{>o%m6~ zJHnPkGN?N7J-leGM)!GdA1H~BggsTg=F<8}VAIfR(`}V5u=b+uS|kb#=71TI+?7(p zC9eA|*?sT$VR*!tFLR9lPEH_2qOxSOs!_ZC!))RTCUu`@il_-qlp!+($K{<#Hyob?i z&6@sLJfAysguB@5z(lAi@j;-lYz)VCyTJH)xCEt91C9l@~UN^aT_zK{8t5 z7%&(dRK`Ns!e+F~O)6p$>S=C}RtS&fR;kpen{+;}+a){{{D*_+tah$Mlb{NJ%?`27 z?XB8IX-=9IT*uLMu5xwZ6WHWcW$vpoAtvqEmPa8YLP%G5W%jns)YN6?`)4N2gQwj4TJCi{hg;5(HA0HczBG0aU-2-4d8mJTQA zN`gYfK9yLxC%T&(!gh&Ft-&>jj6{Ftv&2U6HnaFl%Fgl3$~asn(1rWZH`soo~-8Yfms}hywcOs{4<3%--2or#%X~yQtu8xE_cHtM+X3^1oUP>+FLI30bph z(Pu4Z`yfJ1lX6m|W4bh9j;HAz(8Llb)?0m!+i+6;O}piRdGbR?tfg^z1$tt%NsB8< zQBiUBms-Xm!)8~F2uW_JMA!w)BegD%m~Gy(xWCBZuG5ftAtoRWwFurT>jv)AXg7(< zcDy&7G~82p$w-0}T}I2&88Us|oGX}k^Sr);&USTN-@J3PPX=cCEijXckwS^!mD+0q z4Fqp5UT!~?D+|*Oe$LtseaZn~0>83j_I=@aIm`(}Z5C6}v*~bUHU$YJ!^jQZ> z3_$YI`4J<{djy>tCY^^;)d2;%=ni|7^dfZH4g#g*HKJ3PaYBN`O@axPx9}<%j+4af zxyAefFr%c(lOuVDT`D@J@tZ8~+59%rD*sZBk)a9|F)qTmTy}DXD{r z&X3Nb;m(ssPa>Gs9Uf?k6Ugvy=pdb*)>s&{x^H=NkZ-0jQr2jjwf1%2>><~5z3<6i zElbj<#WP@wzqp@-18AVNNsg;ABXB9VcVIO4%wf7Wjqa8E_ezYQcrTJ*&wap0}8+$=<*z_zux3Fn(;I7#I#$&Bto33`di8RhsQ6@{bi!4xB)GCZJtGYI&BcaRYxd3vm<@s=KG0ML%7|u#`4&2@S41}nqE<`nhhHBcw+#9oadB-=sxwh#$+N3>rK})2|V>_z}jk|et z8SIPrB-U~sOKd(n+r)i4OIQm6i7%c{mb{Uo7|*EMCxHPFR6)Tr2vTM8rV zc>K@}1Xdt1v^51w#|XAc2{l$d*WV}US}UTCp9VLf3~ea3+A5}DX)}z5Ux$wZ(29{N zv>r+{^~!XI7f!mrrwcI`mX^J+d3J|Qv-|B6J8U?8R2YB2-hJU~C0`uA@WI_ZKMv@2 zc(>E<^ggZ{0)FygZ*TWwU)uXH#9wVgF>E39H4YKh8IxfXv5O&yV^;=7%DvmTuFaj{ z_UjvwGK%DA-;aiFNm1VThnw$|E)j70oahHt;eNF11;pUA2g2LJNw_({(Or%XIAX{; zU8#r8Tt-~qT|Rd*ZGRKBIa@B1nnh%*t~Ap2r^elhS>&31**|_!B%jlKXfK8PkwePPOjEM_4!XOs^j@uEj~MTTf9vD*v+AuFOOcHy2DdDn>18bcB1;o%bb?v z^E!0UmCp7R@_mgn90gD~vwoi6iA2 zWw8vshd}k?s~!ZXA8o~3bjgC$%}8B#Fp8S6IHMD^azm9SD&%37+{im1B~0Hcq^_IG z@%WjMHQ@;j(2N7-ma!66@ozGx)Imx{)W<`|6g^y$sg-OPzN&Vy4-$OWgeUh+rb&gF zU@~-9tVhqdg#xmhZnq@*ve2?{!d;Q`S8+Bsy*Z(C1wC)Q(v83|$lWla@FY`hRqYh< zjiXQa@$RUC3cLcN$8*WE({WtVzi*=TkjA?ld_c{xCJX+X45cAY?p>Z4-?WI#GtQswm{e^jAXZ*sg21N!0j zBVAx@m#7m&kLOi3$`=xssBhGB3^w#U`BK$Y?Km?20jLhW%9&?rY_8&x)IXJjT9RZ0 z#ztI^m8r+|d?)7_4;Y2%3jni5LxHsDq@j;i$Qhl)Bih#!9FI#%oWh|TRhLO{v2BIP z+|0`@-^`=SqYNWw>ck_~S*2{Yjb2#{UG3TY#jLM(yLJHeo+#f;5T*dw4#pN0jbA1> zON?uW=SY0!PZOe+G1{RSqKM~3#RZgzA(EBZhG~&7njzA*=Ab$GL%U_8WjO^Z{?krG z!t&v&$zip?7C>?MYKeBm0Ggt2{lg<=+@V5u)j91&OJa7(l1FxR4N}GHQZM7uIb?Mb zo{cc-N!?`Ru0_X}a&X1EMa@-NdF!zOkaBGO1_z zG|?%p1dI_(brMgmlv|vX&HW_DJ|=d`!%|<10Cg>y)-&fBth_C*2wGKXaEem$8@k6N zE#;V_0>|z4yz^*xZw+mqukmuaXfqO3#Tekw(epUDR6(!UnTl0JCwYnbw8d^Ry5uGj zWx5HINUPDe=D;RHw!CY|7|{s8TtMn{MWD1AitP|J%?N%)hw&4>bYZk_G*0?xGX^Xo zq8~p?h#1Do^1#QBMLsBMdXlE@OwB0j)T|*;txgft$2yj|nzzP4;4VZlXom;T8grEY z6FYylSGM*<@N#YQaQkvvUU||_<3eXdI5TcQNVHSkny+c<{;W&>&ysn5Lq-lVZPZ~J zRASgz0;7*h=FbV4_a zl|GGI&azbd#Wk>lIw}C^%BOD*Pe!i~FMg71^s4)K$pTuSl}S$XCHFF~Ll&qZQeLev z>8c@U9{pa`&cyE7)MFEEbTbENR!^YWBAKBcL^&c*`HAuL<#U|QabN`Am^LmF^>hpY z=^ZY1qgPZR7_)=sQ%9{`VP}CQglC2OXNS*E&t7mqm zuLr$fTPt-IZ!>>|1?omD4i+dim1+ev;c*ih2D5VeFx-TO!K&^LgFTM_y02$4XYwpD zAi*_BOR>6CdI!q*mqQs82caf{FnDA39B9t)#P)bJz;j?YV-!1svJQ}&HM?buzf*tR zjxTTcZ^#kYXa|OIN^I5ep}Ko)W3L#3wtzWn6>HX7n;eSsX8D z(9U~bHc#B%45o&Cz&GX^v_)_%fqhq}Y#6ghb9Y}pxrFHgxnm|S2E^U1DjyWE!1dwu zQd`9u^UmiF)On7qo;nhHhnOv23*w}4L1;Sef6fvc~JUTZG_4E6axumZx@S9s=J;=+6yd|k>EGzr6d1toBhHtZ&Rg0CkoK=sb#|Lbcf z|6l(DlP^okKHLatoU6|_>Z1)?vtqWtAC1oGn>T_ALt`vOYPI_wj_)0M^UJf!eB zP}+mqIps$A*N*$$hdsa^e53940@ZKqu=N}t3|_%MFHO6%k|vI*mdFza>KKZpi4d0l zu0SIU2ruXQgh*@d)^2XD^?)eS+_Sox)fa=*Fp?*p=vtJa$;M%Y5(RTj2H_0Y(P_X` zDpI%6LzKPO61UpyYPQH0uJ5x|Pwt`_;e~+UJV(?2k-pe?x~#wc;j)yfg=2u)^k=XP zPx<;^%`*n;Fbx<q)#I;erc`H9w~JNwvf7Le=5wvLD8o5g(+z_x z-pORL)%pY;Rn~-zlJOq>A;UqR0K0-rU3~UCl*T{0H0neCK3&&zHQ%_hf%O7Y)wvHtJE zMDvm^lGtt#{pjc9mQQ~1{0AA_lpw_lI;Kx3N=j{J0;6zHc~<94&;T((Hi!wFc%jff zOCUHbuX%Zl6W1C2I>!Jti|s1ko}zV9y9*m5QL|S2oPJafqLbava=r5RH)iLm|7;l} z!Qvi=w4w1rlZp*i@ow?b^5?P)Fd8HNymAAv-6c3Yv2wI=yldzb)Wn_2T}f=75^<(f zmnvG1YQmnHmUzb_N<-7_g~^@|>G$yYCce2zq8m&{fHvwehKs8)_m>6LhHXtgo2LH{ zg(zZA5b^|a>~o>dW>g||W4CUu@_C?h<_!^P$C@OHEcESD1TRv~f(g@eM6+S9kI=+W zWk!%gp&3Ne3(t>q=Yw)<(4w!VZRx8C>Z8?TDe1emL&uC?rmXI4lgbM_z=XsrT%Y3! z3(D(9=CDY`+QqrcXXJS~xWweK7!L^<2!Y~QlZy(3v_bSszC^xebB$?wd28i$5d^nN z!L)5r?7ik>(wj zAMWf{K%IB!@NLNHf|msQkOZVwx=QU;ju&yA9Iflf{2|9*1OBsRI@h7$sH}{;Y!*#D zhMMsNMe?c6VM2)?=we94y8?`&S-=bkc`z>X`Lg1ul3Z1m5Ct)r^IXtNtGhCPVfL?H za;94SYFd2m8}F2>F&VU{1+>$Zmo>AjOUt)`%up9I96fH9~LE2E;s zMk{Zx@m5(Gl~*xG=?Cp0pMN$r^Hp{i!v{Twouoq;bb9*0)pdss*~;UpAdgSg0Y`$s zPxx@gsv4*n@E|s85U*3pG)azGZhD{@;lIsu<+8e_m~RXU+8tSL^f<8aYH&U}IzKyn z)y3j&*ny0XUb+Shc-A*zPLt2U$cUbQIXPa}^)iZtk9HG$;b%sy+gDqbc+p~UwJ83w zZ@&6Ke?A5SAyITdPJT%Z^PM7bt_@TWro>jX|Jy4dhfU^%Tk~Vgh>zbI1jBl(biZWZ zUv^)rO7R;#gd9HihR19 zG##qg_67Yopuu_*F1-p+QNe+@*j1uyGO8Y4rk?I^MO%SH5LB&mul(!1lHz9D>#oKK z*IIKVSdS=XZgpH5EqK(1sR76H=$Vx{Qb&M*%`OagxCfnk)Be3_r$O3sKSr0;D(HKp z-D^WVEZo?bkqZKYRM0=Dyvd5cY$4J^_s!zI83e-utlkFM|FY+Xl4$aM(oUz>1gwoxEpQktrhQ(wf9&+Vtz}(G!jLlU;6+YezYVTu z1SSXGlj*v?~uSX`>Z4BN+*2l zCm;foEx`n&(63XAeXTX_j^-po3_oNX$UepPViTxf*ldy$=YX5IKxb|Hq)j~>;FoS^ zS*pvGI8*hAr&(Eny3-Kd`~{}^o{*aGj^Xv)1Hc;3rf3QhWPLpA?)K>r8tG_H^?fSN zslIsyKkkXAWIIGoJ&xUfs*L83xeI**aUh7q9LvCKtj5 zjWUfQZhx`5c0Q!n#wAd9noEXn)voGj%and4nX-EkXVZxbGdH7|(%0iS)~-#V=o}xE zKxhz*n-Vy`SLYT24|Y7q+gcw-+g1uk#tBe_137T!E*nt50}by*QpTQgfVvJg(ZDv$ z=DKQq{v%ISw=Y5JvK|Y4)0R!)x4G>`+$A`nn0(tK29sTg8}TMWOH$rA3i){w_&Lr6n%x^PP9_nv39t zZ@%?yPc43Q3~4s~*&h6vT);-yo2CfQCpE`(6L(ZFao#U9l~n?g9~rmCz)qZCHij~w2uz*9ZWW_&mrBWRnP=c4-`Z*`Pdoj$Qz1Y(wR?Hw{FS(xf&7pib2@8 zcO3SNe8A#4Unm#9*qAfPC_f4l)>n8)m>r>T@aC$}t}r2qpbmCpA82r z{Gja5<6`2-minlSFO!D&Vn*qeaYS0VT0>!F(%;Fy+p!~0Z$>Y2Iqa)OXjCmtWcujG zg5E!23Z{l-sVc)#K6&vrE*w$5(c(kOf7(1b>Z)AUPJxyzR2Uq#w#LOQ5qI7AQ$i=sy#`e`vgo$mq0rvUNK7N?xL)6@_|Y0CBlY^x-@L0BhuP<}$TKuhHL;5zs|bjWKAQ-$ z2sC32^a^M+64XP~#7PEt&6aMD{1MDatPb58Y~R4M=Z{=FlUqP2s7R~YWVtSq83k&>YJEE)C_dWes|&23Q%oe5MFWudI3cd9 znXqaII>?e~hQ_*}+VP6^U}H#H$D5i4Xq=-xgAAG`YG%0$(UJXr#M5mKgpO)~3Tkhq zJGU4$->uoBirrp65{H?@{9fV@icP^M@lG6${{<|2l`YQnCKu&2(Q<=tJ+O>xYiF_B zG;drWRghCe8A+%I6_UCl0}b!}PJNT82Y*-xWJ|J7rvs;$_6*u41&Nsu)Q%3K@|yfV zmmmYoFikIrN^wE=RMZLEBrYYy8y*JG$qx$C0ceIA8b@6~vqw9y<|f;wWj)3BtDi$IJQ**4jO$-4(iPpJs(-Z_V>78M`~dqD)84n8C}tKwHnVt422Y zd?)aCm~yRot`C20*+n-X!pf>Pg4EMK^ClH(79D`%SinN<3l!Vv*x;8HvVAqd)a4z+ zn%9j#JN9mEq@hhmqV$@oqDq!gWm3F;1mUD=r z4aLa6f;>dEx(HoO$&@;4U!;IfT&*Uk_2q*`e%Zffk1x0eRb^Rv*Vvz=E^Jn{HL=T5t{joWfsjTDVB{-=t{+?CC}D- z0rr%WKzX-0?*=Ze z^_wKoCPUJBlGHMtZy*AE91S>h^wi+NM}B?=mS&Z9nR(S|Nx*i~Vy;@_WJ-O4Y>}le z8S|0O%h}@i(J*sZKXkeuuuk0RT&+glIqNguhR4)E$*tbPYnt5+{+y|4r0P`{3qx#t znW=;x5?z3~4lMa}s%2M%zM6# z2rSJDuOX7jhaqmakw^xsf*|z5DAyM3NQ2hFZWX{$WVY1~O zABN_hhVR;umP{e;Paj4zqBV{p8<6fWioW0HHw>dIHE$6*?obwX${cTGVN|spOpmI4 zJ<}Lvx~=&&Hjs74*B+kEpJa){$)jv~t)a!RgbuA22rqWw+rL zRWc(vGn3;vwu5*P{B&H{bzH1s+t4CrojRLfqp9V(HUjC=Rsj!GAc3Kr>s{M^q4BgH zQ746<=CUQAiuiR4rkbO zf)g8UUx;n+4wLmqcKsah0sQw8nEdMY*8$79E(4aA6?t`6W$kP_^=!yr8H)Vz$DjNh zr&R@v>MEJz(YSKhGCUtb;bry4E4T79^e>)cf<5xLwKp!xC589jtrWIs0pnZnXzm^7 zRfSG%=>M>=6pkZn^yS(byD}|HHmp*Z%nGw7f_$<76}f8iia5;5Wg(tG;S|C=7j=F6 zc83)o)7(go(TZd`s+0+Kmv5qA$m4+2v<_X>&C9nBdy2~N0@D{wWNyZLnGYM96OIr| z)pwZfn=5rJM!DWF6%RSrm!Y|}8vjvK!~8mMLm{l-*wBp1UMvkRvTxQ1@B)zt3~xT7 zcnUTf62M4UDDvg(N@7@7X<;XWCZ%tl=byAh<$8vx=?hY5qtIZ>2a<2u>9avhVV7h( zhi@bAp)p{YO&oA@3BTb4bj2drupv&C72fJWp|Y>SG*+B@wIJbntMsmG(k+>Ck!Mpn z@fBcF@GByp6N8rs{TQc*j-II?ZuH#i5gjm(M(_Ge^Q*})1CxjeWNrKSu~V)a+p=ZOr%jn)n7cB0B3dM_HLlem z%{At3NORwE+{95wX$4$(6kw`v*oPbk5zC-^py!ntTKX!Ucu2)VKwVQJYdy4-_%)z1 zt7_(wL}h_jp(G-@E@yTR-r+4{C_G-yW)!oQW17_g){>%VNfm=PD}LBlaZv$?jUES2 zf<`$oztN&@g=PUL_gw8be}OPO&@d0PLgpv`DB3BVfPxt zfw(ygLJRXCi}VSJiuFGopf#GV`H~3+1vP=C7O4Xz#rtt+vXR3(y7-O3sJ8RVZN1)$pclSaMEVYH7J;)oqG=aisd( z!h+T`$5F#d1*-`R@ zz=x7A;(?-EDa(eUxQ^0tr0kDI?45cQQPel3Zjt8A@wMo>OC4nksPjfo6h*L;Bh@S5 z#(05_q9aN_jT^gatyq&pS65X`BQsZ)%ZiQ2bQ{L>0F677V>Z08q1^@rqrHdIVIY%yK~WYW!jPDj;0gKW64Q&6m^9nSrQ`_S>eTUwI|=Vud%PU zPqOC%fB*;sj};~DdF2qm8Q$IXb{$Unu>2uk568npM=f3Mnpv- zj?Z3RygvQv&BfX4bNmt7?JcTuDdzJ<+q6|WpNnj{Dl2GyU6*;=q;vkhwqv1nK$cITEkG+QJwNn zQ+nK_?;3gt&)OmbMy4HL?j)hU$nx|88%DKQz-Q`Z&V4?=ZnM0}3ZN&nkzZ=F$#GdM zvYS^?RU;c~Ens01EtOItQH<2ii-0EPNcKD z*5i1hTfoHHs*sZb@Ovh6m<~@|!aUKGd7b{!g7DDX%T)@5ee?PoIf<_?E?)7+L0V9o zucA7OpS8{H*RVA6RQ7xo)%AT@CEwm`>u+^?ohDh8#*O-MxGM@{GDoD-iphbitG=gebcFr-;@fZJBG4nLU+i&~Imk=a ztU)GtAyv^mXogkW0H5{e4szC{Ra2I^UbPu4)rJ=vf7;%55#@E-b)c^-DDxH&Tvg?b z(pgGeNrdrXa9h@mA(ErfsCzcXe=m<#$n50mPuLW`!N^zRi8wg;QrHc~Q!zH%gaAwf zzRAn$DDN;b*GY$FRui7~66rL#`Kvj%Dh=auxdJ5@jQ<*h4<~=Ze||TX>jnRoQ4`-n zQ{643UwHl|GW7G2T6y#>ys64|6&y~*lit!qbf*HL?CqsM_${hGD|b=)@U^e);YS~w z3utnB_I(wtR$6TOy56VUd&+!RdBZvhEd?HI(coH$q)Ohf)alPu(>>L1sazMWij|y+ z80$LAE|{ut2Q#4lEOW56^>5Xe2AGdjoAU32w5LnKo)R_Nrf4$EmeQPbhQ((yU0oc4 z;)OOStsd3vpaqRgOK0hC1CUptJ9-@TGt2P~iaaDup2317G&gGYZCc&b%+!jN{7mWi z&M&3@=w-^Dq=4qAUr1ubF+c{rA4g5fr1g2P0~#pKK@58kg72cd<&TCTK%KtV`8V^V zs1boVYt5u!oyRyWqj&RrkhnOil6rP%o0D&`11L8U#WAb^`~-2s>ler3)59l!fTazB zjiJJ);qSwzoxVo7IC}Jms2FBxvk1%T<`J^tQMHJ%>%Q!Hz&(v2jY%}9PA{)a1z(hn zNDAA;NM-(_Go9SMqW(z{k^&0Gq2Zh5>7rSds8gzR8D$jd%(xGP0aN+u@aU=osEGs( zRd=vlZ2_Pkjx96PHT}}2uZ{S=IIU~&S@sV<`{MJ*MgjJtbZy{b2 z*K0s?(bh=+W$D<`eTd_tLVzjL;|jDU3zQ;^)P#5@>b82Dt`R1z%IG@J>f1DNz^uwV zi`ODrmN3lu`8O!VIR$$Z57uB?%6o_$vj&CW8oU+10GO$5C z3GOMx5y%aYtymj$%nA{A9mVsP=K{s|NQ}fMFz%`Xsh$`f!#-G@6mV@lW`1mnxUhF6~$i!RL#EJF}+SibjJa~q7` z6$c04@q*#gJnKJpC$yD?PeZ52Z(^eZ>mK-$4)GC4oG!1^BmoFG1&{z>;IjkCQy117 z^HIh*QratGZd}+482Me3(fjM zvs`-3Q;~)@p}4=lfA}GzgMYEgBM8l_@sAHNbU}FlC2Xz3C`pKjtl?32D#3z)KD#ME zkqS%8bPiU@>Jyijwhu=;Ac&nzB%qZY;Q+qR#;CH!KZfHF-R%G&P57sOAEP}APyhV# z?Dfgj#E~HTA9&wP#A(SXvm*IXFkiDm(UmlIxutvvg|HhPsLj#3ob9{?j#Hr z*n$iVSb4|P$Oeu>OTfH>Zt;V-*?XjBr4};*o4D*%tz1QiYG2M6rK~LSHR$RTc#@zR zC(8ulZG?TbLXAiC0Yd>lB#ScIH(D(6i z!Sd1|+YcU9j3NtBB6(CjEIV+^7TSY{*ut6%y=@FOvx7#`;zv)m|0u4jzX9&6zwJ^0 z5oDlRO~9`|^sV-ub34+D`hjmHj*>F1i?MW$)QSaL{h;nQejtJ_Y(t~R_G1~X0`!2V zdJ>b#q~{r#$OF;;9@syqw&1KVfCy`&|1g9NEFoY|Re~RjK|m)rsI@%k*$WE7^)v^) zdY_V=X^Uipw$l#YtxcG73V^V0y#i+gtsy2zz#T~aq5GEDUG)u0!pk@wN6urHh674q-Wg6((H4 zDXP`R=?%d}VCYoPRw@9Sq9`H~s4`6551vK`3$wh2zw#48`3dJ40efkL-uy!G6C!1| zV(+$wuNoHUjuN+|-ey%x_`U}PA0XfFzWG^am4CC=LlvDB9PyH|B92TZ)wLZtKv3m*beh>qZL^y&!3@=p6LKDq+LGJw(HAXbIY)K?@5*}G_s`t+ z;uC`3AEyK4O%fF{1*s&z7VEMFlA%kGc=8)DVMi=U)DaN`r2&x^@4z8sFW`z%DS_R@S zn2HW)H97pm)v3B*yawa-DUZK~QIZ6*W#85yNTN%CuJ^(QrCVMdLX%HG=-|DLU05Z1MibV|Vhd zaS)Wh>=_Y5_iJD`GRW-l?6K@@7q1@M=^qW%&LAZ{2&Ug3!Y936@5~SbVgV|x^I;R` zB`gD1rCXI5uv|&Y363c+KqzA}fC+6Wkfz3fFuH;HIFvKV=B3#`=mZriSRtU$!02o+ zqC+;@A{%b#>!X7qha_8W7^qzrDc@`s=l1^LhirD^{JcN{JGgtz_(d{?Q(G!)a&x=t zRvSj>q;JQs*00uMQn+13s8=4irQ_MM4xNed&(Ygx?Cd(RR0` z6fmQOt4PPk>OsF)c3pGL(1-A0s6tf3>V}EIW1_9!nf|Co!VHQ^1Z*5BF7urC+jI`* zSi#bAp`c?H#h{R+fKj#y&!@V-ox7;HW|K{y`X(Ro7KnPp-_%T=HCzduZqIA*&i)r) z9HF04mmniRwI&58C!jb(DxeMeSI!#oa8j2T`<$|RlB?V0?xLk29Lp_cU-xS$99AP_FM=}XP#Fv@o zT8!{VtRVY8|LcEKXacb(h9(l8m1*vh80f7R`84R^IYUAq}5_7W92 z?-q_bnN}hgAaYJN+pa}c4ZzB;A(rr~2-V0=0(+t8BE`*+RFShmm1#G*?a5rMWmmgk z6pJzXNO!E4B!BKfJrWNF-ADXGJUbGB>q6TB^NC4FUa%iR$Q?L(UcEA8bl+>ao`CU!8qBe{=ETb53KmE7M$6%AJEJSvs#$XCHmU z7+fCBu70c^2A2mv-iKG8Oh$$*%we(5F-VGXnqN>>*$v`u`w*wg4EzEhq0<~40yY0C zj6*y7c}6>Z7+*%$W!vxua#lfXdHAHO)-d8q7#D4dMB(!2@X3{q+f_BgXpV`GgOQbQ zqK-2$BK0&vM#C?r%fL^dmsjv)KNliQE*O!*KRCoev${O^{PRD2(S1`7Njd&#f_BE& za1Lxh2M#2_Z~#SPaMzwIf^}?lWH12Jm*kn7_Sc^=XXbX9=)Hb4R;@e^#jQABq%=Qe zYUU{tuZdd?@9mxW!e>rnzAx7@~1LHK%Ynh1$36tyKLDmDgAYy#nN3cHaPSIaV8pE z5Y^h3p2#hdJgXb79$E{84*m<4;n1NYQg;}q+)|-Pl)yA>?3kvtJ?29BAY2QD8B2gK z&$C^_GdyTk==K^O>jE5EZbf4eRUuaC>frH{PoE;i7to&)wdoiTIN;guQmp-c|5Ty7j8t);8eO;N-2tsrd@)SogO zq>@?Yz=U8pIiH8Nsr0(dL%^)$IS^w`lz;~>bnP_(?OZymhnnEba^>U`!gO9%^SUWl zfuo0dGsHi+TGR}kKwi%59H5;xxGsA!qXFZ3Jho%^MOGwpmY=}UU4!`Si|10?)B>y~ zI`b!)Ea6OPX|gDG^a1UZM~qtk*ulQ89p%#4OzAlkh*b-#<=Of1=_&c%SiLDLI%s4M zFswLM3{VL4D?bp+xs26k^iBCgz0-3Bk>Bv)JD$Ergz#@!BgBzfet`5ctEphxM~;56 zK(^>4QSLbQ_lxYo#_xZnRO|bHs(u}ZTrn5Gqp60}PoJ_jFmwTSaCTMH{>7|wenJ!& z(D8vmKyUU~_8pW&YrznSyT#P=mn1MO*Vrze235j z1A7XLTxM}?<#RA|2gV9HJY z8fNsOYMrt|ISl=O`Si%%_;c;4jlWbl)YX4rg1b+#Skz~`O&ds1+^C0_<0gUuZ0c$4 z(ZwZAc9?XCHaFXXw+nj!d4~1z*iR)k#z=ltjE4K-1(x%a#apbB1C;(*{PEyR@z2q6 z^*=<~#Gw<&y0JkdK$#rIZH-Y;YQ)IQO{`2shaXB`UzK z@IlEfz^sSu%in0_p}PXO9UvkY#*HL#G+AjdD? z|9aK6+ZR!OAFW|{5SuirsnQOSa)~1o1e!jmCVg8je@WNu;*%bAfWS(?1ECv$pv{#e z;i4`%jlL2ev=#b36M}LHV_aF!_i-^uMLm|*PBtEM<*@W5k?8#(g}oFtO+N~BrGN(~ zSy=Oj;S8ZQ^1Q5Y0`ztNlk4419LVIWY=S&~{}@DzWM)3s zhWgjw{o$_@9jEuCmFMp}A7#+b#FGYCf<-G63q$n#fl_r4=XhWkv%FM9`p{EjH9l7M zPis(Fu`iV#t~_ZZlWqe<0S&!*0T?&Hexb(1MZ)1$T&~tWdX8VF_Z?zvw!5WTK(;FiSYBEqvEC<^GPc#fnK%strHg5q%fvW3{uCB(fmbJdY59lt0n^Y zndHp={jcU^O)7W3Cz=C@&nR&t|1L6S5@_MIj$$SGd5b>H5}6Q;fr zNGS%alxN(|g$Pd177OaNi_onk*y&@n^dEu>I=3&n`if_|7Hkiw*2RshM zTLE9r#MAKiA9ND5pK*h62FDu8t__0M~b9pW@_4%0SxK@1ft2<{i z4p-}OZzIkIHoV#4w40GK#GmGyA$rb)(191s)W{aD{>qjm&-@sK4z=5e)NaWKK=BIr;kKXeKFbF z7hkDjWbjptfrE)md{AsrwG>1PUF7=vDg5&X{O8jt)x4rMS*=%VyvX&j-X3r=9`{(AwM%IUE)vsed9%AN`HJ{?mEN>@RCUP_ zJe#}Mn;c!@lYLD_A}5Zwsb)=8sR2iC=(u^6;+d?=SFcaLn~IkwKU_@3Urzq#Rk%4r)}4h(wq(kr zq)G{6(uYEvXE#NJ*PJ7Q4tE_*+vhYNZ3EWfZKJwcu)FyP6k@rApAzTlK9z)r@#x^7 zwU($TsJhOY3NhTAVv{$8kgL8q6p;V6=BdwoJ^YK{gfZiTLAe_N6G3%j{~lw%LydsyXG$ zAu)v}oU^FqPqg;9YU~D&Hb<&nHc>~dS!p}A8 zl6ps=@1##Hb66gUW&RJz6#nH=tt189VDID0!>g`E2M$=RV%y7{^7D(Xr-_Uf2RK!9GzfR4w#G-_-!|PTscX+ZPyFBX8Z3j*G zk>*Zk4$Q|pTI=4%5~((W*2DR=DXHcembLYrH6XN3bRk!QJJ7b1X_t9Rq;>+!78ttN zV`g5#FYJZs%P@g2-<-ZUQ!dtmZ3y~&fDC5XUszA+^6>4>7gwfvt(cQavJEGt1D!m? z7H&(F`y-J~-(U=tu9JFiW1G%u`X$ZLp5}9Z;=)AkaA4qqZ(OJvfJ^M zw_PfQ>8Nf}z(YgxLu=%oLfD7}x7N5!wj)z*qPTueDDf5n*ZE=QjCi_*1#;`S#{$EC zY#3XTeQ4}quF$lHJ#n_YOePOWw(*D?45DSRjGKNeifAe%nhpWI;hWF&$c87_=!NMO zyrBnxm(1va9(bg7b;Svpr5BE&I94o-tJTQ4NIWw zcDdqh0X`BvqQW}+s1?`R%|y`KH0f9|oB4R5dJ_^Nj6wtb_jCH3)xdoN|{UHQD@6#JFVeNd?D^cwR90|VRqD(i)H z&iny0La9{{rZ>T43rqo_3|&_sUFhPdOsxra8C7>A6MUa;uz9yx)sLxuLm@+OcR5Y2 zNN2yDsu-a=aEx4Z4pY;`ruC{U=x_+{OS?K(mW1le^GwkFjRolDc@fWRP$r^iI1=+0IQJc+h2l%*L zuA(ZdG5b;i5!i1%drq$hp=yB|FCT8)<99NDZTHsO#QFe%0)o4|63lj|pzjng4q2(f_0T(I$EaQd&(+ZF zJ(*D)^jR+>hDVl$ax^1MSE=V}C8x~+Rp_!SDl1NSD;3*fG7eTZ7iNrnb5fN!-qacV zKAg8v_?Rg)tWVg22{-rR($xYDVKbPlQOFocwGW^U_41;mOOg~uc2Qbh-rQitDPK#e zFBpsJl;48hQnrY6UzW%UsSh|ieER(4<;CfX)05Zk3yUwKgTKwM@ZZM=U(Bx_{!YHa z%X}@DF{t&H@g)H3Aj|i98AYb*P7mLqB;&nO#*H6m5{x!YBl5RDZht=sK zDJ-nxqk%e^$bpmugYP3y*F17RJan!=)O@8a9Z;N7&Xx<4ns$ZvcJo2Ctddx(ODypw zE*OprQ|J|Yk$MYVEjO{%JNk?v)r-)oRE@3y8tr=1p5%3Q?e`m4Z-|fHo{}03e4Y@Oi_rtrH9=?A#&v#+f--8F+>Aw^02kGvi zxvRVp(Eu&m2IWngm8RNO4L?+CQ!Vg+YwdsRRf~W2%FU8@vxCD;Jh$5ZXYhJgHvJdp z!43e~l4f%iRz_@Z}g?`^j6Vlai3xi>dFTqhxeugP zsPE*6q0l}S6#%gXmAdinr7YDVGEI)mX=10Izp)%X7~M;8j@}fME;Q1J52_Kc*W=3g zOJgM7_}}Fc4{!$)k60zP-vllBRy2^p$5;L4`zz3UjYy^hxA&O0bnuaXC2EoxCU=lx zCgp|~HclYfhBp3fxhz*6wY z-$CnI-=*iKc0g#a*m}J^##!OuCI^H-4qEgI89HjmyB|gv8s&5ZfUZ{v#kus>Xio#* z-%0N>aePMguC2APZ{hBVpfhLgi|8&%x!IAEE85tWmK?F&S>9{zw;HJIRH3rt6MIaA zZtZo5%~rbZb`!1`<__WNzv+fs-P?eG+{fIKrT} zbh$wZ{%L#V#Lv<~3}7^@$&$`MB~**#ZN-5&Y0EKx9{W{Y=VnPX-7uCmO&El)rpZ89 z_u1gwtJ_@wE&e=!mW!J5@OAXbPlk<>k^tQ_;PJdAAfC&=lrR7(+PW#1o8n&3Au2bM z8s!c09tyl=_W&=N%&|sy5z(8`d(LajxMC!X@!>ddYv1Jp(yy3|J+c-nCMr)nwqc+K zubqLyv5&3$;+S5Oj=neV-gn#f_L)e2H>=!f2`;hnO?s$z>bMaGrK%yt!aA7$9)l#r{;He40D=NOcc2v(v5p6cHZ<;L6nss*t zx_rZpDjZ-tiWLH6Mtc(CRX$sEcr&E+EW!W3P)h>@6aWAK2mn)8LQ!ubi7fap003pj z000vJ003lZb98KJVlQN2bYWs)b7d}YdF_2`a~sK#;CKFtwiJp6Xb_sW9lWD&X^Atd zSiMftcxHp60GmL8>|vuD)7>Bm`}V(IKI;8wfSR$-j$4F1BG6S?Rasg2s?6-i+0o%q zHg6VXeRZ5|`sL9d@t1?g2amI7&3fCGSJ!=gkU$s`l^u76yOuMn1e1Z3n&7 z(<{->y7@KWXOewicbhf-Di(j?R%dP7w6fz$^abogp?Z#9$sZ=!tFsTM&rd&`&c1!| z^6d5LtFuY=!@r-My_|&)4zl>?<=J5)H(#H<|I0ggE?WBY2YlF$ z4-O7yv!beia!#`I9Jiz`FE_Xy`6SE#4AkU?o0Y@G-FiEVCrW-zJ2rV!+VWlXrHgQ3jlZ|S3Ui?g8>ho zy?OQO^!4*-OQ5k8;8is}c>d!32Ws~o8jbQ7uit+-efje2T^^;5{N35JH}9V3^weNWgD|s$ zc~x{>HhYE?GHNb=7W005Ok*J{z<*D(j+g{fQMM}9YrtNH80(0`7=Rfb*DmXuY+>y{ z=YU&?CGeKAF8kSR)QM^-hqK$@=LNJVi>mAd43d>d4E0=0kqZLfE4!?2+7-~pHfw5; zEt@tIFu%;-`e_t6jyuH_07CxuU+&MihRDxXq6V%9ryrhu3*1i}=;h2SQM5yAd4>(L z{#xR20ucKiky!SKtg`R2l9!voGJCOO(o-IA9L_ubWMJyWVnGw1(2gahf4W#?g|nqN zYrPyZ+hgD>#fn-UleqHxz;N-kl}l>N$gdmV&$U_Au|xa%=X2fTBPm&PRzQY(!zsPMr| zEgUBZEpXk57JwRPV0}CA8Zxs#QIcUCdn}<0H>r!uia1YXHmqC0GoxsYa(PrybP=-g zK;Ux+p3iON=0!%fpmb3vlkB#rHug!1&!1W`H2;xOtVZEPCy`;tp6KAGI|WEbEVl%G zx`m_b^WH#GFx0q2F#D&UTX@=*qFT%xDj%BMe`0f63xLz~6b{uCz>nycB&V>!JkEX) zSuFsez$svM^BX)PcOt(PFlhms+W@U-bv`R9R84`CUy6AFd;m_I1&bQLEbGlZo}yl? zx@;t-S5toQTwIn#{q+0GP2F!`XIuEzcVk2_C>LN@*^suYs;qC|lwX&iV1P;jC%wUz z*|Mwz@)X(_QQwwrQ=`T`wXh8nKSBO!Z2@u|KKn@_w=C-gDXV(DQ~qfNooCp7M8d=A z1n83eqD+M-7tAq0if|s_INXs28RdBZ7x{9V!My2@Y1z#XQc;3pvF{)#Bmom-L5|MPM#BI2^I1=!q0Vrvvto`ZF zOA>3L!xZm?$7_m4#ZV)XFTm>W=p@ZZ?Uo(PmY=9U9ze*zf=@_L1zkiHoMKd7 zB8PaCqugTq_#tP={}7mboZth0Z{#*ofP2VgrI7rhc*p~xHSw`kNfMQM-dA^VAXM50OqBXSh5H#eMTFzPGiZ30)`B~#Dn+&&fR~-JJ;=bCWKsWCf?R9_AOWz&>bFXBA%FP>hA-$94njE5 zP4M-43rc{!*hB(A)Z^cXYJmY%)x9MFIMBM+6B>7#`tdK*=TtN7)*sO-i66(anoBv;krOR$5NQ6rgUii;Mgy zzqkO+6@bn)%vP+cVs6nHv3qDd!^W&e!inIsg`O-REqH2tbkGVXEgxHoB~G54Ncf0E zFq!!HO}Vk_&FT`kjM?O4y<+NdjEbUJH9Ba}0aY)GcH#PN2>#_(E(iVfF*2hMBBR{^ zOK4C5tB*iqUc&-6E76v78$E;x7!aUUq1L5860w$*-*4AK&c7r7eQbRa2ZKvgcw#8i z?ESjHi-P1--~+}68W4*H-QTz|aD?SH;$jnP9RxWNbX!3%$9jOGyB6qhMSv!g=~^Z4n>+y{*u_Z( zWN-MEG}_?-D}CqAVg5MIexKPYwUJwBW$$gCzHOV^azVc8jBc)AAuNQ@{nI66nOwVB zE3u^GizwHIgWLu!Bi9rc+W*uUk2M~8*jpf>m3>krZuN|z$&NX|v;)G}Z!#$dRUkRp zfAJd$Mb=atzilYN7^0`Acw#G@0ZS<|C&+EHYkXgR1&T!2J25CpwH*V;29J@obWf4p z6Q}K$nt}^z=5g)DsB9K#eLzR(a#PP`n`*15omwx;7FGr3IWQa6(a2|8H`%Ib1q&-% z645%5%ZmFoa0#(cj@)ay;ph~Miwkr~fH;Gncsz971_VD$)4loUfQNu>@Cs%nw z-jXQys+v1tyU+gar$XI?+=y*SMaHC)wg0%fc{sL|JKW10zqJ$;sWYf06J5rnt}TgQ1AlLzF)0VGYyn}6 zo(btpbf3uyNL|&4X*f=WrL~s2C7i0V=c|lML3bexzv=~FH}Vp@Uw8OHb(jn1{A*|^ zyO__Bvg>ewp6>sY;y@R+8l)Oh9nQFlsuh#MXln9qNJ?U=E-l zp$bnLG~Z_8R{{$2dVBWv=*zFZ2EMVE-Z`j9+4KPe%&*C_>#!U+2s-wJF%|l6`*s_W zzJX_7sZ8b1qx?yijh=MlJbRLjTwBStAEgfZ7u-w=Y>Aw*0x#qJ2%Aw})<6QKJhP3p zZBN<>{2zwi(~S~L&=_AnHw`sFkCoDG!ZnKUW>|2-A1nL9d(ak!tI_`}ER458f-bq+( zd9Y!*r#=z&G4}aXr)@ABA`Q71K3^lkNkYN;AbK45s>hZ=t*F54zvU+hA@q&~ zTyI^y7y2fNJQ;Dfn{>HFPuR$Hze_bGzN^eBP&wVKiJ6S@x(OW$3*Zhc5s*E(@TH6< z8pf%p*)u|1B)DkfFfFl|p<}lcox~oBiK_-L6>y*-5iYSuhCPch1u~N$@zh`_McbG2 zO;xlScp%606Apw>-*87dQMB`Gec^=>5PoNtH6Tk(NCb;)H4pL*kR)UZC5Mwztz&C@ zI3sNpCz0WAKBv=5!uz`LC?F$h&sC%FLP_hFDXAAU1focvICfvBk-ua1 zy50*4U_;L>`M7bMo4UE9V6RKT#9A=GBLtXP07vLMB`~=2JiV+~_683WlRWljhZ>yd z>}WRm7?9jFl^|cLqZ=yh;!(c1&@q)@it5WUW!Tf6J*}H4ng|$n}SLZjy zmGHEO%Pnf*tvyfNNmSBZEdyhq3@XM`y}C&Jmzw0m0wsN3qM$G%(s59hTS;9PUce-} zIZ!7%mrHZxZK@rJJh84I)t_zyX<(~|Q^%`FEy(({LinT^j?W)6`NDZRf>nsRD^U_; z6xZFBU1K@zsK3&yt?_(Af!bBgoE&YQW=_u*<(23HKLI@w_kCM*@)7_37~>pEjqRyD<9wrQ&_h%~V#-*HSUJ^D8l zu%t;&3ReI!&0b4WkXYgNLM5-SWe)`4}NW*Gknz;tAnvDepCvF*&A3o3=$a;s4%fIYhg29k(! zQa*3nF4JT_aVU12T8h%?hnEluO0|Nvt&u)<05{eI%{k#Jbm& zrCaI^*Vc(9Sd38L3pc6@VWURLhmSwxVsWj#;~P|9h2mD@ByF~vS`8l1rxTFZ?>p!13hTAzk z2q-4~r;g$DO%JgUx1TzK-PMl7W&5|YTbm=23LPo7cuL*)YY8YDEjJY?UsX3I6IDYE z^cQ%>s*BYKwM+tJ^C@!0QEOmGA^$SEs+z-u>;l#$Q=zHvtU*_>9vS^8&s28AZV{YM z#W5~TXUCAzald0dd=1JLJ8JuDg$FZF<6^NfI$x-^z^awnMmesQ3&B=mO~II=SR`Gwl5K)WuQC2DpEsL|qj#vAlCn=) zK=-CoIY?w<3`c4?*u#(1KjHT&$nz37u75R=L=bx^4m?Q8Ere<-V!+o<53F-1uPTh` zf*|=hgpmpeadk7uTlHsiQEX%*PnZZd} zx5LR~%B7Q`@Y;Y@-m3JSg6}~*_B4q?QMXk_5B2WTHp^vsj~YyN{-pbe`is}z9H{Uz zPIt}&W$}O79)?V+M^Cyx4QWUd3DFMsn}Oz_tV*(MQyg0e&9NQ*v1HA+Bh42TNrDpa zYWg*v0mfz;2L?{F59B2Pjssf)4{hVh{iu<=8#Chp(bGcqFMXv6Sc;LL8f>;EqUu_r z!dm!lae=6VS&SIP%C$v5c{IwK9OVchh3JN6%h5N@h*8E!V$H54tU6hk80u%)UAn9J zEl@+l1Bxl%!w2*kkOf|)U`zI{-WAH|QmO)ZVv$tPFhdn+(85AU22mJGWPVXbg!7}l zBIVgj<|>aOL7Qq4bj2zO#&i1_50Fd8Bjs9BY56jqhy%2J4;aqbTp{jq8%<=+AL{T! z7uOGUBc0YeyhzeyW?vHTUs_5#Rwtv7?zMH6FP-vBOs6UJOjA?~ADQmxIrwVn14N8C zA%%9vBJZKRI*~U3&{&6LV%#RimFPI}i!kuST9>*3XXl7W+1ES+*d(5SrXr01?5mLM z=co=$z+^nqrDw>~(K9&^iVcz))Sl!)kTK;`O?=v0={lj3NsAPvE}z2c-MbupIwu*E zGL!xg9e;-|>1)YJnkBo&xic$`&czM2Dypld1$l(wyh}4Xb>|XZ>KH#N(H8r74$UC&h86@Md71-O>f0( zTwLVcb@6$AaghYZO}_ZzD{LgcefdZJ2LHilUw@;XtrlO)c;#VmUw{4uM)Y!=m||x@ zm)12GA3A=NK40bzUY^q(A(HAaq~NKHVimt)rnbO{lvP=?<#s7FiYM8t=U?xD$GO1_ zjz~}uT%dGxOb&{8dr4wbjscR>!4oU)!El+EJ!X;*rlPY zV3e;-oiq7loPhbHJJFiHH*tM!z`u`(FG_#B<)zonxRA~iUHQdQ%r3wAO4L|RXT&YW z(-w(&J-P(c0~|rm@}irUWhAWnN%y293xVf4k>eQcCa&2eS-q#`aE$?rd=8O|A0{NG zk%QXd%pMSer7t5JQ1M@|!OurV3viWhy5RUMnH`4(RxVK0K)s+>H+X!^K}o<^vO~qNFAKfQ9MfkzF!aMSWIeNoHf{k+7dQ%s-MOk6AD`APrD}W74k%@J; zeil7tiOEb{^Ei_KY+WIG?ary-N9c5?U{X_tDY`H(J2X;H$!`8Q`yjBUQUOGJL<|1m zT8Jw9Z2HBQN+SENmVq!QfAmD&?yfn=DjmOm{9FwkW_u4o35WwE_!Fr?;?ftkdP?!b6k^K`vmgzg7kAp$K~QCTEI`5bn%YsGDsBf*w07W) zZnnlhOC*0uCT+(fb=>cpEpYw3A- zW*(EHDx(M%>89mC1XR0lzpUaci!#*fAEV+q)7{P4SE;rZLGRtSxa>&xaGr<#aqHXW zj=~3rSBalh*^v{^2QQc~JWd{o!c|o}DrewO16ZO!EkWcdog6TveXxi@SaA60PlPta=_)&QuGVWm% zTlF~Mxb0L9wp%n(a~~N8y2o`3mn-6|3ZxAkM!R>Y35G*p7!_zgjUIWTYY-L+rW06O zP`3~-mXq>~dYxhA2RkRziF*?iK?tVGrl>+-a$L!;I2HItYx2tVxhKzrM2|6Di`Y%6d##OfoDsT$CN`qB?OV9&VeU*nU*j3)SC}n8Eke+Yu@Tv5Xv@T4o!3U8^ z5}qNS{itObB@M*L09hDqxdr^^cTsKG-71ZyrI!!kW=^PJo!vg5`xtX8(DKD2ejEw&G`v8m86o5(*gUZX3RMy)4gOb|C`SqA}G^ES05&4O?!qwGwS zGfIuU!v-ZCxfiW-w`i_|gLSDZ6*B9Z;#D9pbaYaO^Opi%>1}0se8Y?fYAbqs= zQh7$mQf9g(o#sKA>1GA1JOs2M!1z(gJXYBWj8xg!g+4AWM#kon`kSWTWWzP6P61p}w+&M@K zO_isOi?z@?mXUqfWR%bG-T+b0_09}LH@T3B!dGvJ6*#^s#oD;|{K$q!rFrS+ur`D8 zLethnt1uWt4^Yj9UM4#_)#BFMITp5of16~vx5wF{A?tCy>DlDO!_Eg$J1LI7{KGfV z-V{E=Wj0Qf!J3CmY@qy??DK?}npzm_96pE?5_NFPPCNGhX}{e%&9B|rDiWca{N-AD z^`g}}X;K!6BKZ-@M1|NWvCI;TeTzQEcUstvWa-jvCRXcy zJ61M>fmL=g3~id7p}^HOYUz?vKILxef?djRy4+-Gqru4)NNlpp9C3>4%aP=BTy&ll zb3~{tQGxN}U>hy!T!yY|a3g{sYSupq;pF6PvG72TG6@08KN0eHqVk%lUWW$6$5z#w zE9Mj{OFzb?mqCl`KiyweeWFBBEId45T4#ysXx=$_h)*x&kc;`@RB?CGa`giDjJ)963k0PK?8}Fq4u5EQe84j6@l`7I-$0-?1o5x_J|; zq7yQa^lZV4j7+OD-u6IH4xoSY{9akV*D=kVjzVGE{3K642>?(xNyG zR-%V)V**huC2>5u#lw&d=yxZ3VG2L#T_o=2o?UB|7^S!mLCl>9?dRQc~*bIK6~mgo;I92|smiuzb1%Z6Y>DFi$R_PoR9kbA?DeD`#s9VwBKZJe~Hi0 z9D?48NI-c!!Me)sh^Bp|HFTJ8yI8$5oTfTg7(pwe#^}iT0bjTP zdY_i`qk#@HvX1j48~J9u3tl&sqtu;cgYV#UcYAWWC7a5l{HIzLGp0F&nv4ZLEd1); z1DHc^El*h%vf_bxvtTTSGhM5XU~t`7BaD#hkJH|9`;$LuIV_3;j0^R0fvLZDyJJ%$ zM&Vuos^Q|kr>HsPY=BU@b|e@kR5faU(ze)aB0Y>40C62Wv1m z+VV*lHbZ4KOvb8mc1Lf>sBR`-jun_}@if1H?&n~!_ky9%TNZ%QzW6O~c(*O!5fyyQxu1Z`uIc1!{!^m_?2@Iz?JZ2A; z$s7&VEOX@XrB%`&H(@s**6Hz&IuoUg7s~#0l6~gq+f&&se~|y>H1c1bFmWQ2Sc#HD zoF9F09PoC(Kbi09H2M8M|G0PY(CA*}E=$5IJERced6%MUOvP4?&x~`d+*bB|HWi7l zw1mQAX%WEKlwo`+!VBtu5k~AYx|Es{yWn)V-fw%q$)=`reQD?3>B^O8h`~&I=>nCZ zB#NQxe9kyKFz(h?RoTZ^t#+GB`?Zt1ZcSZl(_Z!dUQXk#^db-UxnN~xf&4)-@}`w3 zEof?1iiJ>C*+0^|Y2QJZHHV=2g4oq~21^l0QXN^Z%%LW!cjiQIgRHDmm9uWqIKM0X zy6@M=PoILt0?Vd1t52Ku>M7{RqD61|Q`Cbo^{0BwWgVv~mz{v9FNinqu}ZOuRH@%5 z!D@GImB~GJTOJm_?{0~j?$9ovP0=b(dv&>pMf@$-oeT#;$RSB=>WhK7NP{cfj6vh z;DoHgNKkwe)T)h_OxTKKXpzSe4sKXmZj#lL?AALBohp1-dp~ov!`iBH_<$mZ48l}7 zy!Bq?Y6*JxfuDJ89q$LHaOu}x?2*Q$+on>vc!n{wI)x3S5cjJ(T2+ez&x|!6!*soa)g5ni6#gFEH_IsjLtyEMbWW2Eggt#<5Mdu4EAH1* z;XTT+H?Olk0#>=$%*7%G&6||xeEG%mv*1U$U&2fzyVV|!PI|0doRsq$b#BV%S`6ps zvFh>!&?~O>eXTBk3CM8^BsB@Y%7Z=?l%)^>(+jxcu9-c@NQ{8U7y}Oqe?+UUfZdVG-Y8A zvb;}B6UkRO$hdgWLmb<47MT?GM4F<`HJ`KGqBYvHNTsR#VtWBi)z4NkN`&Cu>}tpP zFWn$_kx?$c#I84fGY+HROD;olkzcp=X&hz`789+@7I-n$#N=g-*(3Wj|82X=ngs{(E4npfOsS^n0T!| zX)@8uoew7>XLhg=Zy<*^P>fH6JMgW~+M3H$g- zvZo!KDN>m*;pC)=kq1@O(wU(*2b~r8WwNL4bJZv>r)Q>7U@T)eZtS5&6cog!_GV3w z>1CiCOVX^52xXb7EP&n+8;=tbNqie)PeYxt=%p1uS58e;a)FFIFVasoix8#>0+Vfa z$AOu1zq6u()E;FI7n}iOsUsmFm}c^?xDn*lZIEq!|DW~?SbmuuRU9HV?muY_hyRX> z{{Js3Iv$Z91dM2+IHJwjS!%^jd5I^wOtKmL??I8#awz3MABAg4R1b@2 zPQ;4-R{467ZTWjA?-}cKN9vwq2+vlFuVV;C_1TXg-fdb+&zU7aT%cu*F;|g%QA$x2 zqp0<6Rq7kb0mjp7aj#3`xeGG!<l)&If@Yr-A<@^ zNJORWK1@jcecXrmv5jFYG)o$43Pa>BOI0j+G=2Jr-%QId&mxzbe09;K=H6rNF@(va2 zCBMb3Z8ldNFS7(Ac^^DTD`#LTGU`<`+KJ>IAPVKF8wdV3r-wtvT*{Cx$#xc+NJSV- zbQsHEfa|a0&^r9U=(1KA!o$K3EHC;32ytOR%O$7dDkabB8gn-h+{8nN|4!GVo z622Ie4LWZymwi{0Iav|ZGeswTR#Mu3(427x19WnYDhs2!3qj(OQYT-7Etk1l1 zRlhs)yS7+g$KSg8PKC_6Z`;hSu#478oHsE@eoUp^O$QGCgU8q9nsdQS*}(!W?PBqB zF~_De6l=is$V^`qYi3vO%N}$wE97Zl8_4afic3+UT_DRWvVR;J&~sS>z3gP5pmuL4 zvs5gu$j&7&Ds<@Lg1!P!df965>Lpe2yCs)aw*iTQ#l=+X=5L-=vVt8^%FLy0!=`i7@yrW&FT5whMdh68vbM66gtErF=c?P!L z)?Zx6j<`fqbW+YoC&_497@`B`hM0QX;r0VBC2;mz8ga(_URsZI742J$#foF{D@(gH z>*bhn`8cx~k;kSKqa8YhzEFv<}K;y^u4#XNd`+?_2 z?!)~g+e%gwd5H$@MUgyjhxfEC?r+;euauXDcSxfg2Ag;PDLa-mk+%_i@;32Aw*M>> zAw(SmJAo$Z5!QiXgbm%zU?*#5BbPLEOF|bh^acmM zC80mVTM`0U<874z3FM6zaVMX<1oE~mDZY>2I1g4fi4Gf4&8EllOTZsF_S4LlX6j~4 z+De%|0ugTRor6Vb-g0aWz)HQ-5^XXDZf*lZ^FhKxq^Va5jwBN3j5{58fjXcHf6B8% zMpyQGD%wFS^@^x(E;VN4F;+-dNRR+N4?5Bt$5nroi~UobN9QH(dwK~obUXk2_+$9O z5}iBA9V|NNo7tjKbOrxI^Aa%&rf5xfH796^y96Oi#ueG~Hy_mAYX(6UfYdRxZbi}5MxdL&E!^?BW3U$FE$DqoFc-V2rCH!drMx~`l#EVCbN<^; z^&>a`g~=9%9_UmV4@hBgIyO!AT(NER6pd;YkVMNY5ju*WV z!;$sDjUQSYJNYBL5tAkAAIL-DRYX%9qnHb2!q7dC^8 zgRp=A+q4h3HTI9=>`#7vq8?lEWS6M^7O)H5fzf=DJ$i0+c$98`c{OjUhO>(7E<}>XQ6$LB%KT2u>%W{w-p>|~Tf^+H$~jgvf+Ib2KlxU)=*h*KM$;?9 zUg{EE8cwQ%RehV>3ln+yk2OyOziJM98Y9*QjPDqukmHcHbo8vv^CsFU(FwrvB0j>N zz*KdcnzKLUOyIA1v0)!IzZ)_HH!oX$$)9V|(_3FNiN5)EUhOK?ZrfeitKtS@7`kgx zpR;+h-YS%9Zst}hFGBm7N-|8c+Xpd1f^&XDr9{rH3|+t|h%J;te%c`V_3qe}fCz*Y zt(se*i{Z2zHxH@D+5^-g2s*YWjMEqu_B_Whog}ZkO~fUs!4zA*iMx0gzyZ|CeYrr< zN(xRa@bm|M<9a2Qbm(~}MkP6Ydd%M$Gp&16pgv*N0=@{IFr>@-xSNioKuoktqOVBr zFn+9EJ|BT`){dEPP4HDcHG+Wiq3klfcrOdZu?Sv)cEi_KOwoL?nHD_fP9*+9Dd^^< zxilYl_~;d()c16&#FgO0rYJ17H5%{n;vP7u?;`K;mW(g1_PZMXC+Z`vlIxB8_7QmW0Zxv5ujkUpxN+ zj*@7J)`uF!ranKXtW{L2I5{&Z z<*(*>>Dfr(PVJ;Xr>q*~+996YDamd*LrHa+Zvefw0!*tbQBx>WN+`30CueqdsNG0X zL9*OP)Z)+)`Fn|b)AHE6TgF87)uo`=8#O+^9T#o5J0Yv0@(WX>v{DjR)(ldbs?U5A z2_vBngPcRAMUf(PlR4a&Bg4;Xl zu27E(B9*D=u8BtiXTdmg9+QnYgl1Kjz|;u%Wx8(cz#f>6c4fIjrQ6IY^ENh{kAYW> zTC435k!T$nTj{yb*r11I^w}6!CoM+WYrZlR>j?!B^!#!hR0v=uTrL%_qcMK2k%1BV z-7ahE1WBQ|_y-&yH56W}|M&U%jm{71HfU`zc}N8BI6ASLmEZ92*ct*V4)OD|mT?{N zDTOD9+RF_BsKX}+8*2oqG-%rpq>Ca?OFlfj0nO^F^8%YrF$NEIx}@Y5tg6~9I7X+q zp*N&4?Jza`jQMv3DY zokXZ-EuZPKH}H@8$*NalX_oN7%tZZ#i9e~~ZG75><7frQ{=ZO50|XQR000O8Q&&P! zpQkR&GZg>;N>Ts-5C8xGWNCABY-wUIX>Md?crI{x?L2Fb+_tsf_gC=RHKa*quj0@9LHF%`+#fAXe7=Ivl>a4qINyK=zs5dkP`Kpo!G`j8bmO>8i_nSJnwTz z>Y+IO;#4F>s`Aa5sLlHH_xR-G;mJesqA2%TZMH^)FJ|J|lc!&azoiX*PPj9b(xO#&Rq1}nvm4!B98&}&*t=!M7*lb`5 z?q^ZCyJ}k-l{LTWRjG?aR?T}Ocja1T^2F%<*@=K_t&1JZM#~t9B5b>BdT=5?B(gN( zk{(`YU1+aUTJLuI#Z=c5Y7@Dq->AyK1TF|5P{_Vcid`8S*C_n%`ug>s;z}jYYqR|h zXp%`i7gzFsYgw7Oz}K(is=6z5`u#@F375fD>#U4*CFf#Qt1Mj)!&BeFR-@d$FT)z6|;&0G6*cww-XOAD3`%*=P-q20Zw7a@^{_=Zl$B$2v z4CX0b$H`5+k(VG%AHrhwqfE?_Oe>QKl7agN)d+_G~xm}yh`J% zzb}3hFoaaD#R6U`vsi?c%+_;c)cLC-mv&12wD7uwwkpn4B|$r2B9)2rL`Ek~gEL@r zyhAW&KnE$_UcD5>nx;iaMB;KS@&fdrl!;m^nev>m-5L}UsUTD}Dn&Kuc{GX^;vT`6 zKnnaH;Bq17BH*cOOkC=_pqp< zRNm%wmcdl-f|-abQK|fCWj&L%gDB+jz%9S98Q zB~Y^hh6V4@+NDKp&T-Ncc5?cHzEW%II~(l_B8SMFiznll5|EaI<0^*N3KZmK@YcGW zAKrK_r+*=pJ<9?{c!8!ctBluj!HkwS8Eg zwP7^7{lawC(s0C99U$Qqw6-1uh!ZC$kzE>*&ebJi3o#RFn48L60K1U94KxA*VO7eJ z6%fCUGXYw36S0dci?YsQBP+37f^F95XqU@5{Br6BzZ!7MB}^vUEteEmK@Xkby_*dx+S2qSB&?_%+Q)IZ@`vWU*yK617Iu^#JtR_iNOcBw7$V7);o+u8siM za7_V77`SJ_geCUdx@Y~iL^Qu4JwRJUQAr;Q@_}AkH!bMUx`jr(s`yqOFJ5n;^*EGu2BoohN89`6t$g%kSO)yjOUwJ<#SI0piyn} zfDwV6jvB1N)-r`C4MLmBW9;XavPA`~kWPR)Vl(ebhR35Jf(Kai0vn^B9MZi@Z(`3% z${cw#r}rFa#I3E9F4#cd0>R2S72#c10e}-20Z^dRk#_syxbUU{hp06mNVHZYSf1#Y zs35&W#3THo4d)ikzr*ocxr^cyRNcZ0TUBgf9p+z0$VNi1v9u~IcOBcm0jj`Lj?6&? zV#s9UN!!n@AbQ;<-4ZROW2?y?wT9;(kOE zvIhVQ@|MXMcoPex#&mFl+_Vvq$m`t-5Jvaz9Djp0sM_iP7)KjFA!wXF<{e00XjPRE z7f85Cq`HL}laC?uRl^$$+;*xWWH?C~jHo%!{YV4S5ST)BaFyOWwEoR|Q=}>}{@ZuK z8HPI;IARJ)G5J35A_v0DSss}uMJgBeX_!XJ$Q@uZ7w_Kt;fAG$?FETx+Vru1r%@nc znNLQ6BAx@oxA7x-+eZAYk{NgiItXF(s-7}}TUJvImx@ z6!9#=s{4`)MgVA4Z^GbF_Ny3rH8WR>nA$GVipRu$-LTn`l-?H6h)YGBd z(u}ybB6CM&0;dG@*8O4(MgTOVa9C7Txz#aPCFckjP%xdL@>Obe3nmrmCK|=FBp8hB zh}%w`L>!zB_y&smL4cDj6^9|RtOyb8G>rs}sdB;PlEenUqvfq>AkLKrm_)f6iXRU* zfi1QK1)A`8j`dC)Vk|h4CO48Y;Zl(SY&M*u_w2-LtlTWeH9py)3w!5k3RLWX$(Xu2 zU8k6!JPYVqUYr`U58nF`qhrT-OxV0V@79*aAar{IPLcdzP~+dh(AWt$40yQa?>jZR zjyxhR$hsjuJ*cbLBwL^(4P z^h}yJv#$MA`E7AS%Qs*}p+8_rvjOC01J@4^5v&*I)_ogFO;ipTEHFAcXb|h1mULL^ z75xBDlnUq9=Oo~?7J@4}dxk3zZmXn2Qwb=rVmZ+0pzC~KS6VF3Q1v@%k9n)jS0J$1 z8)=t2oRRU1Eh879XzelBT4$y^(;Kk{&xNT=atu@&r6|N2=ti#t$nAg}=tbwwP891Q zGVJo3z+?brx#W^2R(;6od?F~R^>V`6+}y=_gYN(TI8Y&EzRZm-+_7srh2s<=@ zk~HUB``~CD?J*l|)d>yx#a*mAvwF$~v4dOhi8YU9#5b&)9_e6iUf~WM7uw|`qt2s( z%Qw*F*Vys@HFk7EPOOTy(cv_xPYN63RaIozykV%v0+<%s5l2>t>?mLxqC(V}SYTmy zuQnvDO+eSrojyKm8oeCHJnc&Q%H(kI!w*FECl1xY(-uLR%(P>8bRzz1usSzY{zR~C zZWjZ2Qntwwm)}Hi43+`nViQ}P3~Ml!DXmq3xS@zs->$d<)zHF_A?dM+pN*o1-Eo)4 zc~D`U4-NO;)&b#BQEL$L6SOnfDg6V1fACZ?)`>GW{zm@P9zRB4@H{DUha2!1YPfuvnK*fX$=Ka!j06|bSZ3ibE}R}9rzs-wEeuXN+}|sNc?`q0 zdB$B)XXycGAVM%DQZtOz3*1g|hn5Gj0P2e^kRs6RtLWLtB!9t9@aM5sV9TH``-cRr zGF6-VALlj@!W#F5xq@cXzv=$*YZ9Ip?`-k0g%sJ_72@i;wt_P(@7f{)BsR!?M7}9w zfx>Q3>f&2)eN??VWndIs2HiMZW|bU5@5dZ%$ov_DjbWhC?ssa33G|A$JFUBDVhheh z&IRvF^Vg2j-z`$L;T0CU*EE8MVbg0CZRH1U;&W*mKl|O+!>;`NzTRn6mn0OuG~2BN zor!=TuwCvIk^*3xDUyP=kX5$%(|#jo_u-|x?St93{hRwZX;oeV62Qd>`O$kVYty|-uU2Kac zR3F3JjXFCZLGeUK*cQA>n2U`>mp#!cMq4i-Oh zg}1n6_;5Jc0r4}8CI|Q(S{(RBQ3Fn-YnL)Q{DsJpgs2NuH~ zJ^~~#try=yTqVbK|6qM#Dthr}F6z9kFSylGJRNgfb=~XT-H_q0a`fHuCpl#A`h*pZ z{-T6ChW2DGo*o$k@~l37ed3;#344yIHBD)8m-m+@YMlY?AQ0j#np1kaDuL%7wAmKL z%^}O4af$$VcP)4ZXC_=ykaYruL`}xJ({i)RdYb9?bBwX-_H~!}xTY!q6#v1p6u5^q?A?>j+s;lD$ zn=C8tD$5KiTi2s0Yl;U1(wcU|xQS5uO9Wus8Qb$!YXP(SP4yZboHf3MFIigN(IeShe)nICp;LFgzhqjtL zx7}vFdSrL%-}L6~79|+2zn2L)yDrdpZ~~E%3V=E(kP5r`&0}-qb^WV!TbuB3mNM1` z$9qu~Y(?(aX0kPs9r1YR2<96FkS^%5@iw}*W!u)_1b4PQ%6F0vXW@*&`5L`{yjD57mu@+BU5*~(uped!@ifAe`B@}P_ZqtO4ee{+8@i*l!?C9`8muqE^!fyvNUO^DKZ7U!DsfCl56~3<$H`^>(09V;lQR zejP}*gq4c>D#8+M|?q z9#_MF{E-L|4@(r^81oFs2*tuVATX>HK~UHg`Ewf=1$+ATyp@Bo<;D&O+#bc@K4=1x_F8$||qqNfQgj!NfR*nCJiFNuKGUVawv6LE zW|I+hY(6JM@M~&gr=-2v{lKRwwppLCM4!WFyGckX7gMIKC%9#mVSo)|b9m-T-2e$u zJZh1qU7HC@O^gi^c_Ybc-gG%+t~aeKe)u;{#ZA zvRO_=UtJp89gO{%xfYg{0Iv!R=7<+N>`Ku6*~jppB4Ovo$>b5k+*etl^?S0BGahv6 zixbb&xHN7lk-y~x)S25V9OfO!BdlS?UP})Ee%|No@na--gbP!*5=+$*Ke+W+Lx^0; z>haUxe*M*xuf470u{J%q_P+Z>vgLj^4Ul&?mcI0P8_S)()uqBun`&_T`%?`I7jWXc z_a~huwC+PiMtVE!Pg8PL@1bv_DF&yff%vkS>NxMhz{Pjq7wAJ5v=d+$nH}mXI3vcn!9HIH$Rz=F+I{SzIM{ZX&2$WZRHPm2NXGY)`c{AP;cXtqp01nl=OEPz38MVxWx#vWD2qYT~8L;<3-k(UwO7VqGBfY zm^(~5zCPB;)*5w)r0`2*_&vPX6uMvE>{btKv?4V*BbAU(iB#J>Sh zO9KQH0000808>{&QB_eYEpsyf0EEi`022TJ0Ay)%bZlv2FKlmPVRUbDb1ras?S1`s z+cvh~@BS-Td$OWZnTg$x?WlG7GHE)^J8hax(s|wExH2VDGRG3Bl9U~F(*J$$7eD|6 zDLLuv>z=bbZ7fm11#oe3zi@GJ6dd0_4rWD?<%@B!sprRE;G2V^gQMU{vEG*1;;Ih9 zC&S?M;mPSS{PS7xk1UV3!K?V6**bz^-)FNluhJx_i=e(rgBRQSs>p*^#k{_a%QX15 z*yKrEXYdX_q-798dwE@E(@kB#w?&zzt2D0>)~hrPzJK=Q>GM}lqxx+f#CZ}t`SJPd zm(Tw8)9W8!zQUJK?%*I>t&6e_7QbcdgLzr3f~*MS-QTu#T0Q$w75QgXT6M{PwS$}-mc^NO1&u4gSy;~4+41PRee>aG2-bUeLG9nb?}VdKP}6m90$QsurA}p zDjo-U0Ry~AOS5vaS*^Ac4I+pu1D=%mZJA9Ecr=l!_f1yS@cJpW2q=`FXT=J7s|tmi za{139%SQoxSjT0R(x*+{d_Kj&sZXcydPIF}J-=?!4V3(KQ`A^JPpetHhEEmD zTE3Xn+jUxvg6Sq(CX-^F=4sgh=)2diU%X6{tW0P1cQBbtoc=2KTU@2i>rqgrZ)*bG z0qbQ7-Ky#l0VS-Df}dV~PoIW@7of9v3cyYD5upLv-~DrW(l<_l>pvSPsJ>rU8TunT>@UpdW-0WIhf4KGyxjV;w2ysmdmD0 zC)F~puDpY-*2}D(%(G?6Q?^KJg!oTD*Mz&nP)k4wAQ4xO7Y>&~7!$zq1Zc7%M7&B% z`23eJCuNNN=2g8FW-#vc$>gj8@?3Zt<`?D)VL=B(L;QuhXKZHMj8H}*xv*E#a zuYdS{f^6pL^VgHt|NF&L8^!=B^TAcUTE2_dFf%h^W)I$mSM~7g)e@Ti=IOVOfBOFQ z6}m*FPB7iiW+Iu6|Up6=S7|lneiMR z9v(2|*PAjApi*E~3aC*P3^HJ_ZzHNShRKgtxc0}vYhcT;RDxno9NH{Z z66|sCI9LK`EP>51%ywgu)vs)h;9+(H?DSYuAig{cETqtHvtUyVnjqe8i}E^%OB84z#ipADpfae6l@@xRM5obP=VP&HL? zGKgKN)iwu#Nbm@dR14E+5z(8|0LuI{-Q@Kq_%TnjGMf#f;2F$W@O{B#8C-!-5!rJj zn5zPU@F1SfU@g|rWVWn=X*!EH$SUiginkSYhL?CS7)X7X+G(-a0MCMD4HP)5H;8Ad zb5(4XNq`WrX35-nP)SWBHylj^H6rOQh{~#JlLkj8pM3t;&lyd)G;rBWQe-BRPad9z zRl1zx8vS(?%-18-Qh@ucs>MhKSq+;B2i*bjRuN@YL73&UqQpsEZikA1R-0v=t(U2b ztjd5ARs{(1Vj53jm=(}`uqa@W;ZS~h`3$ff`~)MOXC*8at{v&xd3wvFkIO;7#j4lo z7Uw%0ETv`OJ%de|4U7@UijtzzvvG^9>qex+IaIi4m70QXajoA1SgEGgYNx(puQ_u` z13#%NXjkbNA%h&6t*By=5Yid&!ht;o-G5P9LYQ9^0F(I!m?FFkhois+E#R->Dz57? zl%WF-%XGbrXX%9Bxah=3%0_m{5U}QNCS6u(Clo?9^qniZ49dexqJ2r)uk-XiY7rbz zU8|uJq!07OC+>^?>ApBs9Fi7CQHI47^^F!YB!0yuk+PRux(beAse>#>J`&gbI<+K- z!w#!rQ^ItBXa#i$e})c)gQ$+nXz?2^5BfO$?NoiHzo75)cU5Nk+koe93L>D~w&10U z1r!i(hUM(AC^3>tsF{3098`!C1#II*^^D0DumEdzH2BP&#oepy1><9;5q^eR7c=?01DS27X#iBFXAk(YGRetMx!eQw^@C~{B@J( zXe%%v=Ay*@2pkYup!rOH4F-`)`lbQq+4U!px z=vM(eCRu!WIasEPc(xr}UUmV?m}*oHMVp5O0aK5JZLM0Qm>1g@&mu2^aWOFX+u|691e|EpUq9PEF7X}oq=)$I3+`fIUou% z>^QIWQj?$o2&W&`C{5MDs6Dl&8i zt@`BXEA$&l0DM4$zXe>L%MpjpWoSWmEI(zqf8_>M;I~F%=yG_YY zwj@>qTn2gYW=g7^RRuVm$=G7eijQY4}_5v8j0v)84+V4p{>V^UK3;s*pX$t1u7~Kv1>mvLBlaM zlRH?wB6Ya7iA;8ms)FefZEAE6WVzYYxDOnaILBHS1|Zkmq_P%cAHH87H88Vba&1=1 zBw=`7(NfKdG9`PQ$p{T)KNbBQ=m*tnH0xuoC-SAyLP&?1T@?k;@w!asDN25H5;Yp{ zyiJVCljfh~+H^)(c0AgsG&yI@&Q7FWhINGBo6?54br!rX4auBU6Lx2xX^;`f{tB(K z(6l9`uxaIZ>(F#`*g}>gMYU{`hSgKcsUDK2Jyb0Yg(WxESWA@vG#E}Aa#*8*tUT5O zVlq*l*1)ye-U(;0Bi-SV(aDjd%CvIvnDiIwe8#BqikU*CztxlR;UYM2L>a#+%-x72CN+Xvtt zLFu*zZFcFzttCHx#2s!|=FO)lNx|+62Ow_)_6(w6xmU8ok*uh@IBQqFREbcU9tR4sl5K*F_>%E9r4?3)QM@&Pz!VP&~ zeKXqLAakgimGN3Dy?KDUgkX>_(xI&z17#a44uf zYQR}}^nq$TM0b5OxLWjD+z{vIuhTXeZZph%XrNZfR>I2-I? z>D!C(UNzSA4f-Rg&)5X=<}oeIE=O5l5h8cI>FEl_U~E#e{S(?{U^FWm?eTI^jDS`a zU^oGQRkSFJ&DvD*+6>02gBTy#crVIqfw)GE2g6v5_USbe6@EBBKDi))|6s5ijRwH; zF;sM+wsax8*Is{%(x+Hou@x}`JUV%71xK_CSFLHcfR9Z8)E0qk;K9VBzT@wJpT(<@ z8zj-*`)*apX_vv(Eca{824F30LP6wXwjJFTINc5D1^ut?d)$b>iNr{jy^kmT46axlgU?ao~E^y7Ey7x7Z+a54_mH4)7Fa1NZgdOsrRnj6`fMC3@54`fmF@?kw^ zoef#qD}ce}03)uu*{M*X$;2_}#^kNG(06oD-?Jy{#7D8u-K>mCH>_hXwn=pi*0~?k zq+0(*#);3JnI}F+1Bvs(uux>56`JRL`dZ*}Jomw6hD35VdR7ll^tsE}(W^#Ky#QLV zI6^L{lc8qk^BJCl);eK@ZxGz0V%P}3*=0LU*p-b%#i&C2s>^#P?q1R@#lde_GSe+> zf|LIj3m$UG>d+`;XrXNA$Zjp})CL3WyBdmNIlYw7v^Y3DrdWd@G}YW883Gt-HzF3m z{{P?!J6D!Xo7g+tCkC?(*~_c%9-n^p`G`FnKYa7q4yT5tL_>=M86LU65Nr12$gk*q zgWt||X`AzwR*$x9Ee+R-D ze@K@xNDYjL7LEGGCIM}2WOj{

X?9`;4h;32fHr2~Z)=6g91budrzEn)rz-18GXv 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

    LT|EEAiBHW1P}sX-s(!EUMj>? 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 M`1ZjLy!C+p0%ppKkN^Mx literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/distro-1.4.0-py2.py3-none-any.whl b/src/venv/share/python-wheels/distro-1.4.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..78243cc0b98775c52cfe2388d4bf247f4d821f69 GIT binary patch literal 23898 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 P&oKYvEAJToXZC*pmA#`W literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/html5lib-1.0.1-py2.py3-none-any.whl b/src/venv/share/python-wheels/html5lib-1.0.1-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..dd13596886f98bcd719096db8fd806edb9f2dfd0 GIT binary patch literal 120020 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

    heTJC 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 tZlQr*Kj`+h8O@@nMt)@PE;#*yjKM literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl b/src/venv/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..4aa6219f423bde81a38224d34c78cb6c5795df9e GIT binary patch literal 127312 zcma&MLzFN)u&&#-ZQHhO+qP}nwrzfG+qP}n-RD1}yUw2MyRvGKOj3j7tyJDeK^hnY z1poj50zg?^NU_p*Fd~H*002$}0D$tpRR?QxeJ4|Adsio8Q)gNRy8k;&ES+6wE$z(g z=>=6)B;=Kp>0CTqVtr)ex4AlZ{rp1H-UclOc5eB`z_5T@_`lkB+~nKFW;wF~rHv$M zd=+gH+i_!Gpmm38d@G3n>*Zg*(CL-l}9RT{lBuIRjbOLL!;=N%GIi(X5-`W zdHtNcoId+0_cljMB<~({wl&JPtZ>iDs6RLE-)k6RwZz=1)akhRecyM6#K+?EcoYct zn7`(aJZ&0Qn=oU&Pm_e52BNIvv^SY^tbMk7DeK ztgm3qVm%feanEpBff-kNtj`Dd6($ov3Ck*2UV;^Vf^F!yx;F7jbbjE zG)fyS0R+s|R$WI_U3%4a+{yPytyMLq!VZf-3RHR{ZgVuL_9{uQjNLyyj#of zj&ve=Rs$UK|IC%wtMCkGp)y%Mdx8DOoS6ysG_I(7z~GYUCrIv9%fLa}1~3hlu%~>B8D`!3_WC(-d7EREH(JHU z(#>c2uzGqMH7ci)dZM=obKkW(>`F~#hkHKJG?;pM6gAFV%hJ8Hy-g!FEtGMz>{=rA zu=3Gb93*U$J_KOvcPqeX{A*>#E+sU3a(Z2hxwLDG-?(VGXjEWK*vZPa zRO_VV$na%^OiN*}z=qHGzs@`APRj(%@pAKce}A8!-vj%7&>rDoul-=He9SiIT%Q*$ zV^#AcsA&BWC-CaUp9u;gI;*@Ys?Kvn%JL04+k=7H7#B|J(*j~0ebWSw zcvbVH$yze?3fWlEWc23*Hha`70(8L;-ATX-DUg~0rFC9u-1sJJ_?2hg8CdL_<8E!x zRgxYFQ=eNTqZ3WJtg&!)-*$~-pvRRQfWSeIFru>0cbGzjK-nh;LEqG*Z{p(R%XCQ} z#a!)D%5E}#q0DSt6lqb@nq%o&tjEXa)pU)y#~t2K{cw8_0e1y51xr*Aj+7zNR#TY} z>;&-{UJMYLFzAA*#11x|n}N`PKPy9vS3~+8+pZA@SMmj%IQ!!gHcUI_gwtnf1~w`J1m1#4ZKmfr4AEPRm?cub`)** zHo*?lwksusVZgZ*Ey2$hE+B4Mj{R2Cu^=n1fUmEhCx5L;kv;0rG0z zC8`G9Up*G-Wv`P0qpzD$15jpXuDMT!vn_qi+)O z27SyKj_?iq4TZoVJ77{OR?0of&uof;@Mm3;_x;h%3!wn$ZaR|}fg&Y;vTF8uF$X5> zd9>SkMXHM1sPv^lDa(Q`jePOf3SUBr_;&*MbJpFP38^jDQm_RV?H%z|o`9nHRMI?v z^Ck`O?6;cAqU~bbv;=GlTD}9 zTiFu)YdYtO{o?({R?NVd4 zTyRbzC2kZJLpYJQg#3G6l3)19;Of7Tx18yAAfq*HXnC1WO>P4SxVkr@UEQNeXe9b? zXC{>gvN*ez2f)c3kV7NfG7|yU`FTM#h>~nb)>;{35cez#{9o&w=X$ER#}8z=gfL(H)|QW$&FI=)}jp1kX)^+ zDqIq&yLojvB?%JRlP0c{u~-oE#jF2Xh2X=DKXS zs9ZUNEUgNh{1Tdq@NZhT$Q563W6>z-4V0gDfSHqE5|QUXEy37IX0MGztf1M4=ZkNLENm`9*+cS6KqK4I1B33(>%gV-O$8sX&-h;f?%u~Ab9U4<}>aAO7Pv-YL zHvnDNYM3!QMx`$inAIjz7nHlolKu0NqRfS4sp?U#v!69rl(_+0!fKA4UVxXhFn-S1 zH46XH!u=E5&Q-~eJm`H5%wRDa7+(;_;70+!Fe0raSz>1H47sQ0 z8hG65uYf-NV2-AAVe!XAoOh^}90GVXwpQ}%;sXg>4GYV|)-BvZU2Ru)W4>V~z|Wn4 zmV=K-Eg?rJm%-CDwBRbnegtDabehgE0{?9f*0ZrNFDLeYPhb{&Ly&NIvI&=j5P5|9 z6?X=GA%9A)JHTVE6QgI?DZ{_}QkyfZELhol8Px=%<}*!d+*)@|;jcwWg)oEf{qsA> z)xy$M#y_a-Od1b~ela2ae@0gO3a*f%nlkV) zlvHJ&wW{%|jDc`~ULU!GxQIz)=mOQD(m0b75`#JNy|g7uo7S+QhPtiUr?0`-o4A_3 zqCISR$ylE4R5N!2G`fq8?4aJ?Txx^IVLR z)#Oa0cQCiznS~qqrG!8hP4~E~0uu)S;#H3bAoiO{y76G+15MdLw`3i;XEGf?fyLCT zIDyBuVd3%%5qCrv_2~p+vYgiVYP=C$N_14vKQJcd^)|q+!cGxVPsm#-;lBet&QpKj zvZxE)@0R_<`pIj9eKY#&A~X_P^#bt@0ZbfIw?JLiS2aW@s}*B=f|bm8ATIH>B8dB< zVf<-e;gO4W0o{M z%(6W0OWk7U@{D2-7Q;-K42Kt1uR`9$v|F+Fdn!6w(P%J>hv)xye;hb#HNi1IksJOD zPh3>rR~$MSCa|yQv01A87hJ`@5~C?B z8?x1E% z3J~KDnj~1aW?(LVq?fD%Vihm$1=VmK?6!$+P?)35?bWgEynb+J*i8uDjX39@zCF^j zoZ1oZN1{EO`43iywQo+w8QA-5ylvllzZU^~by-?D6OE|y-|qLz-sj@Ipvg$73F~;~ zb8*vQbhJ2JFk)S+n={RwN<8Drpqu`YJ)w>h?~%%!u-f%#jpUC~s{Fvv6UQBEjotKB z8{(P<-6r*>@AUv#S!1~`KWm3R*Cxjr5v%3>iGwQHLy0=nFM4e)o)5S-m0adK8c^1W z7vw%w+N1Gu^NVz6vRqi~!l~ zVX28sr|GFKY2t1uQ&qtWC1&Fk`Oe%-S*vFsADNMa+~m}B*><|WkI(D*@pIrjILAw> zEn%DCyq@@3d>npm?*3jdm-y{NGC4dv@B8f!_w7JM9Jj2+)%Ed1aQFM|^SrR9wbX3W zWvu2ix5f{$%&aG*iLtZI4LI;#l^hzS`TE*Oy`HWzSX<@{oqDaHXJ zRM_%uGeSu;9$Rpw<%+;RTQ;l7zI2NeaWI@vU{P2k`8=OK@CVS-Rnww%s3dcFvSuh^ zZMJUv(@x9%>0ER|VntMu0z92`Y5NpZXpka^0;x9K@6#L3kSV@1KEz)-c+owOSFk(^ z8ROzA|X*QQ3k5>K3Hvp8Lq2_@%G^?jiUj zdvY2P69Hp8I(#OmGL3e4cw~Tf4kezU#${1bTqUQ z^6Om?W@+Wn6SOLpdQ?lZ?Ct8GR_ad-^7%;sFa+q9OhvsR{_1X;btR-0(yo4_;&x0a zL#N`9QE0x%FPQOVOVQO=&EW)a<{~KbVq#uv6SylCv%-Pu`rgM#Dng#OC5|y@Xqb1h z1hKfY*^QCdNUH^CBV?7Wh(n1qMEl&IPzcEy@+fdfVKV!siPkH!giv~7j4X2-j)Qr2 zP0|L&;t_{}?(V1taciC@-wlJRi&b{9 zwzT)14?%loyD92@$RDP!{RE+$$ak2)AzMIktKq{%xjp=vCY0V3P# z?@7L5vI)t7xDgEWPR189g$zfivpKoZFDuQ2m#mq!3DT)=a<<9NS;q(sEG@(_IV-wu z!@9)b{4(}QG+q&guO5MJ=1*?=ng-TCt3k^8P{1$vl#ph9?79Z%^&$kMxe3qK(3)E$ z%7kyjUmL=&KPBmHro9W;eG760g(EHF4lt^Ut8*$e`W(WLF_f&$?4p^7gcYDZ8pY|cRO=f$E0u{2}} z8Ak&0mgfc^8ZzUjkN6t!D?4V`wccB5N6~h4FcAV|iGUYy4H`cnuhK4}>u)*|;@NPR zy61ftE?Q#?3y$?-f12ty)*L6~o#&Xmc@v-{&PaP( z^V8s*ZY7pg4GpSfB1fM`hqux?m0GF{d|3D$mwg_f#1Ure3x<$VqXniQ-VDc4=wukp zrg$}>Wy^I~1;DN263CgKZfn=Rq$5z$iFUYS6m?IDENQVX&+7z*)8UZ}W>NNY91q}} zUE7LtspFdD4FP$@HVYSGqh1)!ILtmMV(D`!XY)r(dd5T~vT#c?l2I%Tu50+Fj6(N9 zq>5-IpF>>|pW)6`Rd%B@;M|($m|chDFWq-q(hUzLBAx?^B_XuV#fzJQ?YAaIgzYAz zobvqwxKOg|I%UitXygb0jHTF9k}+7C;3iX@)9!z?FxLyiy+In3Sg1W)39J(9v0QvZ zS-I0<@Eh2=VG59zov4-(^h= z72W)uL7oDyG=jsW2#%yDOXT|kEV#r_+cZ@gUB@KNglEvR=jXUbB2By06B6Bl@YSXc zCU?iNt=kn3Oq{3?^cNQk9qbL@`kAHyG?sgBFViqvR`v{+tybr^dmFpdqe!ITTz&Px zz`cyL#Q>;&ITK~%IlBUl5MKkHbOmBnE)rx&mUE-A1?;|1y!X@N8v#)wIY}AIE7BS` zQtQE}kDWlgv|~{1V9LrRDlH^rYHQf%Z);-Fsmd>GdJ6_ulAs=-e zwli&U15ql)>FG4aMcDrz@HCjK~^!ZsRdsCQhwjyL|Y_ z5@!T>9`82WkP&(rWeI`uRxoDI$NPh!3mVXj;fWKHVFlcG;$t7^A7J8PovB(;=&2S}!9h~WpoKBlKSoZPmXkD^>=asRUl#3vbSDi%lU zMZb8_y8})g!Q9LP7>@IHob&nwtf$5L6Q2TT$fm1*JuSDUtMA?h11k*{-nVx-d3k)E z-^X9#@L@T^bN2vZE`HxX8_D5g@DCst!XE1(dg|6qKN&gQ$TZxf+TVnZE)+7I5G4j?aZ-3PYooJ*ZJUPU8i%!hK?aI?LR-JJLHRj=N9VCJhgCeK{X5U&~rK zRnBc(Amh*J{|1uS1;{|hQ@Vs0&g(o)V-cJC3yF#9h+b|rS$?1nlMk*vOsfTsZT|#mu zX_8e9D=4OLhrN~4hYSHB?y}sAz5E}~ZR)9}Wbez<7Iw%K6sS&6RM4(@=CB%C#Vlgl z=aosOr-Q-`3E%*8JSAn>e|EJTD{l+DJaSqPnI43~P@h|sQ~gG6vYb^?Gn+16+0e2~ z#XKi&p6RkjmG)*_HLdf^$9y*Fhv`OVJ;SUlAq}h^dE&dcER1OxnW#;=5tte)C$B-? z@D}?7m~CKs=ciA(0||{P$n-GBoYxYjcdIjRu71EkhZQ7HwLoCcGFf8K-fIkXb_K5m zAfI`H815=*YPXP*sp>njfzcfS<7nb-Y`L?S?z=7Vt4+4|d=2+;Q8=H|J|FJ`nBVdF|QyBlm#*MPi$U$G+C0Ho0Pe;TTJztT&jxXC${;OO0fVfnP>v05CM0@fW2v6Z)^!HC4;k#OZ^s}e zJT$Ufks9^X_BQo|MR93c@ty%@_r&zA*=x1iPAJ+-OUlIbWA7q&EjsMsTHjVh9FAg5&8~Q=rHT_67*_6 z3lpSrcmXJA`jW3|P;*MYKN$Cl(Ah5|9RWK20NpHX?Zd9H$`9i6bMg6leD1sVtj;h; zJM!=(P)8Y|zHVAAj1^S5Xt z-Q!6d0FNHobYn>=>e{81VaHH*XQLkXG!pVe`YMa$*>--CZK<6OG+BOlTY{eHH@(U; zRNvJhjw+dZV>qt0ZoswoU3-kCd?!k`&soKtdkfy1C?h$dOW?r_KiLAbGXR2PAASJo zA;|MdB`&rtNPe9n?Za+cXbJnfW=q?e#WG$>v0VfRTHd^^sRi*f_%kkilHi1}Puv79|-zx2fa!_7(Fk${cVt&oUtAe3P;GLfM^ zVZ9>6x)hjKt|$k4sV!CUsO5mIY~C=UI_OjNF_?9qFJi@IM&ntZ9dWnbNG@kURz!9| z>&Vo6xRzEMJPO#2*U#=J=6zwM*K#au7a+F;6n5Ma#{=ri6rO&(>@Ji^@AhDaw|B*F z&t5~VTQYCjI1(TkAQ2K@bVc~<#-2b9)g`YVq)vLE$%Do0dic_=2#?pAGoFFz-m~Vycdf>k2;zU zoLknKXwfzVR(2*n4u)I{_)$UvM|;b)5#~8EDv+9T>ha&=Bd}w5>B%um_3nlFf#f~F z2uAa0x0e`(DZCSZKK_+=Ay==QC?YY&ABU_{mVSn!3u`9r3srDB8VTPn*`9!9o762o zGkj!Rf&uWH2uNp97nf_@2p<{|Xic%8-?p(1{75L@k?HLaUSx)Ff|EV`Sjih6q%pn2 zAjPcKygbL(qm0pfi%;ApO)m~E;e{?o)9C+`T7PPIqB?OT%dYblX92pM9P}%%q#GyG zyqF&3s`_W=?gcrjiLKXsqyu6y6Jxk(K|15{ZZE^jl{@>NX*abmA}?!pAoVje(%j{4 zum4^AkBam`MhYp_OG^i5us-k8b-!9FS`AAsAa)KXbsB$7WlnZHf}8+4tDl-P{4hGi z{MC8)HzL~=YI{-O^CL<>Sj#*HV4hz;)v@#Wf#bngu>GOf@1xRQP`&CuXBTo)Oo$bC zxca(XZWu!Ttls$uAYuhuc57sExT8x8gk8@xf^ch^@%a{9E^DXz*uk{ zCh+SmRP+73hq?1L7iW2>-GRGViP=$ZZ|bb2D7|yTU_U(Gc1BXx3r(Tk!&sWnZn09w z&fXVzNfB20#7|po>1(XLse~AsEtKr@ttG5d2!%fA|w+&QR^~Z}c6*4y^ zFwUBmoC<6iA?Nw~;;}^1oQGLuESBDd1^GhNRQ8xeG34!t$YIqQb zITNExcG#LQ=exvh+Mv|g!fs_dQh-`5&)g(5g3~V0#W=nNR@UgtPxo0eA#3H@>Vou@ z*&=gvmMw2v3ZEZ^b5@*Op{E35=y%XeMxw)zxOyx04JF?_;c{~cUvyWgi4npcC%yh~ z5NiK0i4ZUdf2m@BgMusl+|%~9fV}tC{3(tm^744@s$r#FJRQVsxsW3=yxXLAm3d+fp8iEGw&6Un8dUNiP4QALpi}{#vOZIO?>BmdWxn)SLA&z$O%~*TCIcrW6{|f2@ZY%$LREDmCK%R!0}q>=m{NK3%-0;N2ij3DB}LC4{i&sJVS zupG&C-gC}S7@qGd=H>EoczL`UaG)*6_!+P8Wy+`+@-yeEH0IyF-#aC-Qlp9n=|_-yUjg90>TN4ymH)zIrg| z)#`-SDLO-ZS}s3iUd6n|TW3RZemao2?mHw{Onm>L0O)R3+!xwP=dKdAhBQ5`O87}n zrcOSOx)eHsBK;_KC1VMWGIE;@D?Dc%z8di+Eh_>`ejwE|G7;EgzQ%F)OlGUXJ&EFf zsYwjKQ}p`Ao$AsRiGka;N7)La-+cwz+O;3F;C3jC%dYm77Jw;xz|3y(iTj*avmCds zgD$(aA7jy1&>J`&^!Pu_-#o&#gTDaRF-`cscz$UIn3F@|SiK*J;rOhzb zpI7`3(16+JuvoYrA2;m|UF_zM3I+H)oIvK#~i03ZbN{|D`nkrWn{Qx^TdXpgS4 zy!|EvO5d3>kE2y-j4Q8gSLQH^HDMf%@+c!om)zd6@GxwB zF>fp2?WMPekH`Dx#lyiA`+RNS0Ni{A`clV04Bl-wV?Uc0sVXOYA25!M`E79p!_kD7 zy)OK!u(epTf9R3M%K!@_j+jUX@Ukr{o-E9O;7T75BT@g2u&MVJele8QKcVD8QLH<- z1EpB7aO{e1_m%}FOW$kd(*(m;* zTnNyy_&RGH&|<<9y^Sg3{_#Zr0VeMBW|L03{&zrHJz52zFn8KLydSMXcizal(89Vk zZJ!9{B%b&V4`^NZ+Z-1^_|9>k)NrLbm$b?_B9Ng;b3`YU(;AUynlRdd{LQgoISMpu z+zHYKA8>vVJh8;T%?jN#f>a1sM94g`g2$4rlA^yL(8DK6!epyL#Fc3RLF`lmh;1>e zI;7M*O`+oV3 zOQ@HO-y~Y&JcDvbnbx6W7|K*X=$)vf@qv_zN`%s+iFubIAvqEV=}*+qs<3}HAmZoU zlpkH`Da|k)Qb7JVdE)*6|L;K#nLf&P`HxL&{4dDDpE9$2Vue{p+zxJZgRRDs`~ z|IdM+F8+I4WhZF(StTUF*iur=50Oisot2%D8JzGkIWs3qJ*I?~fV`1}wvPgxa1hko z0q}q1jl7&-eG3c#5DyLjK=Qxltt2WeuOt$iD&1Vffg$krqrLCuF;#?406|ei5YZ$l zDzXm*2o&*nHKr#M-_}K2-Xxp*#G70uK`7bjMc}yT8_qE134b8&T;2)O81xRTq3h0V z!?>t6!}ti1rKt*(29_V|dX|>2W^b_{QaeaN0XEH{_q*z2$mSjwc~vF&gPaPdn{dx~ zhKVq8W|QMwnTy{+B>TFiUEh4;E zC8VV>n>--fU4)e5+6+S+Jmoe-RL~DiW0mDB*GYcKC0`fFr_+I?R@cHDx&!2rsV1;8 zA>+(-I+^yKbHd#%+Sm<}fqs0tOR#vt;cN7UYI*KdumzheEySW3SHM7{=b1M;P3^ab z^3TAVX`(vLh!YKB5ZWVsFRvjgBR75Fcj?e8gKUB_X@#;q4zCf8m4g20IL&%BPThT3 z5eMM08jGERPT>>cL($fyD!l$AFUq6$1()Kp5f>;th0=f|@fBk&^uX^*z1hx)Cy$MP zEoHcu>b?0WK5no&*l2)!X+81cpQc7RDDAKr_7HJ&D_^xFaw88xRdyB<#%<4Gyy5nl z0-%T^@)OFu1Yba}`K=wPw{2o4xvhJ4w?iE9! z(8G;%>7QtSUy_8i_lX8fSRZaZh-|Z2mu^TWY%ME6wQaa+qO#(tOiqHX0S{P;FvO6( zuDtEfko~?|QJd4x5uEEPBuVmXWR90hQ(H;4gAD7n1uTBF8=-dDlR5H>x0kYku{r12 zuDscY(%(9e-i`-1{GZxC)&^hf@oMSVH!-sZW?4m#&s+Ot0%h;DKOGZ^?CH-uNnwG; znEr0%^;I2rx6fuGl-enVG|-#k-$T%v8%e@uow2uw2H3JW`uqp-uyXy|8$a`!tk=Xt-m7Z zp>z-KZf`*m8^8R`ObF$$mLy-u6T!GwOs?c-1klfig?0Bp?@ym2OO%(J|532}%a=6t z|I-P(|KdL+_kUq=)g?qlWuWIIWM>xsKZRRn-glCpk*1ZRnV@e{l8~C9p^KykuT-38 zm}h2NU|u|inw+Cwc%fN^rJ$9XnUHBxqM)RbJ%N&xX;Y%8U|F1*nv-6Uovsdv#2^-F z{~vmWW78x*;tT-5TMh_-`9Jfc*VnhSvvkqdr*rUJ?z!^97EdDh%$HY`je`fkq>*&< zE?3v<6sN81YB849k!&pwKLrvk5Ku#|2~rH8SU(cy-t#PZf+DZWOw`mQFnzmb57%!K zRWlXcB_ck;6W^%GRDU^1w&~Ku`8(LZzrWxAm!XTEZrVz>W!9CKy0NsB4n7u{9~@lX ztGHq&+G;~rt=Tw@w$cPL{!&(P>6EvlmR(&H_C^iHJDb&F?>lctf4b6{W1ICtx22PM z)uef>`FdNm3?I~JauSZpV)rxD*-p6?ESs#0dM6#CPngZga_d$Wo3OUuTTV8i9h zksH?x?%M2`u%kB+{dR)Y7X*0Va4!7;Hmcdekai{uHq&gYZ6=$o9Brm56kJug1>@CA zd1=+63&g-)1B|8Sra1UHD6xqKrm!-P))nM=3=ZC-9I}#=ZtEIZ4X(er%+o}T_~mV^4jv$gsTNAQl$keZ%tqtdV*C3Z=KPywNj;NZ{f6bVcL;79WBdV9;4g*#xZkR=)*xKx+eNwEHPQ-JW0Q7!a{1}hRhecd5du83*#icm z(GPdA*KF1Sq9RK2AY0|uTtoMK_gGeu7NB_5>S8eY()p@PV;=-*GYOx)<=W^J-AK7M zfKlB!@>J-*iY=nP=DVbZe-3CHGA-^7*cR&_I)G!d+C>hI`8}@fA)#yKhH-Z10(>iLT~{RQ?}L04tkvZ0A^FR%6wW@6}%S>|p8Tq8XVzzV;9|2qS( zNNq#%^^>;E-8u7|(8^h()JfO6kKy81jI(>jKI<*ua?z(tZxAi^K&5`v1HytcZhyN5 z!5VQa5TU=Ld;OqeR*QoWeFnUr=(gk`077s_q_~ZJP2g=bpk0D;)Il#@)mIj_&;RLh zCwgMbUS3|m&l8;4w{17gJFPdYxEoAlUYTQ7?dr6sUE>yjB4^>6US6N%;1_dTz!M=J zYrb>T)@l>-x2it#_Cl_e1L*lT~I%_C)1xOV$hVPV^1bU??NS^<; z%k|?3?e;9YY1ijCoqgmptBX5eZXb`rOqzp1;8i|CV(7>!5tbj{JYH<$Pr#_2Ia}qW zC{XxwB$_y=P<9qrw6>JUs5)Cy)npx6i}aoay-EAi}F3*zdD#?zz3Y%L-tA z1PzW&$1eumB@x}BJsV4IrdtQ$45+>Z{PXpn&YlV_oPs670c5Y&icKD$Ivbe>bc(Uw z;4q-a)^^Iq3DWGT((TNaRR;*(z{|MuI?KHxG|4~R>kL-FSwJ;1{)9|Qo9+R_QgYjl z1@RFdKFa+?Pxr`y7TR zk%Bt3iPo|%#kGgj0@DOc@+@C*p_`Y*GBMJ?wzbGPNVi12nXqtmt)C8@= zFG%pPE`_#jq|7>^WMhDdTe$j0qKR;{?(Js7b%;(t`e3?eb@9Q#{Z%m@(UAaHz3Ge` zQL^OKA>OsKT+gI`v%aFXp&@QtJvDpiQ&w~{cYyC#k4+gjFdhU5S{59$AcqzuxN-ro zhw$XW7lFUWii+X))mJI@ZtDfs0ih^EuTU92OH}{yoY$W?ggLNev`sp}*GtzwANNRj z%q*I0R###xpNb28TpvBgg=ssA3Tw44wxiI*9QcE694G_zr4rU^Aj|!{)R@;ryoc?TYiJ&JS-*^-B&%L9-{#y|>8G(h!ln zs}Ajkk(hDcjWl+2r=qU~8v3pB&+o?e?}7IQCq6}o{qy->>^wRN;o9W1Fj@vI{3`5Q z*kc^Q?=|En0eqrfp*dXpjNj~IempLTPzSqO>Fci2>Z7u%$TEP#&blUhD9i>q&Hl+( zc5?KY}AM5 z#EHS>?DFrTPF5#FKb=L4S7Kqo0nwXF(KslKBmuJ{FnN(@@8w0cXS%7xN|7=;O)>D0 ztdkI}gXql&xT8pz5pu9&4%TdWEzPg2S_b;g$Lq4+P#ds5+d#Q6m;sinG!>ZJV^r@WGU$ zCK6uk+-*A1BA(NB76&P@vQi1e2&V~h6neVaahpKQ59T+7qz^ZGuq zznyKZ?e%)T4*q;x*VE_yTwU4kb%4+5`@9`qt(8Bvz4~}irCc%)4>$vgBiohULqueG z>gpYGTr3QkF6r2-R}7^U_I!ht_^E*AV{N`E#fSJteDd1Xd^tj09pn#)(9;L=+pA^g zhAJKc3!7n1R^K>TY6GHtojLQpy)N{rS1&<8$Rk70NJq=uA1jI*!0a~V`2-1tk!#@x zK)HrWmflo_-0=FZrFVwhJRva#r}a4#yy$ZJdjRTgqg{CpCl+=JlR>Pl$SN*WdVls- zq=DuXo)H@Ia=1I$iFk*_v3Z)kU5H9AlXOvRCbbuNb_l(e=G~kpo!lwz?bK)|X*@`y zxd)``60_^kp%=#qM9K$RquVAeJp?iY=P!tJGMy2#Z%5F<6(5KveJHae^!IS=;i`Kq zrb!!gq&Q|n#-wp_9YZF@q~46OBcVOi8gB<+?y0zppZzk!b8}pJQ~_0hOl`x94Ug%Q zSrBV9g?PO)%i_@w>nHd>=>pux=mTx*1JPmzf1q=)S3A*Sd2fS;G}(hYM9$&mzWKu4 z-+g~Rd<0s?YxKEKxt4J*z8Eq4+y}(C^>f7W;OOi@K4JW1soX7+f;L4#}Gpdrrt zSpdX{KWx6lS-unSkp93H_Z>YU<1Ho6WBB#u28 z7lbZP;jsoDZZ!(E0_ju*f6%xOGudDbVf!3QZi19E{bQxj{SdbC{PZ({w#)HUZhbKr zf*}sZ7cWB_IY~t@AV5V`kU)J z=Ko`ISc<9TDF!yxFMK!y5AzT0f1A9ziXYdf|q}LGs244B-R&Qtsb*{*ev(Nf)(*)ut z)|V?&KE-%&Aqx}IW0#W+VR5dhBNKfMDC8a2_~K;4LSSN%DaYmW;VSJwct~voap7w` zFgHu8ScwC-WGVi%8ZXeV4=lZ?5HmE$HJm6|Uoxj79uj3y4}(LT^;}uh1x!l1v9#f= zxYcCR3dhm>Hb^L|CtO7PvI|jx1qAJ+$2@|(n0}9co%V5~o0L+r{ITwcM$sA_xBB{& zxbJ4IffZTm><4;0VT6gmynF*v<)7d{Mrc-Z011nf#fLsm6mZ#etDZ6zot)U{plMYw z@VhRrqFISl4lY^(2*T(r9l=kiI`|Z444Xg5Hgb#Vw3FV)r6}ME)_{jR!>n8wY9mSK z|L*M6K)>1z=|E5EjdwLSgfj^gNFzkq=_M#SH^Yx+;Ti5K@ZRy7Qd$s>d<2BA6a2lHr zIc>8@1cS5T+OZxJY!gXYq-r%;Hs!S6Fx`i0$g9t+ulD*1tOH(g2}jBLmJOgNNYK*N z8lyYQaqIUuod!t^1o$EKdj4Lf&olJN1da@S3LjimSouP$<}L$>*DIXlw;=ffi`~z$ zP22@WegENf;+z74_%w9mn1v$`KTr>%3%4@OILn`o=eLAkn4jm(d=XX!{Z49 z&!ta_z+(G?U1EN-pPN*ijaySWelC@;o$`aJW<;KvwHyN`JDn~@EwCngYg z2_Rx!2^5_#(UgYskhU|H z3e&8b@zOp#O;fdatG?eq!i_%D=5jVB!6p}=OY0~nsy{ytkK$^o7-b2djoIq_Yyj3$ zXeFc#XgtqxKrk77ijldWZsF#1yyM-)Gc{cpM2KpQ*&utAL9s1v-a|?i(UvbnLkftr zf6KtzfxDRhK<0xl#Pxce3$c^S9tW62#MYjzly?l=lGv!&QKcue19|<%7WgFnA?& z?Zs=Z0E?VE0#;jI-nyu^;$d~>9j&R_WOc?ZXD>0CJ9y>z?eh{p3y z0|*_)&OW`%zhnr(^$z9b@lEmfjnMcNu9r3@^dU^2vWH)mN#+eU7%LS26(wS|LG~<1 zl25)7wfsW5+m0tSFgwaUC$f#=Z{JNE9FtBblhOxNgBIg9mGyH=60OG7!*&p!@6P}2 zld_!c5=OrrU(7Cm?eTrR7hEmgg!=_Vf}a~FLp(Ti36QJ_^-Ml^f!oK3zQZ=ZOWVzvp(}M zW53|(7e(&^E0w^E>^KDnM3{D4v=FZwE9k5+xrV^1TLW?&>c>QQ5{15&YJkA#G1YXf zMDYUFa8@&j4hh(-Y#HVR8n2ggO`0b^75ksB; zF}XQ9kQgmkeSxmy106BMJIb@&bLV2k(H{fzphyIpk|lud_vS-Q@GTY@S)r4T>C!}f zW%~ekh(Co5c5I(rHK!$Sg^lTPf=EA{^i{FlAp56~$2znG%}JKi9Tt#b+`0@bfMkHM z_(Vhm%;mJ~bb9Vw-sUt4I(t|E>oLHT`#D=riRT|2LOikE?juRlk^ox}ts>{`E5 z-Qwtar>b(k?wDQd!EoqSx!GdJH6vL!hGs7qPx;;56MuEPrElm|kPL(OmHMfRXa?5)4*)(u!M{__Q%wc_l)Y##%E+=HPH#+r(nDnr z#E%;&YD3XKg$8>}7+~q(f9_~8u;ZgfE1E>1Z}=->k*HV62=osgF%n{hINUSBm?9@g zuznqq;Lz7|Ul#$<@Wk@h5RKRmbziqiJ;EUIkE0%Ph`l$bvDEv}Ub5k#e`?6cx2QNG zMJk@5A#tN^byF>iHQf{8)Fu;j5E4W0n7E6oY%QN6JwF4?2g)SYDsrKq+d;1$>Pj_zpwdqNAcHVunn_!rX4}5ViFX&C;#Y}880?~?d+LfrCLW#|fL&xgB z#Usu97KZC_!|-eN4wwr^IHdooqXKOr$DsS=W*y>9fi~XZY}tm3?0!F8V;%s$2)MCb z`LsvREly&#w2JMHDqN!AQU38U@DufhZ6}jho7{<7)t@8ElR$zLTo{)i`;jr9#0SC& z3`DS=H7PmywzXnAyQo^xon3NpAz&T*XLZ}EFT~K!rK=hb9dnYRJ1k%>yM&7sI0{G5 zWBFcZvv23SFrhnJR(VT#WdX^$~-P;Ev^A*^1+6|Q8sg6k@2A3WZ=55O%VAwdaaVn%)vj#+1HQccn zp4_#w8>{>3jtB-!666f%pI%}g4p6bYE#Put+c9?=POe06BUGudi=`Zg74+_WVDV@8 zPL=fKtUwL^wEpXcz$2sQVtt4Ttn+ z#OosLoa`Wo%a(?txzDiS6zk_>wEN}|`hv@B*n}HRs70(sl|h52m;SmbO9|an{eFC@ zVEDHS!lYA;qvRmWF|PD|$0#EsOt1WnPMiZLM#8~3yXVx7WDNKm-QY|+NRv0ulWSHt zAG>C%xbhriD@$klu$Uq$)fiI%HX({-Mfqez(T(&_ZVUJ*=CjaLfVUJ;4OEYXYzwI| zW3OpGLu>1~6)0F0Wjm33g1<%qmyiWm9~Ed>Nd}f%Q}wM5zo(IG2^%DuT4Bk@8AVAU ztzBBUBsV$rEipXCG#TDILS_w%G-kWXEiMpc*MOc{H!26_qCp*&bVB})JT|;VXjp(9 zLt!esvVV;#lr%obN{0?0G^>yoH#sKm$1#+cdJ2y?<9 zb7xq=pHW&{Wuq6`lo?58oiZhfDuloF)}(!wB>cILHHq5wT9g<{U{&HreU>HsvA)#m z4ba|gVbVnd2^tSk$5q;$lMqdDZBRQp-?E>#qlqaD_D2SVEkZ`dJiXK8j~W%YGl}iN zoC||c9=|P(V*qhR%0JyHRkmeWhvGKhnZOhZ-lo}GVxORq(6xxq=(55`G?ZdZaRNm~ z9($aUq|+2RfU4da1FH@TRRi75&Tt^-Nl!`qz>Tm>I2`B_oI%TT@&iw`;GHoS05uOd zZo{kyb92I!4_KLUy*WXi1rHo~o1HM*(_zVlp^?mdj?96y*~}`FX^?r|kl;E#INR3l zP9Nj_?*u==31Aj6A^`D~`A_cFm~H|*E78imuqbCRY%^#> zo_EO1_iaI*3=so9%8hj4I6NZoeW=aYIFJkpjtgMfKnBD}K_$7#4Bp^)f0Ik&`cDaEjTHMAa7YZ3dj1~%|5OJ5lJg1(Kqqr{zAfmM085bJ->=M`3o@3;LCM;u2 zknAlEvv9jK9S3vh5RiVxVXV zG`lZrpa3#4pfCfkk;Xk(qeQKd2yjWN>_K~gIODg4jO=R5tz0rbKTz2hK$GUeX^^!0 zC@+xRG9-7Bv&2B#*c+42p@eX$^@gr!dO_($OV-Ef-PDE(d4Kt+0*nm_n1o4HVI0R7 ztnf{-%P>tt#+I*}9cqBTG&*|x;v_qS7xeofY%a64oGi)5of8J6|mA5b$uq768hQUD7C?Egd>MlPzA7yz4Y?tGNzwWwYM;Oi$5$Y*e_&d~8?D zHEiJSPXj!mjTqWzqq8SZjvt>#pc-vX-Q-(hqu=*0!M)eY{vgDYz#wLs`*f%teFq%be#l3d zB-ESsO5X*iWoL#14>gj__f0jw0~}tsi|v{mofC;n%<|p=$l}IFE{>HGQa`kV-nP=) z-XQ&%AQ-a!&|!|xCLG|<+ZCO&+tzT?T}Ils?J_=zXUXq-LpAS*U@pCYCuc}m^;p^P z-Q?$_m`*05ps!8#g7{N&30Zk2O;q|6=lFA!y>3=5C;d3YtvSrvCR-F86f8`Jpe|{V zSLlrOW4IW&{pXzz?$XKUL86!d{3s-^aQkfAD;IhbFb$2?bO;#>{DHQUh`}I%P_>&x z7KPGBe1_S1zPvc|<1hx<8K}!#kQ}T?a~H%ib@X--aNN(hzwYMRZHQW*lOYi&DXJb; zT&F@zs?I?3Cssy5xF>fwS4aSG|#K~&8y#zWDQWF-^ z`PBr-&X|0|C%tmIi(o&A46n{I3G#;wfOz4KX=Um=GvfA(4+RE%a$3|UPr9sugE5w5 zTj-<^B|Jz^k-!_;E&b1{bvFuq6rmz=3j*}hWp&XeJty!7Eh%<5@ZmTdcMKX{0`c9+ zY$CM4aDc%x5?06!sww6Jo%kr!<=geVpK3wGaj|}TL5I@Dce(0uUzL6zdR#{L_po` zrhy9=EBe4nh)NpOss18|RSYcQtXd@?thPWUqKKL(iEnl*0e4dtoZbX|Le@LuziF6{ zz%@fvD=jKc(1kuy*|b&`4>bbluM5l-hAg=kPHBu%E(zrqJD0eMJ6Fw}R~qZ?$*0q7 zu`Ez_nv=n)#Z1Y>hk+2xJL%OT8_W(wOr3zun&sT5FqXtIf<|okrzFSiCdl_p`|mVI z0&1SyGXN8oeQ>E^vd@k;Tc9UTvf(sXvnd)D@EB2e$aI9eWldU9>#lAiw!xvEC#Gr& zOp-vaOFF=asbfIl#=E;|g5{o5$5)+^sNGU>g(xeyk8XTDE1M1&Md-!IIuw=Yxc51Wvvi&ha=y!U&j{YegWuR7s~(zl@&w9#BQ>T7jf zmaFWt*(da)qU}1d=)GO`VyoNiL|i}qgtv6EY=;HWx3yb}ni`|$8Quh>v%)G==wpn! zJbRPc)kwmNW*^ffnrjcg8crvse8w9r=Fth~tYJ{nkCDvrAdmsW;5BvMFE-IYy(3s? zo+Ce95qswMG2(GJ6WQ>GtEO$M3t%W~a^M>|6Q8-rsifmrTo`v6{}fr>>bc(&r_U!Y zJzg#L-epeB*b}=jX$`yq(^z)gbjjIyyIc^z8AUvNNrZV_F3a~t9WQ3FwsxY~a!dXN z>atA!&&0f_AA|3)lH+%$&yS4!L|vnp8m7JWJu*ZWfs%Cww#V1Ei*5p`-ZaA>=%Vn=` zhGXT`55YNvq#{xLl^!%zg_u6*cs}T$_QH&P55vX^JN6MU-UCV3YlM2=N%r<(i|M4Z zk9Kt-%3Pg2IUjfYMz|)>I4}*!vo0VvS^(wVhIvuL;QtrWRI_i*E~rD1O*{>!XLBZ5_Jw69vs`0LpLuwAoui*NvEP> zEke5@+cNh-H^ri;j3=tpVIYIQvG<#NFKJ>x(vA80tBj)S;Z2xSZzmlPVB5&Mh`M#gd2@wUWd zbtIv-b+Kx%nuOiAq2Od{Nq!dTkko|AlfR*I6{6YHq&X*jC9uLnzM`s%Cz>WW#ICnG z;6A^cc-$U=o_6A(oHNPP40`Hgle}l7TSSj6;WtLz7CAB*#S{7cvKB3^Hw#;{HpwcZ zbjhX?$KhNkgzbvBC=&35`*At(6c{HG*q^-8F?Oc-7;0ETAF8{YRW%il%i)SMp-q-~ zcui?EADDpS2+Ni{5R5=1V+m_9;LqQhE&0EgB4H?^ zn>8N-b$N(>^D_7mho!Mc6q2M}vvuHr%v^Cg=vDRri1&k-k;g;)cU;~Ll^l&$I8Xs; z9!Qrq5C$QWck?i3B)ml^x(i3q4ahdh6Fca^4Y-pNIg{Z_RP+qZAuv}kyqSa!)t$iq zz<)q|gt;aF=Wb{u-<>&oe+>2WVW1YSBndGAw$p{M3YN+cQ)B${AyiUyGwhm@WT|~J1 zI{7bldtfL)$NYq*b=W!%(zU|4J2(%+L*r@?V@VS&SHs25d?at5P-Ui?R>#@~eMugC zIE!l=A#*=2lVHZcsAnI)fSGl)mU4t@_}+zCxM{}W5^k3E)5wX2 zASJS{;^Tf#9N&brjL^{u7Dy>J%{s?C^swNV?PLH`xSHLp29#(O=fXiVX5IU|r;KQ5 z%=KM2hu-jmgv!;{xxpr+)oMWNNmMVOAKmRArfaw}G63Iaz*9%qep5&RYcyTp>L zSr}?tb=@y)3IYyg&NcM_a+Kt2N?**?}friBzYH%?&Y0QE&z5n&nIk zJ^uP*PRqd>f)}UEqHZ5^V?35D;g23;S z2q%o7vS%sbgB4((8AiZECIa7+xpxBJ^jJmdJS{t;)mBLtz!YdPhBeu|xg~@8L)nky z#gX1OPqgHHCvYkzPazF@&2b%lDIu&4WGYhV`>JpwHcImlQX^*q0hMi_o=ZTXkci-P zQOU&E2Z_`@;~>T z3^G?3S;9UTSg9M&>xC_qi$BPEh=U7za8MqYMz@fwAw>5A=2R#9D!#q2j+PoNYvxm| zFSo>sccU`Jo#(D2kY2uzh&IO|ZR-ly{K!v2sC|$7l^t*#N$pq)vVo2|=Z{Wj_hjM^ z2S&rYUe#`j#_y~f=z}}x9gld!IDxNx(wfCx>d3;*{Y2F_Dla z$oZb`aFp-K;M$vo^;b`!Cr4}TE$cp8>#v%8TH{|m*Sm8ad-+Pi z{MtFEGcqSd>iaH$BuoD7)8C&#`9En5Wc0sv1uy~gZ(V`z4CCbR|A^V*NPp98H7W70 zo-Umq_^k(Ahx~Cz+|YTtjS`&oUn;In%hxtA(-`ie{2rk4O>3`k#Oq<} z(=6jpvz!CHpNRq*e&ad^qcanE4>N`WT!%{>;^ifeB6MyHd60;A;rMBgrzI(81U3L95|daLU2h!+-=Af< ze(8=Q{?>3DsEBh_5IHin3)wGn1pKsIUlpqs&8%y*6*gP+ywi-vlmdd%>YA+h#2onx zDgcKDU&;V_Rn(V~Jt7+K1&wl}>Y~%Xz5DCyR}-vB{OswozrF~-S?>CMv92^>0cYQ1 z{+b6?v1liqgq67f5k~ovsyi4ZIczBMvk~u#xRj_69ekE6%NWHyoRs zF*}G90CMp_3!@Swdpb_tWo?pRCC+PwXyxS}V4aCzWqC$is}{K_$nDEX~+f{0pMP z3|H(8kF+v0h!qy{%nr9T(Dy?g&*kNywXC^rQ%~%W^hHr{E;|;7nacg*t7SW{Tx*w< z{3^tAb~Eht<4f@#m-49w1=XP4yoc#?N;1Sn&A33~F{Z`xN8clDyM;p! zX!sB|kDR8ORf)#g6}xqzi`=%>Dw23}Y%qcxMgPXkUlXY5s4$qZQV$}sC>2{+gmv{3 zrq3;Qs8G(c?+d9E1>(Aw?9m35UDwU6AGaaE9bdG!rO6ynW=Eg@^A|K$3ZR&m8+5|# z^#}m$)^w+XdNc5~gAwIT?cfHJrPH-~Hn_#$$o1enQt2IGs>AQ$U4!WwR^^(q#ETcc zoa-f}0m8Aeu?%RBY-a?D(|eaUD;sFb5rZ%~WG?7dztHePTtLjc+Qe}9sBzLMSZyq+ znNTIWM>kk(mJU6lE@NYkc2;<9*Nxi!Ul@bB$=^<1e*gO2Uo%?s@bO>XoQ8{Z(_VHQ zk7!#yq1;e*VwAP^Ax%#LFSbiuLruR#c$gh_L6P57;<-;#l@xjN>=|qpQh)T~MdT6O zOMr6dhzWuiCfd;B)2zkV5)fhzF3Gixa#X%{BGE%eS+=#!@s}Yi@ECnJ*5C7EBfP*h zvXOKI!U`dRF&m_d5Rx9?bH#UUmvGQD@Fb1XQ~}0D@2ce>T&iw+1?)?S3O_A9;aGrq zQOMNe zH_f_O??wTyhG4`rt$Q0}DR;b`&nO3jWN{m#kai-5kRi%c{S}K|boI48@wyR(1&paa z3}UkRO>wP-T%1-COPd9@cl;6JG#n~<(p7OJYLxv)_Ne*di!Vk%g&sBk3_k$`_;7Xw z4Tm1{=`-WL*FD8ftr6eMZzcOYG1<(*6Oy~lb}Q>|#Z5yDFh?z!9eznpyMVhy;5}}t z1yziTcoO~aU>kAm=<*$hK36!J*yT8gOe3eh1RFR-2Z-VKC<|D8!8y8ghtp|HzNXV8 z0UI-I#6O#@$vfAfB^s29ZiRTEvt5Dbj*er^Z0jn;yW8Et(_4PjJ@-<(+^jzud+nv_ zLMw5}c$(Xl^+l;!vc;Y;IJMTpVG5jSojh7R_1`A;3nAle<Li{1dso|vOW_W-%cxluT`0qmA* zOU|sLM$Zg;s-1WrJ1+vHtf=4Nabi74_nK$*nM^&J_E`4G3-mINkX?vHlCG`E3moL~ z-kBrQFIePsvT*nNbH=4`XB|@4T`yS z1G3ZIm$^5QHwp8D{?m^qYx*)A-!74wz@hBW=K~`fDY`tHK{%fBxL8 zKu%q5G4U{+_Y8TWWvTg}x?U*Ob2>~*!z1}Jq6O8)2858oRB~u>jh4dZm?<`xa~%$^ zTQ3d@als%`K1~%0P5k*fB|znM5M8klPa3;q?+m2AX2Q_r6o;Lr%@E*NBUL zMls0iPMyfQ;uMg~-5j!7`1r-;WqX(h!|B9~da;i@fd}yr2cC3bSF08D+U7V4(L17v z0UlFrl!573KGgEcqzWLrTUbo_8GAz0B-R(zhVBgsNn$M1BtU@=1(`1h2F3=gx12x# zD@joHlN#<)kU$^izThrjlOo5@HP4;k@ZflmT&H!J!(BQYoc-^o$Nyd&|Mckizvt(l z4#xOFSmc`Kryj}jZ-ff>pQ^f~^2-27plUjT8NY$FsARK z!Sa5IE~?x7Wer?aHJ7ja7+eU9i;t2u9u6{GsC>|IsoB4(Iv%^QbS7Di^=nW^;zjR? zHTT7t$$)jkTBl6>U&(QpTc zzQPGIxfE$mh4ru~2y3#Ls2$rCmObcjMJc4MtGIdeQ1cTpakmCClx_RAd)TgLkAR zL{kHt1UxHJcf+#;3~`8dNh%Fwr&Q>?1G&0yadz}&=|!DwD}FnJ)eduNK>q_2S+~o5 zn%Pf+m!9g*F()gaNpwPd&c2CZa!}E$lBd|8BG6y`&+_irmsKv?pO7P z1D)tWu&Sy1?5twHW6bO<6lfZr1bGBtk`C!X3zN0a*dh~i2-EF$Rw|0&`j%LXt6}iLG>X&{o7~BZs~Kc4~ng$wpBhaXU!bggzaW={D(ouDEe((;rr** z%HO#kX0eX-B`1I47%mcLMam7llu$W_1h`u4qVG5BW(%?xNYM@6fvj29V$h`CaFI;T zCwH@3m7%c--T~)RwD9uNlWc&4`1u#n5U|bd2|O66D+w!T!?mRqqClb~Mof^AX!jlq z3NtY6@&KdaGne#Uz1J!CAAIaNcayPw?&->1Y;5%H>pY?WcRTXkYnt|xUp>*V-|l(7 zC+X=KOlRWJw`ZpMUZ<>OSj-VMS1YV}W_ST=0OVl6zqJns*{AliBw-4vE;Wwq$;?7U znIaP^#<$%6&kW>u>tCo7m$ue1P6f8H%K=ThhRK8*SC|xM6is|Wa>z;6JxVewFYElU z{-H)52L9U%#s6i$>-)+G6n$GRqi|okEj;sl)w%CkA=*t-22Gvt!Mx8=3=oBZAQ_bMnN*fZ zTsni{;ghpyH0Mbx{?gBw1dMU^XdG;53wO(ANL$&NU=Nm=-HsQ^1OAxRGQj#4&2wDJ zs&&kNd^%q>o0lrEl=H+16$8LZ4Cy2#a=g15vbMD;@F*e$-kknu+VO-j6#o@Q6#IVv zR~XYmBW%%}*ME;O$#^dc6)#E<%NGeh`c1V6!6h%Fz-Nxf@F4g~55mJi_cp@zd)>!+ z2E4~}%srlo15hkOs1M0>%(JqJNA;nS6_Wa{wtI~6bm_5A7BlDqA-!nt)XvXs-ejEwk(3oE_t5YvnA%= zCsYQjS-@+u2C4J7%3DQv^s*lgDoy$#gH4R~*^~c2jQ3B=qP}L4RiaI~Nq0trU$O76 zn)+BQ7p4msNn*u9ZQHM0qo*1=E9+$61ug=jL63PMrT>7TXojq6@h2ssPfk$$cextb zf(ZEI-vSa}i1s6HRBz%I<{ET^TS%rJ8e=lUuY1OBnTH>T4-qy5r7WLbUZQs#mEm>g z(H-CbbQ_GgGc)g!n_8JW95P^DLCHxVc;3L$}Ld7|`wv z>tul#cqobzOwrBpDXJdfVieMAh8AqN_w&P0*m_>B0A+~{5`WGp4Kez_E=ySDli!aG z4tQokb(N`b~8{2R+2spn3 zvB=m`Qek-!~)q1lnmc~sposYK1a1in%$;J_T zN{rV8&;WR&q21ZwMHGj4gt^8jAzPV|=NDIP*{;1h0Nt`KFo#mh>E6-v8RmBgbGKg9+Ii)pMvN}_RV$!gM7GX|fD;V9tjS-UlO@t40GzkK!Q*MmKu zubXD0o?3AuuG?Ur@G5i~bARM*>PI4%3MK*KEO^~8Q%^K5N$0<3) z_I~j=6of=`5~=d{O0yvVZW({SU-onmv{}NE@Y~E-tm3(^;uBD1eKEKfaV7@>f-X3Q zAEIiXhnXhK^hy;>EI<-E#PXxk%HeEjt8xhCWaqq-Z19$b{%6?vujviy;P@H(SlZ_f zgvPxg+E{Smc;(HE@|ml#lhsel>SA(JU{9IGb_)@#r+< zegVv7fR$_SdmTt6YEDE4tO-RTXu${!HwT*PP0^vT*V~yH`>{Uu6_v?e7B?63BJ=q0 z#PY%W@kLNzF!;#BVKv`&o3<3_8%rE7?SF3M|x?12Oq^be@RITuU zQG@JaTP?K+ms_zU+EU9Q?du**$DgoOSQf3VZmMOmR`mvSFRD)G-RQn1RVS9VVe6W? z$f(pD23T#-3m>NV67K_MFs$D*6+%wM$^;^7MiC6i{Vya!h~8t$tl%sKtSS?Q)oz78 ztIA5JK8`L?%;=j`>82|ahdxXXfi%d3(#46XN8}bMkpUCK zPQ&i)X~_wLz`v-D(Y~6VE{or6L&}7$Y?~O!pzavSeA`}8f%&P1!EG|th z^`>tn9_U0o`x1wT&MN3y>G>@$NaC=Q0fhJ>2n^!L?#AV8#4%EKIEt^$84_@O^h*>) zr~}s;?nE299GnN|cuuq4L;YjSeROLJ+2KfAOXl|TS1$5Q3QZ6?1JM3a5KwT#y!RgsDf~ z%Qq0D=#UT5@1L;(vvtAa5k}6VtE!&0c6$*p#YdWR*Oi7(P?{c(rvZ0id1-S++(?&P^PGSzlGP&uu{(BC+8x4#aQx>-3!-eycz!j+}H}b z*txBdL)cRbizStSvgGbsi4gf8xzC8`=)LzhqenI_&8{GD zSgdj2_I&=_$wM+JAiGIMm48aT#~+5MDKMNjquW<`PotAbrJZQ*0_29f*S0ANzH$P0 zPfuUJd6yz{ zFJCih8yq%hNXJpJi2(oJ*2}8CK6Gh5JW(4Y*Oq?3xW!6X(G$&Y%Jn`_iit`he~ z{!fB7hh4c7kmDpq6xU&|^BeWw=9I!>$OB1QMm&{{KgC>H{Au`VOB91=HO__xN!_mz zFx^L+;6uOnGYQu&S>~D%^3HEXJ%YiJWFPIoF+OuuOUeB_sC4G)UymaCbL69qFUlEG zHcgSiw|FI`v#!e7HI@&$Xx^7;Z3RQaxM5mMD-d@VEW*z;ESD8%UM@+w?}DNMz52Mh&!odF^PVC1?eVXkr18h5k?%tfq~#=^6%?#{yjWLdJqHdh%Hi*AYB|>KniLno&q{%S30(4J|Fg zgx*QW=otNs|JHUw+)%rrL7@tU{zdhSJa@VoH?@28e8gvuwdX;uSE@e|FxBqW$sJVH zedR4CW}BVaB&u0VO-vt)*ezEk5Dw)e{4R>ii5d7v1anU8%=#y*k2$g6>^vN<;njwN znuO-bvbt!=BM4nx!@k*3C`p#PzUK)S=5RbYC2^d0V8qIjL{2;*M^ewjDwMj+0p~0yvAZ~&it@yI^~5Rw{ZZ@nI#nx6 zU?C|v5jBKbmZ3fQkfg~nsZZ&I0og^fR5leGSH{m6TILo}wI zfGt@KN9SDxaXSZ1;osB_<71B;-rC&JEOsREKpiQ~Q^z~C;TbDx(_&PQ`MNWrSm)9i z%|6JX?XC|tSwaF3xesMbbxAdzZ9jor{}Dky9c6DAd4bxheQ}Jjn&cnT^ZuBlw2P3_ z7w7Ib6jqIL-y1g3iuR3?&A|HUmHzrZyMjv{Q>QKX+N|fr5(^Za{ww>6utx1AP zYSK0kAFgY~$wDJu%=Pfm5vv7rR33aveekd4P73zCYW$AMMmpT8Od0Y+!z>ezR5iJG zTj8@(*0Tm908S*#bj-|ndvYiy-oq3VWw5lvKk>n&Jh#BL3lvoC4)v>U@&S2aHaGRX zD8UqpwK_<;_s{Zw7Q;EB_LIzfJ;Br+=-cxD{y+cszzm?%;9~H@hjQ`5hYS4we9#+) zOVJ?F*CysJTrkPFfB3Uo`d`BQSFFxQhgs^5!uP&?_vhn3gc@vi*6qo;9<=PF2JOMh ze^}J4P|8!7o1JTz_sdJ0V62Bk9%awb>$O=?st7cunwQ33&yY;^ZF_~D z3ut}927X=9scypVII%8Bp^Z}XIhd&e8E4&ZFh5i5dq|ukaM#0*Got%`boS^xfB~P| z>QdAvb!ltcp19upQ91D^&#dCNHTwLO^LW{#)fD2JT+QS6AjYqD_}_9fqrC5Tu9U)z z)WYtu@u?i`n|_W#jNTaJ!6s%cShx4mF*_GsKcN>_AnV6IqCNqF_cV4hx17ZtCjntH zpRjM(%Cv;4jAwLnqbEogG{$`vnc;VWl&z8VU)yv||G@_?7mBvGB+|iPXXPkfw!69k zPQ(Kk$KdwGxF&$d@S-~_cDFv505M*INJAzfxB}3v2yV!rsP_bmr-C4R^7Aj6$jNb= z{K`#(*v@g5_}Y4oNM^rjqS=(aBch_jQcFO{H`A zQqdwC1`r9J@Uo~?;5?Ya3$&FRg$WEtWOd^$Im&BQv9g*_`mLCc(qgm>OkG9kss|u|MZ>l+2FCEg@gtM^k9Xp zlG8K%XCF$_&mxiF{UO} z0Ym9!G}it?XtqKtLGJ3tcJ64Kiwae-JUUHbXps~f6N4ISaew8U;UO-4gk1Y4oP=Q6 zoY)y}AI_=hpBU*_VFx-Ip*KD1nRxF4>LU*M_oO_U@-@}F#*bOB+STM@rwL7gLuhBP zd)O)Y2Sr5fFO=7svm@hGs|U~}Peyt|=feYnyID!j#m*PZhC+Id5w9*-ZTG}JN6ohp?MIPzdF zDKY!p%q_R3w=Q0PTM^BX(3v(Lalr?qId$6yGI{6XvP;r)+w{dgrsC0U%sJp8)m}K^ z1jaT%&#nXqY)gPJO9fH~12-PYq$iGJ`J$bzsVIQ-KyKgYAqteLl{i?^UeoHyH^IIN z%e>@VGd3m$VR~l`E+@WOQ{@)v&ayD1gIN?@+03jNeWP46FOeI1QG3ZBIY_6eV*bL$ zD>;Z0znDD~NGCHo=#0Aq#iJLxSiAe46jm zQFt4>%)a(hsX*b+DTQdb?bdIJRYMIAzHzyyX}_5phj&H28{QPFA-#1>-8cibPB)Vh ze;Xce6o^_L-vYFp(Ajoca)W5vcWJ#Xx+19kguF=bRNy=VUYoZxgoWJt@_k8-(9Nh9 zQaERsF@7T>_)k$c=3Ga1^9;4?>p1<#@V5Cr7I6 zM;xWKzp)MztI41oiy1h8Qr_6C6MM2o_XSMjJ25d0PhD9%vO{5Z9Hdj0PC%Qs{K!#|%sd-me3`|H)~7q8yM&dF+bGGUn%RzM;37p17o=B!J& zEq2+HC|k_hMM1*_cX*4z&#+2|k~$iVj-UNEU&pGO;YFvHuo!k^93`4Pbj2c^#Ck7511H*#E#_Z=e|NGq0QW zbUp4(5^<-b>yH%;MlK|;Ai~5hSaN$-o;-i?-HWeZpH7~?eEV+fC?f7ujXsYQc+Hl# z1UX>N6st7w3Q|K>^4r9^!8c)gf!Mf9nOCsp7~aQG=srF^p?~tYG_>w`6}z?h<-&JP zKOWvGsi~>pOk4=Zjkz0TtPm2+8xlV8jpBrNixSHMQRPwC&7cqelI}m`qLPa)jj2oD zG^iBgS)}BV!4WS)u4hdZA39?Y6u|!ylR}j+TXNW64Z9cnI2u>LP1Go{87Slel+bmo zt}g-FGJkoqdKv0jL{@^2Ov<2Sx`qKBr#}J%UXy zcQ=;|CrL|92WV`x=`={0Y&wm|U?T(bAT-y?{~0q)Vo;%xW?4}U#;UbOcA`MNiy|_! z5;iijy(*-nViBkzlrBwG*nED z08*-}{Bc{oFP0Rdz>soaY6Fv$!53Ko3^U=cJXab9s$;)$U?IUHx54%9ERV+`#ckJuFI zjW0c>k0ucj>t@XwDBr57 zP3Gci?NzYee4>5AD|G=mOXy%l)ok4;Ol~BS$rXY)TeGGlt$6>wSzi}xa!)|8M_+vQ zi0+f4FCKrMPOs7%;~<^pwo}(ov@lG3g^S4Ej^CqGgxPsUOu3t3kIR`yXq0%Eu=zT> zHE1HPIXd^23i?u&UO+|9uS?qLIdG3-1CJPZWcDx0Y`el}ORpA8EGV4pjTEev^+V|k zujw&xF(V&AmAYE*0%va6Gn+d=^N-T~w*YI?rnvGVHSgp(V zSVDfeJC@@!Psq|LV))@Y>E}M=gEvBjmE?vpTg{|kIO_Gz=`Lfig!UuP6?TtM@6yQ^ zj@cT0{H6rL;{7>Uw>!_8n-!+;hO@Tx8u9Lnk=~$p8}w? zK8DfVnDeBCJz$q{XwD%myx&3>v)+@9t~cw&!c?+dY!Ez5Wh(e*r!k0rxJ|&XVv(2x%>?n94H0$t%^E< zMg4gVy&?(m&rwk*K=D_u1~s3DhZto-fgmo!=eoj*c&qIi_(OK~HzTwO7qMEhQ!Zo9 z1D3twl#G+v?(()GCF;x!Y2-|dJq@0a8Esu$-V{$@VzcIbBtt!GYA(A90@vy5w=e%K z`|Q!9KcJaCdqxn)sHK_R&a>g?BUN{`B7WVV+TQyiwR!e!tM$8e3dIElst!llEl5y! zrI8Fpma}DbQ*l+?JbQ|y5f5-fBpG@XdVWi)y4AY5D9~N_qTCQlR60QP#>Hb#E+m@h zm2U!0O8_0UCEliNySu<(thTzWwFE@Z?&!eXS`uAHCQ_2}Q0O2p`+%r}cfgW8>5v;= z%Zi_%&iYCB){>EMn=@CSi^&kPY8p0ZZic8ekWHy&eA0{3agY3g4!FG`L;GlBUkMMfzKTv`J7)XKW9K`SQfgxH{o zyZcm$I-ww@aI-dkvyoBrA^rxGgM$6oz)7|cDGEc0V}IPD1ZGiImb_*>teC??IVoxRJR)Otc0q-3=-Y=f;5KN7WWkj*X>D4{!BHw_2OCb? z1XDp{c7u)*oalUlC2se?KREd2_49APenEsF*Ajc{!yj%x9sZERe@74g>2Q>DsusZ3 z$*ZT|M2-1u=nf43c=|sO4Zb@2-^b^lj?8H}##eB)bl=e1)ehfNKw-LtgMqa5tNhc* z_3)1e(Xa9k3~VgNH~;R%n?JpN`y%@f{Nv?cUcG+v;@Q);FUAKtLl?S-`nFR*|Bb`V z*KA-~mttl{33J*y@aohhEH_GCDcQuh2S+HkFaB*=tl z#5*@MFz%|0b11djRqc=890sF^V!4HG1P;SCxK7@izrtoTB{U&W+H3kN>Vc=~n(&`d z8;JmA|3AN;fd5?|E(C>HR!=mis+-5SGx9L`ksEJ(_OWL16D;oPXrgc1jD16}Xi<>l zv+e(E+xCC9ZQHhO+qP}nwrz8MbWe9oFD9bz>TYUNSe(qNOwfKNvHr0cUh`RS`jY;& zf$-9*sorc#1MS-0jr>s+`+^@Mo`LpOg(I?T8Ej-hKQ$?xg~Ka>`W_I2_r3mSnxB+!Xf?+Z0!n_H^Il7-oA_!GG*>w^iFO4dFAvTiTqofC% zXF^AcBBdEeJwy4(gv&PaPXlzh8sLPg?_&paRnvjo#Y;))r|li(>Tvo#RjZGGE57)~ zsChHU^HmQf7`KYx)@=;a^Cv0uqKHtznUhpP=d9yWy#wDyrG!ei(93`(JN6@zPvjED=Bh%`SeqUt&J?GbZCAsoHdb&BY@_Z9q3KoG zwC-HyKvLZI%mR&deyp}ocx4Sfz5|>>2mC4cw4~&%#U3#Pa+IlZ ziB*t+sGcS9WtpS_o+c=_e*Ghkt&#Z?m+Z*D=QS}XWjc(L>tOcLU|;zU8&=C`+Nr*uzN{^bynn({Z4;SdKI`soMd#9{kBUA3f3>-wP*A zLkkxYw@S);Q;y>12_J7`m;wlynJ`Y$f{B?OVnkjUpli}*N4H`R7{!SAIWIwUMVTX%qC0kDjV@^9Q7^_z-0FTTLy?KtwnsL{PxGap9j@{_Cg&k z?qz|KlkRejzA<_b%6+6dbBf<7s2_v~6hTR0yR}Hia>K9{{TQA@FM`ciZZ4$n0qZ~| zaT~DEDFJeX!`*@n1z)WQ!eq}}vv`Ijsv}1mN^`S6Wp_C;qyWep6HoVt!1&!*OhxUk zd^x=Zo$NSaV{V-$zMD?(0)j;w8lhQB!#UBI)Du7=(*~{{5L5~eQ?QlG6Oa;fc*bm6 zXo|Z58I1YWC5`^1sV?QiGRinOrsaj{TZ?R{dBP`58p-&?D#45-`0BITQz8q(&X{f+ zOuRG#{_@iATTJvVSbiDW*%(<;Kv&zU^)F77L3T5EWzp_9Jb}w%{U%LDc$%VYYmQT4 zu;;V>^7eNKX>;^n1zK;3>rvOtezrDEL%eui|cqiZ1DBV4lK&;p=0X-xhFz+47SEgTkVeKBf&B~^9NlxbgYDJj>3hSCV z>N@cI^8PtVY@rbrJJ{(BE}Hrhm6N;ah)v1@FpZv4y2s6g&Uph-vKY;z<36A&mgBHB+1Pz z7~e54*sq5j0&CIAsT&RKOwbP)94<)B4iU|w0*xi8U_{G?IxrUn`b6V^rWC9B-Pe=I z3<^zbX_&!TIW}_fH=bppJ`~d#+kUx&;Sj*AtvsvL`Fsk%h2waWtl+FAk9`}Q<3uDI z;^U4CX-g0h86^?DukRrn$WzdUpW7KSgn^cy6X;T@r2gY6I;SYUCZcxJA_%orcDL65 zCqKYm*q4gECT9tp; zwEl|7bXmO9kaPA~Su=2J^p|Z>_EV!UbmS+I#nF|&4d4J+$5oiRM^Rz=mWRjZ^nvXWZl`0`Ji5ns}B3@$Lw||wt z6y#Tn5?@`@w+A{~^sHHsY(f42^>dOOB_2-5OWrldsx^c2asVO|AO&Mn^?gx%f9lTHz@nYf9c=6sK3HQ$H!V`lGyCp8w)kW*Nzevo5 zl=UlL0WYf`*8r;^jbd8>CQvSx3aoQ?7yj_myf2QVJ-;b&Uh|7*X^`p09eUSTYoi2 zp?<}0!}fv2^ifAFY9T@9S)#Pt&RH?!qQ`u2v5jgMkg)F-h=@}`B*IYiWHRGV-q~qNCUg4rKC1?kTX9T~ni3!1-8YFntj?uzxr}APMAq z1mH6+mhCah-W6#pTEU32o@1%>0P!$}m$G}7Z;0A3-+FOE$i<|Qp2NHUaZp9};ZUTk z^pW#>c1S)>7+g|j)%1%Y-?AHwXXLKj%1B&92=)ng#_sAhL2L-(sLly?ir!Mpy;?wsL^srA%HSu|Om! z1X@*t!O;>$7MUos;7O6@8>=amGO(I!mMaC1cWaWrZ^grRgZ`n(J$&x{qfw3W1LM;o z`j~3<*2w>BEG$olP68*91ZAd|hyzdeib+b)nVHn|aAiB4a`xvK%;v-q0EW1!!0mto zl-OQLOKtj!O4l^@L6k#FkRWw)V4$vYF-x+1M=8~E zBWq;85UoKsrM$j%KTZ!&l#=L^@R4t6Y~F;mhx7>)0{Ngf^x23LAb<-7ScHJ}U1wlh zi01|QR&A^k9FR@WxZJsqI}xkO8o#WhIS8}+kRSAzp0p01e4~%>p*pEjBv11zl!n>c!J_%RYL37vAsi+nb)h;N{R02CG2AQ(`KR+5_2UwRxg9)m_P*_8tw_r^r z9v688@Y)?9%s+MleqBuqTJPmzY z64HKU3z69fULssIR&qPfeqKZ1j9etBi^`N|QeLu5WNf4$FADP^QupLBtkm#d12IiQe(5%3J+7hdon48^&^wlUyX1kfcCPl%Yj zQ<)Myq+>QR_D&&sGh9eI5P9?fnaquYdK{sHJHqE9{hjzje0m^CTlOXRDdT`2$fR3k zp%W0*!GY%#1pLJmPlxZ<=>jqo)6@DjD*0e0+==hZ^?ML(YxMd znE;%D&YF9Uey$EdgjlXyWpvk4NWtp%8tt@i!aA`bO&Y^dzc525N@&c{(qVAP3(VJH zL9oKir9`Y4uCPGNiO3_LWSUI;MZ7jucGu%C{RNv?u$A}7v!&En#Q_CkduN{3lTwm zCoNW?HXi|%2rHI1@0z&+PO4vlT<0)24p2oI(68Zm&RIS3CKP2NPCY7gWB}o`FY%JlPlov;otw|1Cg?`3cSorFJ#xqn&L|$lH38ZLqhqW|M9!FQ=>c|J z#j>Sh99;hVF6a`aYCiI$NHR|}CjAdfN4#bl}Ki(*3b;()YTviRLH<3&6c(toiK>W2?-musI`jB3cHvQ}JV6T{cO}_lTey1|V)6u?!Rw)k(F&cyZce_!tcYj{(5qKVrBNqM z`im4XZk)}VMyTBcId#6Y(gR~PM{VbCzI5$zt!v%GsdM+RDUJ0B#6MkHL3&yA$nkZC zR^|leI@uD7+)JIBQuRz=h#ZL-I_@9`e?!9{^;$|4VxU-K4Jw3WlJqXn+V))w`P|DJ zdJBJ@{a=uC1rhU)vSrN4(^jOGX^nYStJ>Wyoaw_}b0impB@#oxi>jw?EZ zy(cWRSuQOa4TmGrf9apMefvpneE4(Ju!njNp-4wqA*{c*f8;6az$QMK5=A^S-L;pE3%+-0J`kQ-tqZOkyLth?DPs&40 zm=7q>U+QKz5Ft;HXRGV|eQ>SmjG!N3=bzk29!hx7zZQ)SS0=S_ul7uVo`3F^X6S+WVK=ujNVapQXlqEqIiHd)QcY3}M z&SzUj;&I+~!mZ+Kjf94=#nFY6EIk?B4S3z3v}-o=g!9G3J=s);B6M(26_G6u=NWF; zpA>d6)#2L?NlBuZWAs_Z=PS2Z%E+!SnFfE?$_S|lQ7z!GY7k}Zo?5k6%da|wxq6o+ z6MNW#nd5~T^7#oXp#$b9eDjnm<=Ty@qedHk-v;Z zyOJwfg_F~QXY|9wJdm0sP4kf3_KXOzjn`Cp`}pLmeyj$Kxo_xNuoT@+NH2tQxEb7< z3x^!$7Ua$cMTIg+{WKOYFkz3~%L00+3SgRMR3GX~E%t4-uR3Kd+bJ5_1o4Z(RB%SQ zd6l{QXSPLhZ0*=S3l42u%nrQHPKhK6ookcPL1yYr3{#{kAfp@_TZkfo%icUARSG<4 z_Mc(OZRDZ5D`%PfR~$HrLU}%A0O)wFNo(m(&mtL?XLCphLPITL`63iLs+~!qik;nN zY|AE+I@wCIM&KybWpw&XehOQxmmJ4;;Zzd}(cAdElBkO#6?;G!Sz`wrnF9P2O6U@K zBp7^x?U$ODxc%n(g4tYrg^&B_3}04xOQ!TOPc{FvyAFE!ib$>@cbl6ZhvstORDC%*>a2Uth z=K?Ue&r*Y9o2e>ijdjG8Z(nT(O@Mf+eyYoztND)*$O5)bL zWox}H65n)mm6L|PbhQT$0|7Y)S{lFlonlq_WqaFC_v{^g&f7?!4HXG56dPSZs)j=3 zYWL1z0h0hk4awo%l-)SW&X8Uf_s;U5(y^_&_?{KnrgG8>++BLtsfBv}wy9a%7#fbI z)Ac|}c590CkFlD(WTM~Z@cMq-P$=f0|6UINMj#Wz&H7-(%rc};--WvW_&w~w%#QFy z{o6k3Hq`}&j3cqT`1g>Ca2FwTLlb>j$hmb!Q{KCeZj>#zupn~jqJDXY59KMSJdl>B zQ3vdtF{j0-llCnt1)}?wp=?bdG(zNbQ$?GN4C<-jN_R2ka^5KMS(!!7|$%# z0kanSh+E6a^p-0wo1LBgYjB*nhWbeEdH$7h?lY>uWe`{}(2z_+F*OYHPYh!mp%*fC z59$xxP|zao;W%!b%J~)dPA%T%_fI5|AtqAja7xxjR^v{G*c<#fM7^`ZF|j#>qkZNv z-BGO;j$SCAqf1^tGU-Y$ahukcek~EeUTB0ok}#sb-LKM$*?F`G?mfXHR!sQHvL1l^ zImBtI*XTqpo5r?^9<<3x~O%)Gbbq4po+QFT+y5%A|c z=21YV+}9_gCD>()pD`bJtd5Qn6+ zsnekJTjd={qS%Rpt+yT9c1U7<0fLP){rNrsYp(z)CNT>I?@3ClDh^Xk#2Mw;V&>Nc z^yDk`d(vU5?9Qx3`mqng!XlA4x*_C!OrJ`nEus?k%h`kM*opfJdd9JVO$9w$t@Wo1 zsQqBFyQ#;Ti#;qCnQ5Sq>J)gSwnhPdMGDfRE^aMZ_A|XmH@b|5s*w`aj{G$L;c|1R!SJyjxd%QBe zKQG=dO?Us%0?VD~vrKvkzaJm(slw46w3vmv*T(AWeDdo0hJG7W-noM zja(WZlw)bU%`{@WAk4pB?2-9P%Cyr?;Tl`PFd_bJ+-v%?E}n#csGfvxD7z7A|(_56wZ}Cl5%hLTsLF$5wor7AK2s6u4#kpmBxP9z2$BzFOK{K4yg)l2Oei0Xnu>axyG917XB!oqmk>Z;vj&X+0bcsKb| z_I^s&b5>`s_Hqq+Z7T>ZdO&(Bi%n~EkB9fv;lE60nQ$S%NkT>&tp=kWqW z(sQn~;m0nv03HrRrRLE%c?91-&5Sp2cPEvTCCRI-wUQtpVGE^z49z}A-P-REb}_w# z>`>(gVLS@Ef>NaFegaBD8K`l~o|MGbMUH-fjsF3Tizjd>uW0hM?bi@`h2uSen&k+wG@90H+x9BAQk#|_{EI<^U0Y( z!ztrKJt6At4YJhv8Y+DJoy$x1BkQR&t%V%S%zn&W^0j?ia&@LRbXdg8F-gBA!>V(_ z?~RC7?x8)9#}Z%o{sfcCy#{H6zDKtz)M(+pOp~GVp#>q zk6#*_Tm$#s9*kbB{$a@tWAcErOw>wha00pV8m#-6mS0cGnF86L0?*hso_gkO3*?Vc z8zugq&{103Ka{xq0AMA7+OYE`uE9Lld3=5?Aq329^v}JGDP}5G996EO4vu*Tg@l-D z2LT2J-3o@?+9?1Md?}n5{F*D0dT8q_8`Q+V!4}73JgC!=^`ZF17b8aE#y)#WZu_l+ zLN3%mK|5~?jSlwV%$_>5m5~YV4n1c6 zvXrr#2i_cb4Bm?^Wa(&M?;*Kk{k_~+Qbp5ySqZjtw_miU2a7sSSPwj9{{|9m^=FPq zf+y?_DA^^u%CHDoY}hsWMvWSS5tWz4Ss(<_(z{~>O03vOynjUi5|vWG|7|##RO@fX zc~Xy$$H&46NS^6!oISx7eu0Rw>zpV;jAXl7+<|hzxACAETiO!!LE%Hf(kW^JrM(u3 z^U>!?MqAOJ5@G`f;Td~I`<255Se*vT_harWMyc7%%cN%d8!y`fxCzUm!(l;A zyDVQx!1Iu_lu@=EGkuLMoT%!Wl0yBc;>&Ba3vP;wniSbr&Gb%^>WasaG0ig{q?Azt z?TTMsZ_!l`&US!2ToOXoc+PQ?JL7eRv(TAuv-4k0ocH@%g~UYOGJXS_F8Z_egP^|) z2RG#j@iKj0*E;B*3PW9f5|X*Fq4r`u014A&!trSm%ViyKDnA9BkKr|s;D2oq<|_8k z7wvc6_2Y~fd=$OHXLx5j+XrvFzx3(!a~7p{U~S|fW@hj4j_`+G6Ram z2zd&&rz0F9lgDSSVM^;Sd6&y`MW<6>-MWb5$%dVu~{IK+R1hdk;p$s+*(c(4@ieNu;iYVz&jwE3dMn8veVj8vVhtlzx6ELLw{XIs0RjqJeM4$DlbQ(cWB zlO0@9+g&FxaCu%8t!CCs;)?G4{>Wk|Q>GYqNAm1O^3baBMXAM(a$~v!()VTEuf1xK zy$t9{Mzvo)^Q1m^iLE6|L^{40V2mDqn>g+b4;EQ=?w6$-mO>8JKT1lk-h1_D<&7fk z!?Z;^0w<1sg=B{^pntY`yp%Y5%?$WShhU>2g-Q((XaUfyI2wdL^Zd)Z)HH3vJ$saa z=TZB=#T}3#vDnw_p;&9tsM24AnpLj0o1biO&G5I+otc-LM=~rtjoMnB>uYY`hQ`ju z#?DsYhkoccS51e5wyT0+-mA-SkFSu={WMWlsE|o>LAF2l_@o3Z`eT1Dg&xUaw0L8X zM{R%H+@WAvO$bj4OVFR*mT*Uia!KFpzL16L6TEgnGZ&pm5d+h*%E+#KhTLN#FWIp- z^_k6FaQX$xir@}MQ{V~F>x*>Goow8Q{fcAIp9W<@aq2c?0(s2qx;<(TZ&j}=zDb?} zHpc#}3S+aV+1qvNlq+>1LZyeN&!y&OHUg3!@1s#s`u~qpR4Q3RoN%bXJEYr818?f3d<^qyX+&SGGQIU1+7XrffSeOt|f#6&u=szr`6bXamffp|n6AFgTt zTh7IgN?$#U+11+yaYB1zDoKS<0iQaC&_A=&YSKJAhHLkn_B6^mYr2nXgrJTJ_U^z9 z?jAaglI?#ph%anNSG^=9_XOMKKkh3a*X%iJ(a0}WjcVa0sq2SgX90o7b*4vg>U*-> z3n%{!e5BuljY5(E@@H1)O_s0Fl|SRx!@|zuq)%+9fe4t>#3hsO`v|{ntVf2I4`~z3 zqCkJ8|L991MnH0=S)~BRnHX%>m|n5!7cy+X!N%lGz%#r zJVFjVf|#0S{q{+kH#Uupn&QGvXnuu8jEzS zRGlE<-~xmm9m_eiES6Mu$Tf6Rd9-gjw3C5ZQ>+(QcQ_bBgq(?q3QU~MOTLN4uXIEB zdFCF#M^%^&dq9;t3lJhWwEIH>I0)h=1t9t}B{Ez%g2@~%V1h)-TUS96?No(MbSjC_ z-K6V>IQW}lE{tC0yMUYqKs?Joi9XB(HX6*~IH1@A5V8m>l*=U$SRO@DtYb<$hEjsc zZK5haz~pXctuyi!fj?8h^LK;xVh6CkAKMJiF5D!zhh$DETfqV_mQ3F%x{=HfGw(dM zFb>}j1#>>WhU31^yR*b#nA)!L2+@cAuFnOq83TtoAiSL`hyxlUU{7%IwId#RI-}hm`D>#pmi$N1K26;i#6xlF!H*w7hSfD~e74>H~^{~*vI8+%nl3ZfVP>!$RH@k#&Z zyYpS+-Z71X#8Mn)$qSHeR^a@P?k$k5MiIgJnh!)5^Dx56G?>9ASO_qk-Y+0Tv7?up z^P0Q!{YjC(4S>jj0D{DL-~+yW1Lnz};sQvRwHrf^PXgHbUD(6 zQV{ZP^FV2Kwc^`QWQQ#j`+_7C8(K56oRI|=bU_=K*F`^I$@&-#)6rV4(A3m6IOu8BZ4YmIr!rd-mXO*M4&z0Ho%OeZ8cYW3l6Q_Tpw_D5BFgB#OvSBbC@5 z=4av;BW6CH9)A!8E7BF1&$e`lk@}qR)th=WoZY9&YtUvlxKGg2V1bJJaNAW_V463` z51aM!S1>y?6WguW)3YXippR3D3Oghikw)ZgLCu2EA3FgxApiO;&=Al_l)OTi;Q?N= zftV@krXlaHh3hH7gi%R}cX%LX#*s*igywJ!Ip@3E1*^?N>2cQSoOn7wS9OchGZZzW z=9yY-UyU;RvWCgwf%#kK^F0;X4K0+pc)hd?LpdxOVVcb;Q~pUI-Loi6i;Xa%AOp-{ zjVA}o)x@8#1;~wbA1#)*-1h-|6Bmr^-ys;{gv_vkyzv1{=8Tx$C_jAn1%9gA?TH!y zRD(l`V;v6Bfv3)f!p`fS)?yC~4~x)dOY7l)!oD9wwKV5^@JG6XK-f=9LR^3e102C zO=(JS>|$&zV6U83YI%tge;j1;y+)0Xr=69X^WD@H)TJ)iomI@W!saMdRb_{k+EmvD z8Re^_*4j@UK3*m3NKyVYv;Yt#!l>ShmZG_IV3DRZty_ZNGAjI~2IVO=7;CNub(=4# zuRhbBYmf$IX_++WcEwuSEzko~BB@InPcmG)X(W}M5S8HV-fS7eQo`2HF~jST>wq&y z(hf}6Ywy)3q9fOlOS3>eT{!utdpBU!gQfhdqOl^W{W!J$GapLX(&TpGFkOq2aydiPKhgmM?O^%6YxcGAP`7g6ACK?3+LcXt|TtYht*02G4aFPk$CBZ zTmb!=LZ?rG$(j_b=UGwhA?^w#FBWL+>qSF61g{Gf8TJ8?1o5Uyc5*TvT3;NW(1sw=ctUesxQ zL!;b~<3f6!Ui!n&nazl@e?W-#!m@w3`H1-X9=)q$%Bvh)HOo#lkR_Z~t3CSHZgHqz zUff+6RU0;F=0^F;#JH~l9|B583jtP=5J1O040XO-;WjT|mGn)-*7|CI<3xO&Rm?p^dcC}%yhR~ zj9X+k@?c~sQd4{kjw0H;Lv9iq4DUOOTC@_v;V7!lnS+NS1BRY#l9FUBRxX*R_#VC- zSRcCbz$HkwI$9KAbNjad&862bl>!As#0dqAjr-1RF980pS^t6v_{AU&2Mj)6Z6Pc? zqIxMXRWw(2#-0yfu>YlALql~Q^W)!H$$dN-L(|ZT;g4dQ8FcpJ=5><-4v=NSg? z*j1|;nQC}O6=SD&G8=t2lvxGH^pMy?$4PmQj9bG}QZrifaZM18Oztr{Mk>SORTbT# z+IL|Aj^0P_o8(=o?~*q32Q4o#pYSB;?whgKZ*dQjRpag-m<5@@V@7?f>>J8U#+Fp3 zRAtXpdQ%q<_LHX{XGqI;T316WK+WW6nzzI_s8*>C6vBg|-Bi!30eM+)Jg-Y(FTczo z^=VX{*;053V@P24{XzIUgM0Fw0^( z(r+RNUcG71ll_0VHZ{_7-PcT0fHqVL*Glh@@SS*|M2W^kp+(cktUtrd5OgxXf1eo? zV?8j=GG_h6o1s2|=FVrmQug__?=DUgb-6@ucY1g@dM~;xv%97-!l=LZdtR`#FRZAh zHhCrZNd&$knd@H0ovuO=V>f7$P`F6MA9^9* zoBS=xveYap!!o%J{|L;vD;A5gmruirvQFnOOYvz%g*X+f4})LbwQhSnBgY;)(B5-9 zb^70pg&W?@JDJ%GfCb`iCS1b0fV#kX`o}v~Pe93hv~vg|YTt0S=~GMreNxb(Kz=ku zMj%*}eVCQ&&`)fbF;5=EXq8~91nNFl6*c$A42si-W#xRW z?Z@>vhgOXP3FX3OW6gx@=&d~)oWNz5-GPjYXwcn~0_$@<0g6O)Dba#QB*HbV-SmBi zu5!KYpT9hw(lt5^&mrOz?FcM5ieVA?MMi?uoX(^VmWA#ndyTu~@@Df5&>)Qr>}i$S z3}s((*RYAC3&Ws%iJaYi?&>Z<8sERA8kb_8pE_zq&-`{PvKxGPeJ{0QzR_!Pr&Z zd34TsMEwU;8YDMf04Hpd05ls(0;k>b$fRm}gA3hcyc>WR1Xm=m7(a@gOP`E0@taQW8ZQ+}UHeY$Q#X5(K`B3AF-DW1RJ%;Brgx~B4#_+xBZ@wY+prXM z>$S&0u^MX}?XvCV_?m0y?(!IBUALL33kUpUgA;F8ajuMZ^5O}kq9{*cJZpShS>Au2 z7hf@^?G*Q1fs}!NrR&gz5|?qAa^=@3P0g;^L{G8ZPEO4FZ&^F0mNs?#%RSqP4by?f=`%TXiIx;nUo>R z8#x&!Vl(Y29dXFWZ^_9}FhzpFkV`7*c%h||x+B$3F)B_s+E3Far>+>Qk-U{E5T)gp ze%V0EHk^N{7rk5*eQnqQIBZQZNGEu>I>d3_BP0OI_W`qU>m&jQbI02pk=s&va{KlUMk59!BE*Khn(iBy%| ztG@dbT=t3yz3y7-^ZV!V+b_WXgrm4A)JDPq0RZNJ005}}zi^bDzM-YQskx2mKU_=S zz}DGGSN9(@<*XoWc|;G>eX1Ikw6h?knWBJ()}k94+(0dLUQ9ibNRC_|V{FwP=iA$o z*yLyqXP;9=#?yTUqay-EA15GYiq{M%gtOttBfMD%{s$4{8^tda=qBrC;l8Vg28EZ{wG?9rM zf+vC$dBft4+h0K_=}ev?Z@eCTF0_vnssfa4ZjsAaAC_HK1*zX9Ay`Gi+z{yzyh}MQ zM}vZZp`(8rU<4+(-;U$o_aX3sX~#9fR@TRq}aZ81$}dC($?tyfvfUsY$6T z8Ei$OIOFj}NjJ^Bbsn~tQKdAzXZRrgacjbKP72BST12Ukly8NT?&(Zd&z(=mfMvMk zK0K9!h)y)~5PD?NDtRh*y`{Z=u${O2^EF|&%^vrX9b9fh^yv4?)|PfmH- zYV=DUNj^SL_}ju+`Zqth*Pb?je%Ca{7deGk7)C+}hbjI+LR_-d^pasiLU|YIK6d#RL9g;Ie+&IpJzYhS28pWFIe&u_5gWPd$w6y zEluhXm1z-Z*rFyZH?$p(s|cRmBFi6kJumuF-$DOpf=|pP4k!O5SPK{cfbxHnU_)DL zJAJ4BJ26-c2;G;eFfRlyh>~`+!+S!RM{*FwdkW;mVdFPeGzH153ssB7Pra_h9HbQ0 zvRu!H|}tvL;v zXjv*^^#Ke&!b`^jIOWn-AjNR-R!veixA zo~S`Hti0}T9=onx>k-{l{&v7pOb}u>6Q-W! z?s!TmNozD*l!cN_f-{M&R}Utsych3F_g7aA8Pt=%Iuj?M=_C3B(OK1Jy-!n(G{EsL z92yl4p;yo-=H(U&#kR|DGUCQJ(X7SL+d_b26lwLlF49ktRXfHpHta!Sp zc(nXgHHv>M!f8R;a3EBz0PL`sP%NX_{-aFIpXHQXtLZ<)PIPNmBBWd z)HANq<#&oKzA}bBuKYLG|00-Aw%k31cXZXRKPeUR&?@3saL}T9fAzNc2mjh)JCVmWkRBn#^*2JX(N9=@xn3dEr%0iQ zT(Y1h1sJ@Ik+nHi?ERGmAp<0-!0AkmZluR^hVFEgX$@sTfD|<#cTs~}j#1#6K3JpF z%pVFwP?M8hz0<8i_@LA{6|J93gDl#FsV(-F5P{QrF=w^bTL#8*$i=bUExmT-anQeG zyKzKLb(5-2?GM@bT6b;gALwujs^FkFLdbHhDMm|)J?_f#mNAa82F4VAt894|g4-3u zA_p=oeMBV{iw8fMGQ6mZQ=sEGFRhbmzo4*t-vp_Rq@YUM05 zX-iE4Kr)u3P~&erbDRI}(_G3VDJjAT;=@>Da9P*@{Zu7nvCtZ3>F}k)UMPOZTehW-E=Y9)pX)?WqhPHI8%

    n2m#x8?0B(6{;~uETUa=Q1$zmG)DH)&&2P?h!>Zp zkWQvFhmtj`WscTljUNQ$F7XrkhR3NJgA(XRdO#t<-GH2dh%IbhU}=+bQCvWnKHfNI zm)6}LBLMaAWy>}PxBypFy^T3?|4u#X(9z1F-N~WZCl>;BMFR_N4s!T;QZdcIC)A}0 zie57Jrh5fAFl>wC(Qp&SC5Y~|#;4{P4qZ$z35dDj33l}>f^4;Mf?t5vszfvwfdI0y zK-_jF1*2q$Un7AzLrC^{d$;Xn4?;?vg9zJ}!RE*Ta&+>7x;m4OCg1^uCP+Ju?xEPT zY$zu&EXF6&4F;^Lj|aD0{irLP@Ju^INSXN!=XJNDGXzpm9-b6TmeEhgv0?q=PgoKap5=@< zp2oT^|7T)(9MfgrH^~3i!`^XS`t@bQ({sQ3dv)}2ZYf`O zhmO`)SEuB3Y&-dwYCvy?1v4nNmFAIb-WO(koV)k{^KN3Xi}X$;cpV`P4IwT7d}(a1MdS&qY()fXB)D(LSK&7J1S9ZEZ|CWb&kF3^ln z2_qG%`si$uURTW4j1#?77kmV;m4_-9=~@WA2RSg+$E1Gx{6Y;OYEB>KF{bf9C>(q6 zZ%EHt4U^ViHJa^CEDXfuL>rHHZ0rnWL;tP3`UF(v$QX--9* ze)$Z2*xM)ag-@lhJ;qHuU`!wZaLZ@op;RiCBqTqGmudd|r|JA*8DS(+)BuYdPSFG| zYCL=0+SMzT(h9)ESKX$Umee<-2&F?dRRdHd?d7 z!vizSEJeOCd6KuHn4E7~6j*$u>Uwlvt8M%8bexUJTpA`5^!XDjQ-38#KsJp z7%CkUvb%6HD?YH>xsZY$2jDibdj|IZAI8q9Nfcm9)@|E1cH6dX+qP}nwr$(CyLa2R zJ$vFl&55`X=b?T;)k{UL%$47I^phD${IA&FHNb2Do7CZ*Y5R%)Ws1X@Y}$|WSQvf= z8t0#%H{0x`H)AXDVQ`G318flW8DCwl@ErsP(Jh0tP*3Z!&XdRSrX~-ibGP1eRPVR4 zvLiAngJfJQ4VTaCauy~khUA?13TS~}Vr<{G3sA*L4qp%e)tAe}1jo|Ly7WJ+5a0pu z9~>&tEiEGi$$ynCG|4lQsq-p+5j=c#J~5@z_Ph~=MZ^e8-aQqB5r-%SnHsY6?!h5dPa3bYR|q*x@;(d60M&sG_YcjadX@V=u?$W{nsH7ft-!84lWjsCN?Iv z&i^Y1Qq(S!vRDy*XY~pk@!>{;J6sntqL(g1-o!5=^g#9SdbBZe5`0M1iIBF6Bz|6N zN%{xLGDh)X7H@uD3RZ3$gHzcu_%Er+A#yE3oRZC`1VJSfM3e>hBOIPys{eINKYdOh z_klK5>o>kprRzv9RB)n;;rGRjP);FF~Iy6EQ+Lubq=4J~xb`>vpbHXx@Tq+*ebK=dAKWg4sq+uWI@=1Dcwv3+cTXXm_q=NHsfg55M)QxYHG#C-IBjkrpfdK4tR^*@= z>uZCSRZW3*nGP_6G~f<2Q0ySpQ+anq2f|G>(iSpYm46=I9ZtcYS=wK5vKBKyXbU3~ za3TZ%0*L~sAviE%jxkbV)f>gdKJX`5rZj+9#Cgr{XpQkF0h+_%J`K4Xs{2E(UeZSr z@18J|?ZBZZBnisXXhDaNIh1J2okKfBkv>OSX$xuv+2AVRTE8_}mpE9{ zV=?MQ@LIcjrhv{}t$+7Dk9TExHo3yv>j*nknLMxmYmcLDN>&gTOypUk>vZT?EnlKahm|YzcKQt2saE8=JnIHcK@M3t3%_5mFL;k6>njqR znsOEP#(@b-h{|R(D%M+N7>`beH_ES=%a?F8)@6~{+a_z|-+SpOmG zNlI8HIWe<;+fm`L!8dw5lu|xjZ<~d)J#4wYVeBX zAZAfOAB5iE-W>0)D<>?{Ouaa^IDq)VBrY%rYb;4^3iF;Hz_|LoOC~o$7g8=mvt|%5 zHrLi9AO6lHe!}r6{L89Y0GN-yKqITW5RIS*55Q z4;Vaf^Wc#eW-Bz!?fO`37Ef?dobRiZ>2-U2-o#+m7n`}Luwb$3%TKA4Jd{?p0o*oL zCRJ;u+X+*5AMy1|o*Py~6REVvv$F0*KdI`}3_x4w+%kC61frCz^hxFA zNA%=t*+vdP-lWzy3{LtJX$ef})=Bzfj=3RA9!e!duF?n?vl4Z#&ZG}Ncx(K4Y19=& z-uRC=M@Lhc@0Di68#1w3c{TJc6){Rd2RNk-{fYz9LqcG_2xHxk#)6rF=PVL*_esNPSI~tNcje-T1pvJW6`8>v@r-c6w+?wxMO(C zZcVRKbWbNM#hhyXtu=C+0a$fFCr<>DZk8gQ2#*h+u6}B=!#*I2LKZY2J4r2)L<0ar zu@|K|dkkCOP~J3x&=sdGq^@=(Zn^6^CP(8)+Lh{PkCi!uK5+;?hK~=gINuK-22amv z&XH!{U*c@f;^NEe!gl{z!$}7DC$iJato|{3BCS#nT z&5~U?fU=IA4rw=*3WaL1<|%MEdlZEFW&c(FvyOx)W?UzxtES#UD@jkDjpG=&rjAx0 zE3Js(W4Ty5u}4b1cQ?euzc=(4SA-lE0xlNkE@18B0N9se2zfH9N1_hP-htftX&Q#T=;uJaii6q^c-J#k@4}?3gJw({g3&%o2nsyYCoBcCs z(K!VA9#qO@@lhUE>a@Xrs4vlV;mFC1EMuev^P~&a>OdgUt7}0sqtU{N?~pJ~sbTgo zSgv-tduI0|35L?q%2i`f|H#-E4Ro>YvngyhWBseZPVu)Upp`!NX6UdUpRraMmqixg^+8hwicd5j#$WBlMJ| zAH{9cLvE9zG^-t;BXq|5`Q`*yL;4D^Lv)D#E~nU4L*HD_9YGAfC0PqdSgLOqSA%|_ z$!HI>9nv|m3VY4|`_eY>_~h=7NAQ>+OEw2SJvQi2GYAC|y}%*Z7Gu0=)1qq-4$Nkb z=OH+k47ikxi!I+28NAwm@9)p0ZI}e(JO7nPUDxEYL$5EwGRM?|=)bSM1=>cJ9l>J* z-z4QU!k(P%&;;J7Q)u}}S16x|eB!d|4-X6XSzTBYzG~Y6grlEgnr$7dZg35v`=~`zAfae;2ILtAaKhV@HalQF@ zcqPgBJuZ6@KmB>Tw=3u0xp*f8f{l%G;qkIHR{b62YSqSU7g#^8CN_?DPt9zWrVr(? zdo9$6NUWz~YU22(9a`la6amrMoJkJrhAEFUUGc5AU`+~O(FX%!7QrO}WLQ?~hg9GeGG-IvRCTnlPnE>heX_TBv9t0g#-w@GU-_;P$-Zr1hrJdRwt*@-rY>qZS31A%$)-`@*JwGR+`!W23! zcswWSq9V1XofW!ZXUhk9&@8AvHG7;7+ddkF>= z?_4Zy!N%502vrPjCBtR9zH(PXiZU1G3S%%g3UxetuG`1maA@}f!(%@k^MGGJtPG9v zc$^vIv(JRhJp?>%a_j-dr~-dK{OxHjf~Tty_dY>7J}*V13bDg!d^09B^U7aC6|Qs9 zhUt+}ySr=5`vYE`F)+Vzq&J22%iRGB!|0tyPr6_g9#&_V`|Z~5lwokvv_V#LKsJ{H zgNH#`!Pp>(4rNo}y4BAS2@upn!PhZWeN>jH0vqD34D- z$On^#GF{@j&A?$Ei=loCH%-Cn@MAa)4z>$#-Qk~MI-v;V?A`*MorTkv#harxp#r9b z$6(fL3T+ML3x=_87?X>K1h3snbIj;t>0-v>{p=VB9V*{D3X)A0FS{$2S_tgVrSswh zhK7wpEqD!n2osV!$9{A0bmKfeMkHobq|}s58?4(L$4}5cSU-}GkCGNws;s9?-GXG-e2Y@0;2y6cEJjuSj`z;C~rn^DE!kzc_0rY^K%9b^2 z2}#9hXE z@0s`_2Z$O47H@mf?i@`g6wjaeE0+SdX^whf6n)-zV>tS=?tvW+k0X`4 z$eieRv9)Wc@V4TSRp&_m+H3yE~eES;>1q-0P8*TGW%S7v`SG&|K8u z-+oooi7&-qwhXTmlQ^Y&FK`mmz8WGiwqH)vi2(kJaGHO?qVR!Tav%Ia|is!P0!}yTkP3iO^_rd{rSH9^OwG3E7)*W5(a|uy?a2I zV*cNNF?ma<$7U6cpR5D~I*@B_lH@c%VhuA-%X%-_Y|fYdqHFuF5Y2sGwBH0U zt&!!zg-`5v_i#3q1xzt(lI-zf=cp$0xa#U(9v2FwkpTn6!oTg#!owLWsYt@s@oh8#H&M<<{kATo|gm7>crgWq%Z{!KX1H_{K8 zal7acOc*f-koe^EmY{IqaNe$3ADYh2F9+vMPNk0+sCsjz(-r*ME%MACS7Fo>dZW?Z zv5g_kK7qqLSkAJWu*6{;^1IQYI`1NsE~N;UeCJPV>gz!+ukuu%qw5k7;>rJ(VC7Ed zJxUx^*(Wtlr=Ew25#~ujkuqICIYAfphK`h_;B&akX@&H)NuuA((-=DK9uuiqf2Pk< zYFC$t=0pMEZsSv)Vo14hBQj6>r*RJ}U?sxYI6m^hoiYFkX%oQ&RROFHP+anj~ zte{-w#fEY!g4{71bVhT)t(lRU>hexn%|~j#W*ko2@Od{*}o?QI!crW~LE#Nsn)xAbj;x{I2q6)4o-Xhh^S8@pbc(WH1>Y`STWR#0# zaMZm@XUHI${Ch9W%)EPd-kh+g5fUlB3~d6BLg!+Av7v(6(hnUeSVB2unx zbm0gETVov~&)_Kfy!)bia!!3#!Nbo{hxNcusVU2yB(q`PRCHtD)I1KOo_48oNSyww zFm?TtnB~)AHV^-fC=Olg1eF7q@q@(k*0sWKn)pj8d3Kb?52;eQp#;r<(V+XPAOw@F zDo$P__^>?h5GgeBJn!^v8%7kk*2S#w`O&5%Vkep8a0h9N#H;&4%FTW>eo0d+ch=B5 zBP$>nf$f^}zVFDm+5vy-54R0xVOG1K? zc@6cYJn*VRxMJ+1vag&@Jm}0w59~vEL-C#B2bLpwR{O+kdlj^^c++O3%n{}@DuX}>v z9flQyo_B}y#ynv|YIN2_ZpOLa7JIT(p9Va7CTof{QKEXh!?)!S*0UqEtv77q?~=@Os9ZNg1UiGDyNSk zMkfJs%nH*^-yz`)u5AqPNqv&I>##z#DQsq7;MbARW~SIBu-<9n1<n^z{Ed+MTNKc>JQJQ`xs^{A{N4q?C5W3aTARsJK*G|P-ZyLesc zWny=uA}Hy>6R^aqF+i-fIbI|yzhN%ML9}!2I})yWjR3=Y!5Sd}n^vl&J0jjNa%)6H z$sYh@^>N)oY<%`+xCnZXWJ`{J%YTUX$GNS-O`krZ;2RR`l6_ElsgA~VlShF0O;B%O zo_wKr42DcEh6}qe2`;X2{5KyOjtXlz{ZjTjO($o56f(o!XAsE7Yf2T}at?HqtDxv* zf%t3kV3R_nBoN3ZcjPS?_3zJ2_(yqO`QGg7UwBTmMI+vMvD@qP%}D{@xliz?s}w%! zIK#;HQ6aC1#!O7RmY9qC@KpIpyno4w*DX9hGnl7{AS5&-qHx_Bl-MN&VeVX|_ zvpu53I9AjCKyi~Pp!|z19XZ(Z%4*iybQCIv!?4%fmri?Dx`kR@_}3KO>QAeqI@n4J zB}DPlK4%(I)u6O6R;~;zU7hjE?qTB~u;~M3QTX}t;$^OTD}Q?BEuQEu<-W&ES8ltY zO+YQf>c0GJsSMY*KnqHqhg=tA8HRsdY28(xTZfq!g=Q!PCyF1q#!zwO|IQj+eBT;eJAJkn(Yb;%v!*C{79Qye0b%io%$Kz`vk zc+18aN|9@54-cTeoidS?or|#U>i>XLPh)tIHN1FnE2T4A&K#DK(rMxss-l?eI&k5r z&Co(yAI{ln!qYk{QGg5BI_@5WpQc5fjA+p>}%YT`C0FE>o9X9?_&?Urp<_~)A z@cy2`r|k1(U|<+#l15nyQ3HuvTYCrr7;H)x%)A|~<8VTfj!}_CH2lgY416bE^5sv0 z5A}^Gf>Y`IEr42++VqhO18o}#ta1+%rE3~CDhq6%kbW1rO_MdrddO;8YnX(5k#Kw8^D?z|cP6Z601w`F8ODhY11l4ZUVoGCdJT z&{0PadHA?ai%?fR-jc#mT63M-e5NDDOM!I)<6e#7>Et+rv9M&Powa&HXLMf}BG{YY zcDcfK(B5b`#3S0|QW*7E@of=}6oWgL2S;3p|BK@FIE}=Is4Vp;#*r^X(T=^_O2&m4 zg2Tx;p`A)Ep-NeRtv|m_0pjC|M?HIUP~r+`L&Tu_rDTMkohLAr2*HYG>mB<3saoNYXvC2IZBEvYOI<)XI2 z`YFH^pT@ngO;k~IqVwhbT2kX=xt1EPm}=O%;vLMzePr${H-vH?q52UmnL$XIQx&_i67xosE$Ta(Kjlf!&gS=g)uPY`8dESpTm# zZzC@yHB67td#dK`Os8`dDsoTce%AnQkPw1OM?|lit-nIdN4xe3a|U7rCFaiL(e=o?PF4Q zw9{l}Rar{n9Qg`k5v7HCTyMAJvRf>EaOO_5=dvgH*85P32r^nl>I+QLRebK=Zh-P579Wk<^yZKu zOZ^Lv+o^MR?ZvwLrKlLD9xLwIbw)cSm_<-iW<;7KNYY$TQCL=>r^qw?+;>JJe|cDq ziyj0mtCU6##Jc0fh!N2$l6g736ct4bXC!~!UEjltk(-IR4g}^|lvoa7BbjSdQdXt( zg7;-C5-CJ6rnR6{R3B2;6%I&Og``WHPI*=w8xu8(R5;TdSd=`N(2$?JiWhIlhz7<8 zS2Pul1`}0C%m?Holyj$jl{>~Unrl*}u)#Ouq=Obos9c%|TB+Jj92%ygYWVPBz>p=e z&k;@+u;W8`2Qsdvz=#snpA^*D9dpaxXu-!uW&MjItR}&W-Ok4P@n&TA`u_f$ZA;L% zlboaiY-uryiFC(X^aOi^n$AcJh5O}!)0;YqShq}@SRY9o!+uk+{06pIePmUU%mz&@ z5Da@(WJ9LGG zu6*uMNaR)Zq!KX##Y=OGpq_ZOS$i(^w5-N}0joAOd$|+JraMkpm2{*2#)`yT6iwR1 z_*5~liydwpWKz(nFp)*eTd-A;eNOSTU6{ZQ_Sag(K$~K~^zdfvh^(rbFjk-NMtfl{ z6u^rlTYKQOo}04bvLZow@8a8-F6zOt;xH~u7(X0gju8pb053$M3x4RBoEvb8Sb<6IrL@9OS$}J4{d?|Bx)H0j>9fCh;ylDXcssvS@D` zY7*H+x)5F&bH<`JR+w_0PuZYuiBzBpic;%>{>s_VXf`39yoyP&^)$>-vCSNg-a0*v zKt)Ui9~d^ylW6>NuYWf4nhh+A%~rrx#RGYIa-uN+t#{5h>K95E1Tl6=R2#i%oM05SUpj7aj*-8XS$^XL`V3)nmSjt3lEj7jM4f4d7T z@?|m5AH2ZdMBux!Qr}pKELlVze2TZkQ8~$7m1Xg?ZxPm`fg4iT@ecvac>uYepCy$Z zlLVB(5e~%XM^ahdWJuAIA?)K@?#e$GfX?jka!KzZ$cowmxU3|N>_JKSK8mB zN7}EffdvdkJP=tC%&l1e3T9*bMPe`eh#Z?Y=sHY?B-Sa5oDxV8k0l@yxbO7|B!Qg% z?E)_>0JT^5g@#w1wBh9o^{Vq+QT zYKx`e+NOp%4A@_h4)!q&nZ6K_AZS?~KO>=WH=!yPn7%_C1c1a8>edaAUOmFUt5V6x zK2h!mah*f1eg>5?8z@!8*$ejfNHM=VmspspWjUgn$j+)+wX9MIk)Y|T@k4|3Ksklw zP$9@bK~iVTX|TnEb)}(~ZSfAQNb{hvZ)nvzUyGL?!TD~cnJ&}VNzTT`Z-XwUA{Yu&C{sIR%AjIVBik5Yxh z+QwCGQL_kxq{}B+Q)QG6$%O(ZpJ}3{abP92!y4i6@ZwUy@+I2cwmUnIFJ!3x1pFE>)|9lXS?2x^cX-LziW&3kV1prO!8YE?aZuJsm z>b4UM`ADzUzlF&Ht`hX?%VvuysL%O4@bm+LFu6Qk?%S+j-hDD)zzpt*(|kRvJQ-Uc z9_PW|O^=juHZKQ-CDr3 z=S4xky2>!@onC(EMi?Jq*VqgWz#M?W_lIv~NqM`t-*=e=+a#TFI}6B(%qE4>^~WE?oN7{! z=Us0H=#dkoD*M#?Ao-Ht?V}n@?idcx}_z3Y6`}L6GoMy;N4pAN< zA=y=!8Rz3fLE_RZ?pt}TL|)|@_3r?W#9*O;`!Sp4NC6#`KvX1)5;NU^wp`h*OZFvB zul>jMbHyO6rFlgI%RQViY`v^;$b78RYnGW7RAo}jn$_?uo}2sqrg+5gG6hA|jnps3 zW4^CW1C{_1eHI{ELj&?|cWnIic<26v`zmP+Q0``6h zSF}B*dumAl`QlO_&})SY=vzr~q+_)1=v!j(?DjpCyeSm^Q6h(?hUTbyKaT?ko$E(FzU`6Q`cz7GOx`p*ljAeRd<8;b$y;rX2?kj_k zdTN^8y`Zeq2qz2i4QmA!n4Uvy5iFgdftNPRZA1K^OUx`*F}3?*af2$|!YuyLOa&;4 zo7i&bN^DhY$S%;DZucD+wQxeA4Evm5`Un2-t4$K&QL`VubjeI_Jd69 z*K67sTyCkk^@a)#${?O9xfQ4r4FYdV1=}9AR6i82Y03B?ZAr5^jgw%;TeesL(Jr!Z zuE~N0?l2ECzLh7g6BF}TdU-0)^mt-g;4@&~5s@H^w_iM?1?lP6ohseif{nqL}5E0@L1p1qbT0-++ z)#UcK2TNfa-Nl(%BMD~PGt6SJwxg`}Ioaf@Vhn{Nry z$_P@k!6DoH_2(r*it91C$5b`p(!EW8Ugj1$t}R@E7Xpdc&lJz5KwyC!MjupGgDx{u zIC_hZ55N~CN8EIw{tL8Ir;_~#P{er}Ohu4_$cC=0f!p=oU7_jmwF<@!GtW4ij!8ac zZjJP{qee)beVI)5CMKG;)d1T#2g3n7IR~hwX(ESdiX=Lq1}hn3N@P=!Lv}ZLw#su8 z+G~|P)b4C4VwSvRR$9kP^-d#3M|n;9Z9%Od7I@ZG0aCq&TNb)A%mC{E-TTnOlN@-{ z(3h3kbdEv3dlW88XF7G2uhjkN<8Rz5dOKNa+gn5@y_;I`Dm5^+sO83{w$|sLP7{lT zR0qwf#idqK*1D`#%6XTmri(1qw%j}PvM`;LO^)3%U8>{)pF$S*&xc`Km^bwM98|BV z3>nGuF`kAPJ?pH0Rf^z%IpSl8PM*$xyJO78Uxuv&EoVSWOmsawUBKIN^QO9}6`XL> z)HDRqk9MY$TAZlM@SZnNMfaWE)NUlws|yjxlV+*Al57%mnDll=nuok}HJ!%c znf5~c=U!L43^9rEy?WuXPY*19<4gH`u-`VQp@OOiL0spU1GldUs&{+lmaEk;6 zAo~C7Uk`hOe*(?c?4Llp^0D#SWNkcq<(2yduG*?C4_34;yKc43)){lq+~uTWb8Xu` zbbp>lvS~^cPbt1~SGu+9djvxO5RhBN>Ip$7m98qlYwdkwVU&6P{kcjbwS zVw{-;Yr2%<>j3|Sc751zNyyDn6JWmp#kR7F`@puk)B_*5bmxVH10RT5aC>YPFMhi$ zPA@gdIMIkt9q>>jAzvHNKr~Zfj162Ok_h}_#>g2P(Le%K!5iLip_ht8qC6s3$u^zm z1d0qoY>p18a`IO`DO*v|CXx5W88*p?Tg2c8JM?DGBhx@tTR*bkl$a!_o^9X~IOV5w z@myYJk02Mw1neh~uM4bd=A1iKktZ=xDJBL%7AROS=1t8lM@n+el;na4h*u=q@_-Z? z*bxmMdqVjoWA5GfGEPiAMGV9&TkoIf4m>60#V5s74F=?yj>?xNLk3A41Tdd>!LNW} z4wg3!-<6~nt#31 zE7x(G2VRN0bqfkon}hfJ>)V8Vg$q)*+x@Y*)3j|SVD<^%>sGi|)-!ag_wA0sAHlXs z2mg!L?TKgI_vLjrv@>NE{Jx#1*SEpL4x!rv`J&ssv%Beo2I@uU_TuN=`ufndN1^QV zenG#!>($@}VGpmTkOgF8hkn5$_J_`O_sSbyt~KxG`WE+x2P*d#w^z7+4)DhH&hv9- ze`hxCbJH$xjjz|^`$8X`^B#tvZ_Dfb3zoV0)A03}Fc#`>=-9x`?w*_d-S^86FH8G3 zG0Y+Cv*YQ?WnbUM=gsHP-ly8Y#fuPfZEZjbQSRkx?d8<;PWFPvTv$8w9`U#|6-z-u-y@bK(Y zJ6!?jaGmm}$UXj*v@RG3hBzNF0?*id6u8r|pzThvIoGyVz%9U4Hu7Zh_a(VdA@#8# zgL>5N@24c$vd44sOk|4HWq4Pz`kMg%_^(pP>IsL5st@Lw^gl^%6A-Iv`ISJs8M6DI zWqH;<)9^1CX<|ij6s~aQJ(7_y7@*ZT?yOV~?#{8exTuia!HX_x_i7okX7Xy!sHR7a zIP;3-k?H89)JYN#H~TK!SQg=kv?SD^Ti|Q53E4B`4uJk<{gd`GK*@XLdpa(BMSGli zejgL;bDj0+$R}_~B((WUcb}Ah>H?B_fqUiYHDyQ)y_VXsat?)xP}4E5LSvxP`-%Fb z$JllH+2tbJ33PcAIjUz5p}2&4#I^wPE7OVHIM><%QZ)dEGPQ}pJ$zu9a$yl(cgd%Z z4gjzQ8X*8T3r!#8! zA_B+m-J^k}63O#iZ1p$UGs==E)93Pw)O~(=`0;jy?@ahYEMm#orgL6*?aU6d2r@|8 zu~PuJw)}Q|=6$}fK2@$B9tZ3pU}3`KYy)x9&9ntxXZ>X*b^1oB=&jf38ksQ2ZM_~T zZ-G;3lL{r>naaELRWEI9iDH4?veD|9mW835!Mf2DfVmvFGjhgCC_UtAh(bL0m8ug) zP0rA(<*V@>pLOpD&V+H_)_mSH!~%H7AOkFCr|+gPVGux~oP1Z#`2byIuVKtN;UNIO zI@gw_WXW(}jy7=I^qt77#OzwopYlM&bUc@10&RnT=dr&YG+xyQOeup#g5Q=6Ll9yF z;o^7docMWAqQ>qgKv>OpL;_$MaIBBZe9{voviD(vNJNbBjqjN$OqlA>X%Qfw_StA0jH`C*wC6vdM=0|v%w?EDeL`Wt2a`$dV1 zy-;eyF_Xnj3A&Z%4b;O)Fb0UoT9M82e2IMc_rt-!P^l8^E@Ii(k2qkEM4B1%$e?QI z^ZbV@=s`(dE<96X`HkD*Xp`L3KQFi^0;`BhNVQ3CDRpl^C8_%T_5=`-{RAz7Cx@Pr zn=nX_P{2gu6@r~o0-2HICbc_@%$3BM5_bgow`evPmW2@zE2A@bU zi|Uys%Z33FK=XVbbQBfx;49NtZGM;JK5kBz#&T2EB zgE0|qp;t=@NGdo`Uj4v3ApxYm)jtmXM-BzJ1BnJu?^1p=5`ckO3z(Q{%`FgwO!+~; z6b5^aanaMxVcsyV$7BdTZ-1#M9@Ivny2X{*^h_c=^<5FrshM2%R^-f){arraK;eEo zG?P=fKgC|}s}3S|FgpD%cy~f@H}yYAZ#|Zfk2;6|(sh7q(}!Tt{&*iwxe4S-kUwpN zZ9vlTuS-DdA{lXy6L_5MZ&>w7Qx@c<$$y9P1D)bOMuNz4afKM^Y@^4Y87!T}#V^P% zLJRk^7bM9u?ttIq%Y%J;xmfxa%>oZ1V9`SQ8^g<+$}OG5OKso%OF~X&Cvt}~5?%SI zXB`dCj_MoL?=axumo5eC4V*s_WPmzL>u7C$9c1l|4dGHkb^U<}lUjIJfvX!h)L_BQ z`F4rrHjxKn6@#qyZ!(T2T|u_gb(Pb_&+`?0@<|y+7jdj~RsDk6dW6b5hjRC{YJO2->tlFp!oRYNX=B;yFDjd@GK2xTdc(Y` z5T_M7d=1Q9vuC-=raCz3MzXG6hr;JGbx}W#2tbf({% zqzi&45Vy!XL(L2G+i*5g&*9G-Iwt*h&TQo+Ely+SoP@FTs9fFs`(w91sKj316#Qe3 zH)9@B^{xHm0G%lK3*eh=Y2V_>EMKt@K<^If-ONkuE=T3sWeU*3I1 zTrWCEZ2OxM#v82+LHB6dld}4!E!ZN=+UeL#U?$+D*xVsyE(WQJRHN9LBe*lYb)fPm z6z>}!32K9OMBi>dB)aK4<9qC}X;%i@gvJA06s~r0lThMhMMZbchSz_9R zfj1eS-b|vjZwy@Jr9|V<13u4q28z8|lz|vffvBsDZ`9}ZYZ%>&8&kY&?fV7}YRRSu z;^XbcG$wJ*2f7*Sj#EhYm@a z1utEKBR2fZ%IGPo3U!to*<51M`^Jm7LRF?lqSD!vH8v^5&!i$I03PX~FdCvw_4pPh zZj%SAqA`6D&+y1-9o#qi1d1#!vj*vJDDwWF22&h>DWm0O`wFBJ3q5+RT$wEs6*LFe zQM$`#AbUx#fp`*rt7g$bZYi;M_6ma;GgiWU`i`1d2M|=_4iJflbC6a?LDhuZlKw2X z{drL7q=8%tvJBI*bFMvm2DXh5%?1Vrh`eQYkgU|ilPJ^|AXY`udKy$i2hO4)US(3H z7N34ug&6^EI0rAqO=xGrTU;C7z=yhDUT+YSD@ie{v4K^zN&IsQe^O&$oZj^xkM`Gx zcq*9E`!2@sGV5RWZo{vG&C0#9@YzS8-2OfwBRD!0L{f)*sED{l_xM4DfM$GjvuZ6# zg(V?!R*vwwV}x0#8ubY;h^R|jbThdUGTW46Z!FLxk|_RQy0cW!Rk1*^0P)$|U}E>2 zJq_M2(c?Liz$QlJ00ku7B#DgXg8&d|Z;@p1x!nbHmO+N_9_BlGzV{NdaAbmZKB@-| zKGF~H~jg&h$`R5mqG7iYsL_5TV3P1j-8IL}ms($tdcW>H9z-2WSzASR}{Jj!r%%gEN+`@IyHj5F60Etule=p`_n zxkUi2%&W=+|6nD)c*H_9@fXU7#boGzViT0d$O%sM;&oX((i&01w{hLQst7W5&?uTY z_+kRCfDE7#3%*5x`J-1+93>9G%_K;X3r+}w6(=BAX_q1pUNKHHA%I7$Mc({J$4_6_RadUjYfGZi<#168sTn4si?V&yHtv0Xw!%R4wR0$UNFP+Xjd=>gN_D092L?72PGe zP^??a7wNfvKSP*3koU@6m)jq9Of{zF!Wm@1ZX)#9h^8kUR_aD6onlZw zV=oZgGcwJ4E^t=Ym6Lmblr?;nlf!e{aqV&(osLm6c$M1*KMuNS(>YmZj+qy?R|W0g zlK%^NprL!gae?_5TO$krNA=B=6Jpwwun^19z)oVGCQ7Dr>ZvS{KlRZs$nLCK4eyp* zOJY1)-9IZH@N`a2J)%UV6*w%Q9lPiZF&0_OPY97({tPr1`gE`)C-0ifYYUpw@*E?k z=l#Bt*Y^V!PY1-*S7-+xIQz1cW7aiyn1nd(Du#8csO5MIRB{K1FfS1i$h8K}K=fr= z6y|0o`7{j16{PpT3@sMCfoQ1ASsAqt$2dskerQqybh{F6nM)+}JwqV0NJf4EdbwZj zqMdostkLSspUBSk}2rQ5qf{j&eyX<5GrWR3f5EJy7)ZIzv24D`Za55m0IBmYG zsPFuq%~nR?3Lx>tOe-+}_@q{?pKqGS$QN1zxtpNzdE?Ct(;+Q3R5cNB-ai?8;||Yjtip;(bp(< zqyQpzmIBBNsKzn|elT=L;zu%RdhG&?(c=3Y6Hct%(=3Ac2-AJ??7|D^G04f4=Jm;0 zDM0h)>8Z09Ozeobuh?f|Q5__J&4ZH`7)2c*Fw+XaH+7^RBYaSn{NLVn z0RD-47cXCh%3Cijv`|1oNRx5@dH`K8!5cJtVINwkSLzv8vQ24eM|vv{xD;tU*3Q>O zRO8-J=F_(O<*~dF-`*0FHv_1=cX;<9$^QUgK%c)U)csk#Q1NEWg)+(~4u}!ywr&N4 zTJ>}U_eD0@S_s6Ec0)lBoWeRh$WG8A>hkMQFU-hT3FaO?si6W33_CDJyvO6Ac6x2# z;r*>(s~#`x?+OqbYrlw7V7ayo5>lHEt(7&MS$&Z9JD-<981oHU@c9@7-VnRA`S}y-97oOBbw6f1kp_Ka zK!KAg7$OUQ zsdtd-yvVOIHXPssjd}gZ7EpX^O>KQE=bROJ^anEM597)o%#IbV=yrc|;n9lhdQepD z;RzS7jKdCY@@GlW=~+fPDD`%l$0}!IN0H6teI&-h=G*f<78br4yuaxTNTkG~xO{p} z`A=($qS6@D?mJk(6Cp)hr#Feuc%Ls?9wc){E!+9bI> z@zQIWq1+1xV-)6?cyVTvte!(O@y+Mi_*-Cc`K+`A^K?2*#%Lihxn9(5=SnB^jK%2q zFLOMg(4-FqJk=Y zwSAF6dP?N)Y={r@Vo8+}?-KM5Y4+$KVRNO+crvf;)m=m>D-Yuo$6K))xi!kftQK4N z(pa%kF&8wD20NWqVzcClN>`W1KgR;Nx98R=xJ&9RCAL5h z6lU@M2GF(-hsd5iC$#TFNg^M-K0%d%s@NNLZcOoFN@}N` zu_ypX>9I%PZV|TdZK!Lm9UG0pC}b?nCe6+owV{x+a|mJ_bZ9a-ptTN%@v$sou}C8y z95D+Irtl<1t?x96+4+MFP?Zg>7_*_CukK=>jZ;Zy9PYfIBv~l1dpA9!6p%KR!OP2c zSW-&iXjE^G){k#$n@*#qmi&y0gU3Z}GzS|MTNy5~tl)~->$*=Pin26l+O-=r14oUzz zgLqIsxBF(ipeD_mqj>&$h6&so>Z=NU_qUH|5rZyv61Jbbinw}lG` zt)4<4<u5TO-L;r%DVY`Aoo0A9kf*E11Dz&c2(LdU&M<1N1c%58nsC2VzD z3k(El_B*LXcNA32S0v5w1hlY_YGXcy^I(UZ7J4nBcwml{E%Fi7c;WvL|5@MAUmvY^ zkKOsgi+iZVbs8@f7P!bpqX1%o-T~}ePze9$w{ZT;guJg##pC#dt#B ztzFcs46sT@e@V zS_1gTJJ!%Q#jJ@$Ori6iHv1B)>WL?|&}prz0fpwzc56LxKqahpNZ+m!Dp|2~?h~9VoXG+m|(8y7L{kVb2mU$8w7J(cEmnbnJr?@owQa2DByLW3Y z?k=L>a>ZTS!0KhxLclJ1ogQ5rtIHw%42{^ri-+PsDCmhNyXXw_Q~5qMrkvg-QR7%`Vz|Qw(F`-Faz+J`UE}HjUuH7Wdy% z6{i(jCh!l|du}gbk^?q;AG7}6vDnowMKogjxcliq3WwBi&%NA{S_82g3>)p9rtju6 z)gmdL(VX0HT(&D9S0Lde2i8;+X!Bn-nZy8zp$vUEL;%0=iI95Mf=et0TqGp5bA*Qq z3h01$8$puIrzlM(q0xy&+}|k13#@ek*{#9ZG1T9m1ix6;kIkiQ)1xp;d!5KdV`;ET zpCc?GtEhaDx5CVC6o;HtLE2Y#>s(t|2&bpt=0 zPUnqMD>70jYzJzr;jF@;4@50Q^+V<0IzX@O$#u^()5VWmL2a1`yi;=mXla9lL)9Mr zxa;Wp)Fj($FKO7JD~(=15R+ z$&>y&j7cOKi;=_j(n2`^^B~334$ohGzfyN2VhaW_^re`8977_-D`qsNux_`5fLw*x zqGOWh7i?J0=1Q#1A%kFa1mT!Obwmq_3}KH`#)x})bE~o^3r9N3XG&nXj|S23=l;bN zerq*penavdM;%kcMk7JQ6o;d&o%fTttZsUSx!?htmX*-g>O6n~I(Wv; zd+hHG^lOSS@kWf1o%h(;-VM37AsV5T%y7wqPE+7Rj>n@f6xHL1J<@>UP-&)`(@hv~ zpa;+r%gbeLK&ePkE@Jt$*_qf_1Rz=U-5vxXg`h#3p~=Xu-&HJ>Lfl%CQdLhr(YoP;vo?WhMoQGr@Q-fA?)p` zZ%7Ehu~6K8T6a^f>UzzCHbz6D8TK0@F&1n_9>TFhc$$w?S^w^~qfWv^$h6!jDjmi0 zV=YE2EfG3aqa}s9R;3x2Z6d#A_6gjFA>67~x=ZG$3)L3WY(Jo0Yz9!$oxdg3UB_EI zFCzbUIw9UNsDrFu@L`^miM(mF=m!Ao1-c4!h2L~NGo;*c@GqIAT&{LI#HMpvZya`* zQqOQ0Xz!RPbJq(FS5mXL?&oC}?GY||76Qy$5ZxJ69O1^&u8Y7kI_;Y{(DlV-1*|%l zHPA(S=awqg5Mo4=ctqun-8C_3e_7ukFVT0P#6_A=)EV>~C0% z?t~Xe7c5a&+(bv&Bon;!GRYV$%6xRGT?k7tx2q9{;S*nP(=?nRz}98->Lwr&1N(Nv z%bZY9 ze{&ZHu$QE$v_>5lD*h=C&?~BKVeC<*l5Be=sA>?`#>m1n#K71utNN(WB3Zh(l-{i- z&V6h_%oPd9Y`r0Ia2IQ{ND~Vj{j|v0z2C5$6d9r^LNK%;z{o=UCkmFz5rU&N@*B-= zA)GoQgwgbJd_ilAWLJw?Z2hY0uSIH>o#HKS3qI(k;G?Mj@2vKJV5$8H8}`9p!X&7b ziKp7u1-U&QtMC$PJpyS$b?v^ZtS!}QRI!l%I~JA+d$mP|fi~wAI}~8B3VSulMk3LB zfvhQn44Wzg4w|csQ9A@k%f)n=1}r;`XLPBk)};Svv(jR#dvFI7M!^?fe6iwclkOw= zSk#rgs~qYolV6t*Sn}&!X@GPn?T<-je5iErC+AP^MZ_|);lXo42)+eUltWTn9VM8o z-!bYL0hz#RgkxXQBpfUjpU~*9!5)HlLH~3;)UQAAZxtNU0U&a^Zq}xIv&iytMR1_?{ z_(zTAgDpjU3&j|RtOc)9)1vGV#?1GtOARp^3z5!OQ!?uiP2E&WU5`nCX{6}vJ=~pT zK?xc$37UpYrqoAPMh3pvbV*q*`762_X#1os&iQudJ!Xhl?t|@zsQbUO2@xA&9j|nm zT3^=i^iUcAH8mXF!nxk8J;l+m&VB_HO?9lN`mAfVlP+lp5Ka$UXCx=tLM&NqnsoRC zv{V=7_*e0!s*je6kJku6LHvLpIt^9l_4S$4Cna8aYLLt(wT|#MxK%nr&4%tH{KN=c zt}Tx5gVPUyFKNg~21ZXcXiMs3T$7Fx82-nbxE-4!WiU=MLMt+3H0F{meL+_UVUq;&!;Yecq-GH(oR zqUF-rNEU*^Z>_#0X)==JUv=slB@%yZiCru4nl};UWPI^UFe&k0`tIuS?ga^INioyg z*|~`G1dT5#>cDD!3W9()HFT4SX^2MEoMIishI_g>P zi1=vL0r~Fzj{vmpjkEUPRpjM4ylWS(8b>y8b8TSo_}i=v*5bFXkXpaA3hDnlRpX23 zX0dL(OKS0lq~~5n5NgwrU#rr4c;vWGYNtwU^f(IMcVQ6SO_2YT)8!XEc-%!?$YZR( zMi1HJlb#Z&jo$Ii3gaJ&mz7=u&&1to@e&|Y6l>W0$Qe66gORF%Xx~v8fs9{u9Xo#0 z)E=80%<+IOmGucW#4L>c?ITM3LV+AH9UIv?sLXKZF=ns}#_7mm3KH`5mom?M+Bm#!0X9S?YtLi-wZmB*70HmX&ina zR`DmT5&XT;xoKI}O+!(7ip~M2I*6BJ-{*6NX;g5H0&RLD7xR1%inzhFrBhCz=!MD; zse)d%%EYVfs8C0iZlUa!@j3O6r0AEZ(sLagY%QKBb>@~gFW-OC1`i- z+(>X=k)3lsM3sUz4tBgL*xK|re0;Zb2@9M+ptR-4>8f{{3IOv|XF2q`r97vzrh9J# zwz$d}ew51;4RQJNi+v@JkMmI#pBaA9W1OQB(>rXD$1>jnX4O^)RwD=Xg6*;Cif-XF ze1=K+D4jrWu|x`883dSFf|ALxkTYg=C>yz$&5fu)Gg`Hc-*`jVmTQs-@EJZhde z>X9qwTv9qj7rmxR!GD{yTsN`kW9udiU|I66+K0_zvPZK((gS^Y5OiRmc6bd;U=+_# ztv#=#T!~yorcDBJA@d$5Wm+W0U5J?1=n3}NeNgMJ+OXNbMu~|$wAB$X=M9f`=mgWF z=>_f4{Bm6`x|pS(nhT>vmBY}i1=PTcl=Evq>m}39DP62Aa46^gboLH+Usza^gXa-o zR4q!_A0KxjRSSMS=>*nQHJzj*k)P{ZOy}&raO-Nw=51bT&_a!kmc2)hfe!=7i0V2= z=_=tc)yKv>@rjyvh@ag8mQBUCsHqo>>jjCQ1)H!35x4F0fA;uW#(s}(@-Ndd9$|^a zM--pQG?t3_UV*hhz7X+FM|n003U0#-Hw0N>@J#avu+U@pT=6O*|Gfq43LhuWRT5A7bVUkIfflv&6fLyGn`~Ig#;GVhJxxg5HG}w0 z)3b9G#1|6>qaawNBg%qq#DV+>dX}=xhS+kQ5T^5XjQ{oZKlq=kMuC%fnG89iud1)| z*oEDD-JVLEjZI2QZcpnNGj=G+F+xg57&ajH$nH-+>+}|wcR~Jbr^fF8EkAcXat@boouHCs=fZSUGvZ`U)q=5_Q{OG zK3J#0hAzEu&x`IEBPAosc99ca4lFjdqSd;|Pptli>RMS0$z#`;DhQmLXHuWF7sh=i z^tdh$v^QT5Gcc`_IeNGj_17D*8>F|bki?mBrF(yug_09QZ3zo!;BFTU#%I+zCMW?W z$ic!|kHOE<_$ORAIc_#~e{_v#wQ0Uo|qFJgCz<=(`x}>JhaCK-Vqj=tZhY zW!S-4!@>~Tx#*#@jH&Ibb+KMwT}Ln2Cc5*z@1pP<^~hhk9#B5)bUrUXFZ;pg2(v z1z-jsxsiA@5Q)MnCnW5!bGj9hYr0;LO_U(`Jmc^EN}$ zIr@BjyvbiBlB`8RA(K!qN+Zv6n8P0Qx@B@dcrrd(7lk}78ieX>aG%{ThH) z*L|v*a5zERZ=#Mg9f@@iZmT=*xwRX~b?)0q$KzBsQe}J(Uy%jX4tWG!DV&x2dkspp zGSH3DMn4F`AK#x>)ok7RaP8r=0w`i&k`*qLVSn0*%$ExlFsiktJ zhgRn65Zm!YlafsxVc7?b(<~0+=p+hHvy)&HjiZgVwO+Kow&scnva<{IU8Q3X;J#Q} zVT*?rx~{h3sM~xNbWfVkjsQ6z5J2bP&rz4sS5w|?=qBET1G<{}&h9$CY%`^>h{WE- zo9oF)H;Lx@e5=gMCmmf(5{&O&<)eIJYCYhf1^f`ir`Cw|?(LXQo8y|Qsfd$aeq|kU z8u3q^BM`36cI9T{zHDJJwz6&*(b*V?=tm>=z8UnDN?5kbZuBRk7cda>XPRw$J8N{Y zr<+)B+LgCP{%tk+G+VRD=+$DRb}x(8%b z=m@e#oEdf(t5ixUOzUD~kHuU^n7R|TG(ZvNKcel35=fPpa|ENh$j#>=Iu}yzZGnYT z$vTX6b&7kLSIMT8_gdM&Nn+_jGWI0zW)wX)J}H&sqM4M2fSn}3OA^jJqc&Xy4p<9X ztPFzSfRZolIq4S+K7RAK_0^Lbwgtv!P|t){4Jx}$p6SNKMA1yCwe$Y*;r7!fH{t|V z&d<*HkjvY1$qqg#l@DS9XykFaOp`0esZ7mB)3Gy>D{A3ajC_KqWQtNvYXct7oM!QK zd;&V*UqYAbxHQ)uLvxQwxx!Y|rGjZHQpJ)}=98pV`6FO-&3W7lxc3#lcN(ZKcPib^nKt>|$iEq4; zY3qcak0Z%38k%fDwb!Fed-kJ1_CTx0bFxls=`$@v?szuV10bi_(j5km0_e~;j{XyR zj1RGHt-fk>NSiJ$LnHn>YILH`iAMe)<4v1>sOZ8OC1uR(j+0T&;pxyjx=5#V#^N;MSc=&Z(iJY-xJavO#eZN@L2T<196~)- zA5xJJfnavncZiRzM@GIqQZ8nk7MjjXWD&%dciNb?b-Fk~=3ERds;RVVNA8ZBd z-q*I-Lp=(a6sBytv_R)*ikMLvAr<>b-=iWg%RajQ!zM>2#~+1=7gMm#61O7xE~i~Z zxcba!P5TiMuDnr4c+88LV1i6-REw9)rApr>DG|pUX!6nEOJW5enM~4uCIQvMgl-cQ zEI44L9#VN-q6MxX{b+OJ7EM=S5JCRXJLjOjVH*- zP+HPV>dV0z^o>9P&}2rl6c9+v=;qLlc2ey>YW5YW7yB8liN8qSx#vAC;CzTt6{c~4 znAJ!e_=eKw#vahG{(A3-fBU0L9a*puYsY?MRVQI}5(O>TA}FP|YgR@2*Hx}LqhnZh z7_?P-?1(8AYTA+3tWce_jKij6%Oy_frfz$S{e;vxiUqX0fJUA z(GsCs+5sQBxa7K#z7M@hB$afU!3l>!%#tjgRG3Fl>Y{Un+1>rUm%GDfd(WT4(7sZw z?L7~+U;aJVdG%~J*!h0@<#)RWQLy{B-Iu}t{_)@tp1*jp`||K0c=aZDy1)JM2Z91c zp6(w0vaLlTj)+`g<{@XUoww-d7Z4zqroe+Md*ePBI<8(}lGT4hG zylFl!WP8D6du||I`j9EM(d{-HFaH*M=e#$xFoAW#S{jkPPS|U538$YpHZLb)>Y;67 zYs*7FOKuxm#)cm_exYmT0st6l1KEievx-`R$6BUo0i{d&WflCi+i1!F)QTmq6Osx@ zn+!Zj)&lK%Ws*^1IuZX_z?Ur_>L}-p&SR5vJrQ}|o>a5E#0wEQrOSHI;SiYJV&pgK zkw+U;>nW<`@O^6A@J!p2Z-w6ZT7Z$TSy_0Bu?@&Vg6W2Mq@cR zaEZU7>OCE?hNk9tAQ(L3)8OmdErgOHb2LoH?w!k;k`X9$=;`_ag8k4z}%z&hDO{ z2(1ZjA+R(Lsdcqgyh4mzU(p0UChZhmAZ;n;H{~?HB zoIGj|_h^rJDAdBRcZg)RFkh_`3CT*{TE@WbF-t2k=9aAVtb|jks(Mb5(>R^z61HjU zy?=2Ly%*23i!8r_ZJ4N>jtp%7QI`W@2$owpKOv$=PF`F;ls$7kLy5>~ACUScA)|7; zae8UwEB6;b1Z=DHtqL1%nTvE*v%rQxOl4@BAnvF@k}RV-QzC-gQ*if%6QdKV4b5W?i3HRiB=n1iVu@W@EFPj6^}0|Ga<`; z6z2ih~zq8}F5u0Xe{clisB|ES!`Ni(@)Ul`sD0_6>ZQ%zg~=e_oU zG39y#7s`&T#3iq9C()0t$dnBmG@K@-(pBa~dX|!*8bK79_d}z1qxfV7i4>hB-mh#1 z6dnVo>pEgHXnE6 zwdz6sR(D5#b!5gbe+bss)`G9TSo z#iK93`0^`bH{Jbpo?gZiq$ZVfV&^^HUI|7h=sU^K{1~3JOud24kBCTX(Trxe-mqf> zbB$RAoc-F}!ma3;Sls6DF4MP)D?4@XUgaPKLEm*lltV0lFu6)8PD*V-JZ;|)7Ab6J zyV_+gqTsUT?I51u>OBVddKsTV0SYL3JK5b>|8@$Hr#o80Gs3^@sx%cpZH8;>8;=Hq zK`#g~eF`8hSnEZ&ZDh&jI^7p zH?WI4DITMao|8smM~19k54ZuNxduJCaTWnzZ)(}lq$|#GzCD@njd|%2jTcf|kf4jmQef4mOtt+r+O}&wAkEeHmK<8Lb zHmJnjD%%J5(VWoiNHfV5ZFeoffF(x2Aj!rhl2zEb-(VRAhdSD9=;)m_Z=bxRb>}o` zGcQ%fIYOYa--g{_O;Xe0PEXTyhv#<`rRXeOgT4nf2U8;+&AOB~M)aMpYW z4{@ywNs;XfNhFhL_Pt>krF&&}$n`RlF%5=_iNCh+VK(8}6^H7iCt&I#{wO|nR%NOj zb$m@XR#dY|IY_9=i>-Qb%O_27}&*}mVSV#o40HkKvdHwi5}w^{U|8Dd;*Ur`Bl$? zfmV$SL+98r(>ZXI=o7;aZvdkjZe zACZOfX-2A-^z@nyjs!N{AfwQr()yiaj?&VQt7@=D0?kvg>ZR@?)YORNE5aLP>nsu$ z9!&fi)bR?vyRTA=?FO_l&J*_eP@yEHQy6%g8n*-o<+|0#Sy$Qf%r?%xrd9F=D=9w~w#5e}=c@mE~BwRc}T?y9Kx9x`L`7sU3>2o`)a?6fW5ov{~dqXVa#Q(W0^6 zRW_AN$*|w# z!*O`( zxylpRr(p(UuhPcFx0sn4@G5geTZCo9Otug)n)w32A2W&wz2m|$ZGUPRMDl-A3PlqI zH|}n)Mk*rbL%c9m8^uV~x|1Xzno11IqLegpQKa4&1`D!_u;WFo?z8}&#uc=R@*@Zi zd~#x`hivr-C(p4+?Z-iB4Dy-YThr+j<`brKa{VpGxpS%`HUb4Ly+TI0BS@dQM+#T3g@HBVkQ@zKg0tdIjVnB~yd1KgRBDYhPHRDpiV6dw+<<$|HlV_e%;Ntx zW)I8lxi_?80+UEu?qGEm{Pj4+5660kLd<2!BFI|k{k=~jnb zQG{Jukc?wDd8j2t(YtA$paVWcZ~0EmZZSS5>oYRJGDafaF;{rbt*T@?BfUQ?CMJ6q zn#4w|PYVVl8evPdLe;A8u&VPSzp}Fu92zHReQl8Cau9_>c14MrsAhdAx7XRtjRg{; z{7_g4iFv(fHyAVp9LsX(G+Ro0Lo~$M!~02`{jyG_Y$(|*LPY$P&(SQrVNAo;^K}7- z0<4;j=?Z?3Y1C=_j5|}$a&NaF_nYvWA0*cCd^*K7orq>FbVuA?eE|aMB4k=+bH|n* zv74m&rJS+ykrjtXl$y(DN8Kp5V~>{?D;3?jZ{VN_*tXkpU|;E^0rgF_D{epwlZ1{! zNv1W-4!U^`u@8^y8o0()d5k7NQ5LU!QPr>_+sZFREMj#JlNf{M8vXcAE z^0I25F3G>ki5i;l^h<5C|F7V$vm!rDRmKupwbb#K`A$4KZ);|$x<0TS=G4XgmI{Z% zhEcuX9>?ld=2R|O7!JXO%Y&MZrP!MA@oucM3M{ z8C=T{X~nv8&;fu<`!H{$*u+?d_3B>8gIfG)G%O-*^9`$5$w41pb2+Dkmy5RZR?(p+ znYL^(7Es-JZYr{A#)Tz3vbI%RDAd`k)WVd>Mk3Q*!9QmvZ+;pZKvAO&75yH_?auZQ zR`QHbF-(iDHrjlsd_~Ps8gm)Raz_zmLA$Ms&}#D3kUQ_vn&ThkzYY5zy+#y1ZM#~G zO2$B+I6K+@e+$Zw^A8zX4b6d2@2tK()u{_R>Y=J`UWSGGV#_r^h$MyKmSe^qu|e`y z(-^_FmuRRMk=Vm}XljGB&WWCMCVES~6*1L^ZnqzcoGlfGPTM&^jmQOJajNh1+GDc0 zpQSUjxO)4iF|l_AiM93N$2{P!%1)mU&F>vWGE z$ygme`cFEM#&sR0X_fQD`l{!N^>(_}hYN><{3lIa#5{1qmaw9Fpt*Ti0V{o~5c41@ zR=Za0P?P!CiY>RLWpal?ge7grJk*07#TmhPi76C3<6S&lg0JyqS8R+av^yIavQ2+|q;_vCh;7o**1S8H}4jrF_uHvA~NK4P(G% zJp9=M4l4|G29fqrV-f!t3GHVTB?Rvy$^qN!VRViV9$WNn)hYdT%0+c(XuewXqP^Y_ z$4H?Mnl%*)bZxE=ym0uc7$-$C#&oVN+nG@H^Yk=tBWQ(di>RTo^q*cj_y982B!H%# zM&JD5 z{*YWRI)SQ>iV)~NU%s5{p6Mms0%qwl#?R8FjGwzKXI<}>OIp{v!?MjkYV;SY3a$DsVk#9P+4 zE-n}5h^LRXdKWhM#~S~bYy4iFdyAJ79)~3?0N&yh$&9mFv)ejZ_Mb?&p$j%9F7o-= zc_0xGF3mf2x$Z-2^dhc?^?D8N)jn~6C$@Y!xfXYq@oTOS_P*7{=-yxX&jI+PVjk2Z z6L5@5fXZu6dqWWBF%saLefX=0%PxU2Z17xtv=#+x$2DfCZSgn2)DjvQlWXN`AokrB zM#wcmJIHHGiJ-6GUL|Bd&*;E#f@Uewh-04c9MG9eF2&%Y0xY9JMt+Ks-PG;B%D@(r zSx=4l`hdizxQ}-;`2F5t6uj6wz(_#o0A9c0Tzz<9=xxRXYcy(*GU3hkV{Xo5%OPh$ zHM;_PBy1U6oBQ27;d4o#04{3sbq`Zn)Ni7%BSczT)V6lXOZC?{lBBUu-RZpn57tz z{B8YM>=RpCb!MsF=rg31-rK61tTw7Z!_aZ7@J znOxcE-U2K%cl_lj+dL*teH`4U-Fs;Tb4>Jdm-iUk>ZoN%ydSCUNT7m5HRN!T>l+~YCsDbt*{R}A}Xc;ig+vvg!z=ePhl0I4fcdtXuYIV=`>Yv_BQEpfOX7t+7QS zP2#a^P02eD1S%s2{6nacj^m2M!i>=n?u8ydTDFk`ft?WVB!{hl>eXq|vav>!W;&&f zE9(bP2H*w+3)kkUAGi|+tnAMveJfeJm+A3IY2eTr-OvkQ~V890042~uS!zyWK zB_alH_ge%^QHN4x;!gfcnG29(1&F`CxS`&oHC%E{NegR2nFZm|2}XwLEu zb*%1#1#IWN)!>bC@56%ZXh)z2=y=DoHY(!sT;}B@DRoc? zmMh%$DTYtYFf6F?Da!RcFGMbSYTB1=i)TU*H0HNapa#Eif-Htz{}4-ayQ;HkIGtKp z)@u)%o;H~ekax@F--6ApA@jO72CLa++^U6I^W%=8w*)UNO!yvKf`vB16laRYfrT$; zCzE9nV|Hm1O8kc2`h0clO3y5-U5nK@=4CE*e$S|MM0j4vodd{X0#cj z(Q{bbCkY;&G3SEiizLhQ3WLK@w|FyV|E6E(X_3@XW1!izu>E`iYz@nDx@U`e-dyOM zz4Klnunsa28gWM`;KbNkT4sj`acH;B)3ck6Ve#MetiiDN@{Z+2j4OANj?zlb%_T>L zfgK%vmyvCQ$1L z**EtCZ0IMLJd8w1$fgZRjjy?X7;|SW?65R_#5Kgn*3Tz5cBBJwoZ~&vbTh7_3n95e zyH>=8+HWwjrzQxDxJQjSt$~_tb&=%CdXB6P0x1G@B5^8@dP=XtUiH*%XStc^a<*na z>P*Je9@MNGckPg3-55V7@c*t6#Th?teCnn34c1AqSr)`80}h}PoV9RQn~$5vzQ%6K zs?a)2sqX^5e(i2rD!Q!|Le}0?S9KFfTADHYse-jOoFZlBxAfP6$-WG((NN=<=7^RO z$Fy}=^H`Fr>1uIkxSb&^qZ%qvNZXL&A=WJ1S9ZB0%wjXMccZ2qqfIu=;Pt*+^_8u- zP&p{$ubuy-PZWX#b;uFlMwFP&pcWW;i|0Ttlx_(7)6yM;YM`OjsH19F=9IwY z+a#N5{7yy28ot>6dARrT5JU?=(j=ZOlXebp_h@iJS{aU`9Qt4fyRcT3-y8>AQE^;q zkWN@V$%N+w*Fa98p5Un-&xeW9jFYgCi<@-~c;|gR(wZMrQaO;SW`rY(7s6+UZq`*j zr}zz&fy6mr?YtK}Q7}q*>cr+=;zx;A> z`sj-<;mO4>r(gg1o5{s5<>~mFum9Y!D@z`40^w$NqKsxlIfTF{A$Kh^+k0U`=-l? zr@HbLvF{cWo8%%LZ&3INNq5uOP*$569BK5i zr9a@S1XTF!ymv+bZR^lLN~2=wE8?m`f!hX1N}@_S!o4#iD5|bfU?x+Gh2dveN#i1t zwP>;Ag;j?Dl5|=Bhld0bE1B;Y`ZcD4I_jd1CW#1?#10_wjz%E88JCuHSs9q2^9+y* zZQhQm*cd!uyj&o#s^FbM@Li2n)FP2D-Pa4_7)gksL6ugMq~Y)3lY0T6JF*T%m*Zhw z(HcQT3M!DsX^F~4ROC(LaT1(O@*>UWa9Wv9r)>H}H(=$Q!hl}q#l^tN!tmOgh2bT% zw^vf!k)OD|SEs=%Xzy9w-V1E+JJsF+xA*j#wcH2L9#r`|w%4-maOH1NOat`oGT4qvvk2qBWJ-Sxby8E9p`%PxMz!c^9^<`y%Rrqnk2GRcAoe!P;}&mi zUjz$zWqMOZrXSTJuR5GQ*cU79%G9>4xebtS)(U{{v`reAaqo`sqbSVTRE$~pw1V5?uFn-Q(X~4mg%l;v8CN3 zvzu93Q6hBc7X~UMm4@hhU`L;0BGM736~&D@f@UU@{E9PC|1&9a9h?)Nnnj&pJkZjR zTCld!0X2Ze;PRWGth7TafCGzCI+&ga1)nU~D=1Zr{=J{XWApcSIUIfVIN0MZn(!BR ziRjOsKx()7H0<#OYnsuOnu^SbRFHsNq^*f0btJBVNn$zFHbP_9148(}+ZwOo7@*kst?yDELc&;4gu}=lG8WqGkQII+9wR%11%9 z;%;iPkDwPE|G|De>=#&J)8!TLMlXy@1WKVgP7d&NA6I!Hj=QbQ_`4)asGzcU!jN+a z6W5D-$;uqnxMrY$^QCIb;C2gGEOSSV9Coy_1V1;UqCZ(UP#B{m{6*&Px#4q}X z22W2sEl}y!fY>yV_CW&0Is3^%j^ULz6fL>ZE348h$r0r62ES;~j%V46R?c#LH@a`E zVPB(Ge7NB-9*?!B9LqtiYZK$;5FgV=rUwBU!q9T<>vJ`VPTSe|=4OBqx>F+{Kka%J zN34NM%=eNrIzY+&_mbWBrbJ;v*3E4sn6n}wHz@O54qfgG93Mh|0v`8+X3*MUIX|(d{uVRe*E1hA`KMf~ zQ;;_dyZgs%|J!C8XA>qHreQFo@Bs&ae==R7#+}9Apn%&f{{A0}|397_c-(!@;-AhZ zYU*#h_U{{OKSr%dNq0OtZ6y?VWTmq-l|fYCL16qrUyI$^`I#JMD6{4?QK>mo*2~1f zMqj5FP#~-M3{(A;aORn?`S;HI_tP|sK%fOyq#>}ObCI0Qv6$g)jki3*0+>z@d}r zX7&in&t-|Q)`YXcDLS83>Ia_6sg7|hbuUb~04?D*?j9-uhP%ztHF`&z8_hE)l|(1k zcHbZkbxn4>qjmQd#M49c`o)ox(nM8T(2CiYEjX7i4yRF5f7lYH!hzQom|x)4>Fis; zEx2Yf#EAR4$p=fi=$%yyXN{NZ$39ZR&oXlI%&AeRzhwegNg2t@9>aZ*z=Rn{Xj7M+ z<2vYC+jo}((sn;D;cyH8^hEVt!V$XO*3oD(GJdXGiGFnEFx;I#ybpt4Z8y@WUbe65gi(>`C>dx10Vm{T$c)A7{sZEhNxJ*g|EX<_qeJB%6Z~(SU_|%|7lI#Yvj14;|Dj~S zRB@L|G%#HG*uAxi5?idk-6cioT*Zz_%D_f#*ulPaddfxsQ$Vc01=C2^gbEf@8xdlhD7CUmxpApMx=87kfy&t}eprJ#K2?UUGZ^P7 z$E4ztfu8M2;rEH*-9`>t+URtekLP&NcrxdF#3u<^BeN-EnFCqX1L&7%kWcDS6(h0@ z!AxpaLfB?z-}ao>buCI1t2_!2S!MeiyaGO7q+^)`u~0K7U}R^VU7^ReLlBjz^VeeJ zU>l-dB+t0#PlMms0N~3A9YNvL@5RB7?A9Yq55a6g@t6*>aW#;QH~A}1}h1Fl1bf6 z1)h_IF98_`VKO)yV4B&fXkOW6ew=eq4_cPa0O8HIYHbM?>)7FB*(^SzqM1(=bX3PX zmqV#a$*f&5Z)1UpbpUJiO`5qMxmLwc)(IeWGKqf)9^Tj8yZS831*osPj0gKIFisgH8aqKr@5=K z+y8-{l!k9x&APF5JHlTlJ{bk;8;^o_*Z&N@{$|bWuW>H(8oR$>$0dcIfYYuAYvFpd z-t!d2lbtRstas!x{uZE*0O%JE&_?oX9f7c}9%9gJ5D|hedQlK!M4!!dO8CC{rLT+4 zhW`u=f4$mh0EH`#W_=xTOgBt&`(fC&u*&Wu$wemc_ z$~dS&Okr2Y^AX!HngTcT9~B+7AB;eP%%{#{cE~h1mx|OT{$!-#Fn5@n0s3jMU@LL& zE!Ql|w|D3L)%eB`;v(sw!=|7dr~C{aV_7^4KT)WCoIMF2BU+wBj{z%BdL2XCgWgVv ziveOMQyydNOH3OwoRwxu zD3THC5Nge;ZVWg7p&1IifyUuwt9`%OBCMFv#T!l{g{fd!Hlg(;+7OEWYWBm-7>FPw z(S$ztso#g_R=ag{+%DhjVB=cVVwhADp>iS$7|(pf@rbFfLi4AX=`JzSUlEkljX&KK zO5Fh;IX4&_j0;36EvLbEv`fLi8Re({DB;j0_BJbn5jOHD)rK8GJJ!#wNSi@uqyUKp z2ImGe*i2Q2FQ*cy`GqqHDt-&{kw;E4n&f4zau8ib8yY>qS`bAN`GzudJ184qOJ)od zaVOudK%P1Q6!{WWim!5#h0Pi06rCQbtWQ11w?=0gtuIc%Yzlf7ta{@AaExy{#t(^)T&A+56-fdQ6%}lfxg{3M&V?47w9Y-rr=>c+4bw5dcJF2vOp%H3Eo~}o)&AhV zE95d`tzbG1+zb;GCcTZJa$-f=0e+pQNT3NP#32SqFhI^bLq#ZF6XRQ@W(~f}r6z^5 zNsMz^noUS2n2w4ZtB^xVIX|&BBtB(hkdv`ofJ`vro5a>H+OFJQd$S?+jj`j8oV%)e zP8T)CR)M{a8F>~Eg)}>l5?ujeA|({W5H{}D%E!gjC5tk-m~-T38hYEYxmOLu9FU zD9=$RGw2}SCgW^;>vk2kbXourU%L`~se-WWX);!lw|}geW1NV>1uyKXaXz;pnG4W{ zBr$9h?r{vKVhO?XO7;*+8-zY50IH57U$^pxja@c@7DLf&M+!SV<($eZPF@>rl6Hu) zrBR!r5HXYFg?Or<^@$zad2f!0PWH6nMmn00nisiHG*%H#3$YJm6oJhtx~1UJrw47> zJJ?5YC|ih@L5E0pc{bqJjva*ha4#`va1CUjIdHez^-0F_3^g@!UEfe4;|I1TUq$Vz z)LOCMQuB0@#}W*;9AWY*IJk{aN+SD;W{s}~Ya7YNBOfTGIA0yudeUFtXg&t)c*7cX zMBCCqLSY1>?;Z-iLFYM<&}W^GGZPp^^t!%;_D;lq`6^D+k`s2qi4Omc)3dZv$JXw^ z(^!AdGBs76b23hEwMT>XF9z#he&a=-voX^O`Vfp-wHg-&%LunIz9V>Y?9S6NDsEEn zQQr^eHZ<*}=OcRhVB?Vo`0c3NL*YmCtN~eOqD{Qz#ut*Mmn5Ae4bQjt_WdcH>RW(E z?j^t%p0J9yqjL|9FYeg;B7rl$IElBRI`}Oxi~SbZM0isVX{~Xu;foa6y58E?+8xmA zy|HSc1!IfCEzJ=7wD%}W&K#~1p$_b{f$HFvDzQJ~if`Wt9%S*&<1UVgW-j)MKYJIY$i&`W5y#;vS97P8e>tD5C44 zHkEX{6-cl(RmlJff|ZgY?NHoWxV9fF`OKFrjl(?PV4501)fdC8l(n+_Tpyh)xu);o z(M9(GOJX%&2y0bnQPgLY^wP|eF|{42uY$yW?!L{s9MoAGZowoTdy((r4?q62CI}i6 zu24Xju)szl{KqpKEs!)c2i0;-feb{Ui(w7$uo2>cXG@)Wd~VV8?5l5TW=v_pUE&M0 z$1|UT_cX46CvOFv@cH)P_I|J9kp3(Y#p-h`SSPL*siV_`2=x(_M4v4l(FRKBZfcec zIK!R~4^9Ql2L-e+QI)D*f4#@~q~Ko~&h6Z@9oP(ZDL|uEhxZYTg@~%8S+e?Uw$CJf zH0jM;Wj#;xlDh$4H~YIk@9e%l+Lh!y6_w^$`* znC2N2_1*1A&4v{$T*}<_o_B}Snt3@+*APtDpMJvm#SbxpdFZ{3(7W392?~d!s$nXQ zieds25u4{*NW90d@+k;Y+5+7%BGrJE<4o#zo8ij^>LFh$42;6@WrAB~oqY-a<1ul@ zNvhWzOBSF_$2Es;kJzCko?OM(CHMDEeWVuMKDq{TbcYGdiwe6pv(xyRl_B)jf4dE3 z_AtpWT^QE4`1QbF=41xaHgw7FLc$M?J4-H;;sb^)?X5a+DgF_MZk0)jVp^hgL+8hg z#zdMt8gr*{$&FrE%?tv>*vGk8X*3NK`SQ?i#CMp3K%NJF|&<~pan7qPdFw0gLlgX9|%vWMx=L|FoF0>7xx)d>p zmM;33*v(kssAa3KSL$M4&kR#=%ehPZ_%H%A51D+kbn;*^_UJ6JXUKUaJKf-O!*Gf5=}tqF6V+7K_g1^p+9BoiO3g^b)QguZ1 zd_L8O{EtA$b0V#9JT zm~xiBnB?i%d7ME%i*!_CnEhdgmVD=bb&NiZWVgIgac~!G@yh6%tZ`ju^HwQH&l#=K zj^oE5548|OzfCD-h3fFF(~xBpcfOU_(k3%J+kL+MZ0fv5l2lC5$Mj31N#Pf~r~Y*mJT7A{|>Gf}j#cgKY`yX%yH}h#h#x_W!VG zBjf%ZMH{c!;@e&R-SUc6M$sI4Hp^Fwn$$zzjH!1Xx=?w;7EoUOqgj~!7tPXTQib({ zrls_qMG~tL}LW%N@RzxWj+J*WyVLsxZ0Jx!1K1Vc);*^devEaq(rll}Z=2WJRm9m&| zND_gf9YGk3dF+gWm#+>Rg*o^G-h696U61TnyRf<_=hG@Em-3wlG!sJAe z9_#GoWM~+i(n4h7m(DDb!jzI1qiT1Q&|%iTwe0b+Hrv~8rS$4{hj;%-@6PY+)vHb- z^0%>iRk;AzN-0srYUSkZmWe*~+-;fMZGC8^?Jd_w<3O`u!L%G?+Q1n{Bc`g4N0Gme zeD`mV?f!c-T6#60qu$~huFJScC9Ym(q%{`tB z(5RLh+^JR>lS&VtAYa#FfrS-ojJ4S{xmn~Td$!Van9U0s#X#H`_*J4(UmI~fZ7 zNDO_B4JW^CSSoe%NHmPKTarCG6M+<3&>RA4*wj5U4n@Kl>W&9jF_%CEs&)U`%BLl! zlCcCj+lM>wzwfrU55N0v+cKqfV;a>(f2N|$w!@>Y^&HbTzwg%L=xzo_N8cR7)2_l5 zKI&TSc8_nCw*0f(vhUW<0ULz0_~tX5jCEsjdn=n>-ZSyL5_S$-uyfdkot2Pd_J|md zlCjmY;6ZK}gS^GOa~fJ*)6xd5I2|(7pBECs7g4Y}E%>)@WA`2^rf+wC-Lre^k*{cG zV8Zul3e`$qQqt%a6*Yb@mt;RLEc*R?Y!Wa^$6=#Ck*DG2HScoWTAPyYqsT6#*FZgM zJ~9LvtUl5DS1o$fC16mbZ;<*As9XaBjjTId>+zOu!I3_k>1+UOFU`Gi%*LnYguAAh zE0oQ3WDu+{)s}i~!!Ke}cOlOu7YLf?j95qMN^Qm9TViZ9k?9g!9e2uEc zVibHvwBBN-Ru5ZQm^r;}F>_2$S>0}M<|j6qS{lR;nOoSeTdW>=s@%zY5Ul%jQOaJK zWK6Mo3y(B{iTqI5K6cZV8P$(!4tKnqs;r6z%fzZaeqPs6lCySrGYRO!4UK+Uc7dzu zlSC*eU6Rm4u`tl3T!hE^s=rKhlKE#6wS?U#cmaxZNRl7vd$>NuCBaKf_wo?rAAQ5= z1;N+A`S{wrq6{&np#*Q%EG?#KmrKw_gV=F#@-y3tcLnPn<9{mNba+6-HNKcla zy#Kx|;_QsWG)c3TC8`7kvuHsd@2rvvNp5VYGLleX)KKjpL}#96LR9~HQO8qu??lFc zXG98dmeXaRYPYF?9VyM6)`?OYRja=s*Nw;6fllvc5WGpI37rNdV<$tNtC-m8bS8!b z^)$(0218%LWabjFg59Bwv+ki2pn>fLxYyVZkVre*+uQ0svoqc<5`0Ke$gU-ri5TLI z6O@qTpl48DcN^77l=Z&Af08b*-)`9*C?2K|rH)Z9n)rHMYXC^y)X<2T(O+nBl)-s2 znc?giM4}^KAS#W6>;8L={di+M!7KS2w}kufJbC9WSAKnxR_I)YKTeVgX5Wt7y?wB= zw7hit$=dZu%kaH0|WxfJ0`|#9jXRo^<$qbai&nTXy6?%{% z!TvKTa)e3gZ*fN}P>pBYNO9pI0kYzWDqUO@$Zx70_M8Ldd0ti=Mu4;xhT)B*YEa#x zSF(!wh7+O!V7DF__9alf1p&YUF`+LBvlFBzR* z6FliiXYX%6@9#W&;rHXaN6e(QVrnC#GBWpZD3~uiWZHomKSG z_)ApBdRG)H8;}aN*6FmnwH7hM!Y{E>N^ePg2dmi@efCdFt#M2!?ya}#BN~V(XEnmj z2v>dm8qF}29@vD}%xI~{>XF{{JAZTa>lK<~ZM5p(D-hDrphNv`E2qpj)NdP8bq9R5 zCi<;3rhhLgD-G)3D}-fq+wlylwH3vkcUZ0gY6vD7 zps1?Ds@6@o^WnJ4E`-VvZa<1zSK+2;MtL;-$zdFH=BgD@P3@q#&U3}KXr6br08<}U z3W|q1sx19M?+oqQ;H=2!v(VKsLtpKy_~5w7`x>|2A3O%H9-Z`>Tc%=jxn><{ex#)V za}g}iz8gE3rxY;rP<};q4~#ZB8YHRaRV_+TXxUPVa5wVEh4nb==hb+-#QzDB$^KKnWeaCttK&l&Fy$ZGHg~&R{U`1h7~TD?(NG#5M?hhpEq87D7+G zw@xMwKtA|sGyJ@aK9{RaYvi82zVY7PxEq_|0wKli19f0=^BxK`L77)5BxTrlD8-^n z6s0m`-MOf7ImUTYQM}+LMb22MWK8oYnJG3Q`h8*y`1~wO|5@k9NHbJdR>AA*>KrpY zB$9kj8r(B1ZV`0yuFjvv_BpgumK5)iy2k47o%i8iUO%SX6_^F#rWZ-XM@h*U%*3pe zl5uid438~{BJOvI9RK-SonrcYgbM|F`|W{4Brse*SImZ@>NRFMIsE zp`H?XbNptP(&lb)eq2Kk?Hq0Q|La(*HhtesWFcTIej_x@(V$U7G@HbkPN0jWS?mC5NHj zMx_1gd<>IcS%bc(WQ#j`4|vzGKVzx$7Xa#6#51ITi0c}Jmu=)DyeLM1q}j6u^03P* z;}E(^6?fIff&)QQO^uz!TmsLFt^#dMH87Y3DHa(3dIVff@D3Y!6fpGyh<7F0OS>3f*9&r5 z;^*E;6zlZvhD32x40=DG)Fg+-t$2{X>jav*x~iql7;V>XZpzJD2thQit|T5YBXV;S zK&AL)5JDqHEYv#OuEhZYaK#mgz#J=%^|FKI$ScODPC0gYyIm`Rs~sIx7EqmCR79d= zFj5GadJF9n%uG%-6I9j-hGxoGL30mnmEbOQm7m2KZWT+UVo{V58}Y^}2XEm)4A1C8 zIF<9_;N`Tp}4Pbm<8^U2GD-TnQAC){c6 zZjpSu+5YKnakn_Cg)gd;$h&g4LmWKfFS>4)0|Ubz29W3>^23`~Kvu=+il{5Zv+*HwK!?k{Yb?w4)uF?3%C6; zRh_-4A_m!eDoa;Wl&-8KeNP3cgKT-ytgay~X-EIPHG2ypPg!vRx!?j7AaX!A&-L%8 z3S?E^LR*`Fz)`w5r#wV`bO||8N1Kvjj+&XZOG4XbBP2zYk|DV&cYu^u-{&w!D)UC* zJYOzN`6Lc0p9G?62Czyzs<^tpC_2Mz0zJK|=I~S0Bt)AL{_mExVGxEJHu^U;Smv~()q||s zr%6mXC{t2}8YTEXW*##Yy?|f6^Ffggir)FpCuz~zh#ovl|L3zi=|<~8yg>U|!)oZb z$u;pCSH^EpAO8UmwNzR}OA(jgbee%YfPoh{@&dPjRam~m^C${`v0x5cj3|+fW=$=%c{W!i|a8Yanv1UN3 zQCuP51RTJzYb&LMqLM&>3;!kuWO*z1u!b2(SMtxMvP4OifTWkU*NPit_+R{bkY{gm z+fY@=wnR5gMVn^m+Q7|STts_;?RRM!xmAM>TcH1@g42hKBa1xe#3+5F-P3ewHL2u7 zT;5g|N2>hZJQDl~#SgvpbzZ61tDGg&*#lQf5a|L~C4l2LeKU#K;2S>eblzjJSIXnu zx$njY#KAdT%pj$tU77bqNTnXKZBpZ)7y8S$0egJkxwKhT$!`(`?c= zIUE-regXDq93ZSkei=~#0$tAo9B1)QbDBiKwePQW%wUZ3#V!l&D~3^5J^62`&#D4S z^;zx#W*m$jqSi3Y2t2Ak$I=v_CGin z8Xbo=^6HC1pX>T%8*YAKw9z($>Ij4bU{}kQ?GGwgCr)4rTQxJWq$xr(2X#KqPy3^h zvL?;Q@>K?!X6H3&MI6-OiQ&o%>}0K06X(?3-Ca(#IOxmkI(*DgvP-Y{Re!Q8o0xzs)TAyH+Y%N~we*mVU zAndFN;FI$t)KT7+BT+Qml|@#HaboiUsf%G)Tiv{;5-E>F3~k?JV2s&IOujm$suZqA zB4%s7iE(%HA)IDsxzfTO9^U{$XW85SnDWn*qg7}nu8nid^e_=dF=(-PaibH)6(+`S zx!(*@#4|q5l|x~HQE$$QR54?LNoa7_?`l zUdRG>Sc$Bh>tU#MkOFPG2>fN5P56Rar2#0dlx#3a1XkFN6X1s?3_ex5(C`Y-xDK;P zvXne(#sqy-7WFwGn=XjJvllKB!t-iV0 zF;!Wzd8QkVUmEJbYk$Qqy6&$aF>4B{ht^{nR3MGs%qK*F64SusKm@~yVZHEwSTho7-M+Ce?5v@q93N+wC5%o$J;9k^To$1%uh1K3`$Bjma#yL=LZ!W z@&zR_8S_j_{(XHe)w~=JiEs+$!P?%AHcGsM7tglb zhSrZt>?H~DBX^!eq2$c;L7N$>!Z!ANBB(6QB?W2p6kY&cRqEx(^97+>HTUPj+}F*c zXbrXl(R*0-M->37Hd3dMXQOeg+jE~+R~E(_PG$St_p1sFAuz9h?=cj8-9%2k=8fu~ zX9TOX*=V5`H0)oxCl&eZwI#iAD1q-O3C6pFfzteJm(Of$tgw(FyWk0~3%0x~c&>Hi zfP{%a6>j?X0UTuW?e>wokq*%%)F}c3yhg6Dx0KXOy8yFfF?5!9&tK==`IHXbQQO)6 zE$$>Y5+!a$H5NCW8de-#B#o9WL=-Xku#fwY*J4RU@EY@fO*u8XQpW9Fd6jOIfwN6| zXyYZ1r#+a#49nIiD4^vrhI&&@Td4jMcHdgbSPFQ_p_N&sS6i!r+&|%iy{JM*g+=um zqF$;p-IG4A&|)%%utU|zIa{4+{7YVFp`>Z{EeSt#7T%6tj`Ek&A5dNtNyFS|2dX3v zOIra>;(jl#rv^|G<5zfM-e;%q^T?4RD70Ii6@3sSE~e<=gpqtKVyq8T+;Z%3;-uVT7D``(?DF79k7Ot=P@j(PcRAnjc zq;4}W1Lv;W=&Q zLkAS48_bFbrW%IQJVj>H;r5U)6afNGfJ$Ep>m0gpftme4fbU&8@TPe~Yb!-w&jPWe z3x@H0ip$RwbOK?D+$d@qxMX6SO2&bvhj0X7S`quy`=?lyda{=_5P=EMZfza~Y+!_D zE{)tZ6x73sHeG{Y{Xr#4f8@VG69-*205+^`1Gs(H7|Z^+{?4Wq(QOB=sMjJ~p~T+Jd&D?<4V2h?SoB$wg^26dvfX?(J8{P+<=% z?lUj*i_7EfZMB*uguK=&Vk3InUSQ~tfu*0Xrb7duFp096Is~Okq^Z!WX@TLx)nQk7 z_=+Rtp2erIJSd%`copBovdJYOF~BfH<{1$cD$gEPA&Y zHQr%#QMWkG?@lUW9))hbswI21cYU}xzrviSDl5->MWof|J`-=X`ESd5Yrq>I0ZoK$ zEsdBs8?aVa2ZLejphv5?cQVsjLa#^wq>8(>_vY}S99lX{P)L@bPToh|C!c>1Rh zra^*QEKC1k19a@l8y++LNPv})<_(t3M&f3*Y6<= zTUuzL_z;iA zTZxn`{?O5BbopsbB|cwKqU??b6#56I%gd7_e*N@G^z!xYi|?LB|9HB;|MG9qcdws5 zeGxt0|M6+`>c`iw_MgJ{-M#;fC~QFV`1Q-by^v|Ai?eK!cT`Gc1@z5df82fjG}?Rq zdJn1}ynYVw;mezY-Ph6gPyfFA-OCrz%e@2qSAtq>YrzfSs=>KTzcwjSnL!}orxN63 zT#QT|{6ST|qhS2T^5GpBLe$clG>5nZ@hzb$5*|^{0Hj|8k-jDTz@bk6SAjG9pwgxh zd=h&b4kbB;*%&1}zIsq27-E$bk2YF_+K1VNK6+w)Ir4u(1kp}CBQiFf@+9u1YAR4b ze!zoX>R5y&x?^Z3+*Ir!d@hLlxed>2DO8t_4I$i!ss?s*Iv*VXGcOW~&El{z8tO<* zDyF%blQg1HYkfV9S{r`0AFie*A<;g1v~KIe{O0P9*3+-Nx?G4?0@d7DSMbbarn(#J z=|it-3H{2Og7@fGyT+9;G7Q(lZ(J3>QEmJ}0BUr8T3^QpDgFUiPCC7Y)2e*V2n1@& zzBN$M2qoNSmzyrm4Y#9Kv-BZ@BniQlDWEpi$1ji8eY*Vk)FsO!+pn)GiSpyq5KX+Q zC5k*M6XdH9Js5B2h3dacBZZEbjggs-kvktFZ$h>O4XD0Dr48zcC8UPsQfk9?_hAL4 z2y}>4UfmL@Hp--W7$TL%tV}Eo;g;v-3i~ePyT6-(mv5sLh~I}Oq2xdtSn+XB$tM1s z(?&?7giWHwxmYN>b<*!ahp|s^@CrLk`G!k+Tkz9TA!Ox(MJ9~5g5{g$1F#JSRt2Xt zOt=@4pH#4cqcAP#CHW2@_G{E`NW+17{$%l6_41$jbj;?ZrG8rIdTYNm3AO2J7`6+x z3SxQ--cF=$8}z5!RSSG^RhXoPXs=kcHwU07#Av@fDY#ydV`y&fHg<|CcgN3)>7(M*4j;3G<3rYqfiviKubVh=d7NoOplOYaweWT7US%4-s=5(~qL$K;F{d-W_= zX_G9zl0tuFkSbaTgDwT=Vkr2Jf2gVOsZ^%n3vM;^;mV0uj&*!*$xtQtM5b$1I%rlp z*ig-|UyZHjpWCQXl}nAS1~Y57P^+4&m?weao)->Pkk3Mru?<)NBQzti39E_c^^bgZ zTr#G9RFe<)s9DhrDvoJ4l)ez9E2!n6O~S)n6-z|A50yMTS0tDP@TZR>;<8!30bCwS zWJNla>GiP!i`*XVTcCVhj zn}5gYqC|9mzrOMpcibl5Tk^U!;Z_pEG~qslcl@m}zP+pbDpLPSL2<&;+9wK(W0O^{ zLYfZ^nX^j794(DMQ$aN!Uxw&X62I+L8PV}pw5_niMl@9uq$e#7A2=F|R3UmI+azb@yG0a@Qi$ark1k}4c2 z1JdpKSV!65BD*XUEun5Snhyqijv!0U#g>G^E{6y zFGt%{hXQuIvO!ytT2!N>uN3j^Hw(|;;N`|$dZ!5(!j?J6Pi8SxWn0QczElKITz8Ve zB*C@!o%9UB<0IR^>Nb^u?b1>|bRV?z66hn|%UHI%f_qVQ;LsQ2+3x7J+ydsjPE#$i zH)8b2CA@=M`vdR|*|rnMw~B*cV#d_=zyW}=e>8qe^DE=z=pvJ)*XyOsXNgTu?O(N( z40_&wjx)MT=J%?33&ZCkO5;6_Uc5XYb{d9+(|=T(MHktK+@&Vd@gzH?$j)qQ>8EPE zU0%ay6treOLhxFRlt%HIzx{rKvoIXdN3`NzzyaJfl>FF<0?I4j&W1mlp7mc>ZU8GK z{;aA{RWWIPz>6+e40M&Th_NkD5%OM$CSr4_t7>nk{3E!gXJrMyt2qnI(?Je zE(+(ovz6%BVY=q^RrJguyr@*R?e9ohxd6>h91@c5L_^H~0({-^K}ygNlpTpw3YiNw zx#K`JI4R%-hGNMF-$-b<#9&9l`@Q=6VDGUVA#~!HneZOo2)(~fu6&FG9`oF)G@z{n zM+5)!)g7KHg)hndbYM%ne>*Y=kS?MXP(ie?Nf`Zky2SGvKMSs@4d{|{1%7zEV8>fw z$QaTRcN4znwc%OJkA=}$h_YN~ZQIr14a`EGyU(X7V%!ER3PO5;kPhKU@)%3tF0COQaMA`_v}G)=(Y+{XrS(N93+D7k z7SOBZ^JcTTx`=M={+4lRZ80Mm6HLip0l;s-ubpQ8{TOys^oM;+g#@f%|H>?~n-w(& zOO8pxxHE7~M9 z?I9(F@T<1gTaESg_15D0{SjTJA{_VC*I#}4#iNG%3_4MHSF)@>USB8_#luH6Po4~Q zC)5?JuAllaf?W!AC;G|$ezyC3e-pi8OX*rsz@nsq(W82bsV;zPwa9sK^NYH-2&=a+ zy?cjNe;~4+_FV9Gvr{ZTAjQAh_GB zyR|Nm0%qCtG@rRv5YuygKPVDwlQMy~c*4#&Ff?GHb_a9Vot*;=ElW7T0OgSvaFDBV zYnb8{55CI&+BwM3xrN)}UZbf@83a3=E2$&HThNV$^5mdP(0bEiN}AW;No&sL-^x29 zI%R{d0~V9;qvNs(*Sm)9K@)6XH@P+U+<@4udFa z;wz4X3PD>*MCZ87@>2Z~c~9Ooxvb!QM9FBNn`LdLQ@ z(KX-9bkwg(;SNrl<0RMJN|s zM{jbxyT`OS(UZLBPWv3%X7T4bik{#_`pZe~1*vJ^XRTpA;_K3nEbHM4at+2j14MCd z!Pn;_I@hD-XBHKg#Vj92-Dy^wg>coMFMJAo{g5K56|mU*T_naN9}JL;6lWh(eC>}< zVf2&QV0?N#s?`HfTMvDxUw#d*f9Q`epAeRO!{`-gv2k$*EDI!Ha;%t*(SB)ksm8Vt zP#=C-5;FyNUKo_)&C^%##%cqvr8<|@lWOi^7}P$@Gp*FXsc<=?gVKB=cqS=A0jvaL zn1j2@K@c0O^+mDpWM=82-@~(rQ-N(ca0Pf#@2~}#fQ{q%A!FgK5O5q=>TSLCKu1&6xoyVvjUS6v)bn+y)cOzEB!M!Fqdfn> zG&|2{T7PT9ouD^L-hqLnuqQZzVM!xGk5b!s5*PW~+g3qxtWd|`)`OJ}VqHFp!xm^b z0JC#4Ko{L}!|?G0FI_U>i3#gAd-LIBfz4SB)<1=nPz(USS8@P+`9;l%iD0_0DS1GH zX2xbUFOfyf2w`}QmV5(4uxVJ6MEdK8gtKBV@I7A2Ut)~u@vstk$!j$BOJP>@;_HXy zPAF7mC%*g|J3-ux)cC9NGKw$pWo1t!e=|K<6?R3BzWln>Bf@)y1F7<~P&+=Kkqi?+ zK_XQm2K@+}P8IV=l`t-jr{NsG_JSSw0ROn18djHae6d1)FRD*;7{j*sr&lP`M`I6y zYYD?7SY!%Az?3kyia`t)T_F~wfyrMy^sQmp3vCh1vKjKGPi9pHRGH2K#sNCxeRV8z z-xtY!v#LD~lcFQ-*>oj-<(RseGo2!3g=vw~f}N!uZC;~Wu&<2ejSW{~C-;(8#Lfsq zP$nf?o2YkN+lI7ZjYNpx}3i7;{kFURyKxP5AG~Ez0^sUnQx51m$EK%*k%ZAr&vsN_i76 zj2@9Los0rcm?r?X%Am^@l-^9!i)`9kNfD>Y!hQ;MrG_P*bEu!1%DQmA9ua!xv@K6dCl@{1dbhTq z?saqw|EYOSM`$=s&q+N8qmkprz`zQ~rxfIWR2sU9 zt|zANYE|rwM=%UCHAr)gID=H&wxevUznD^FqBT1Mv?tRsbZKa2!J9mf_OImHSLQ@F zY;}S&pEP*14#d1B@=W1)nPu{)ykx zZx#5NN>+rjpm*M@s#q4m(~%XYE5cQT&s|QnV7v-OWl=KN_e%u3I0@`+uQUU(Cv2^- z!MEcnt{*y+(##eySpsGrbSj2bDaO!(`AAV7-p3DL#mLihNfq?3EdAG|!?*%vXX~ml z25#k`e=9$8?V7JbLpWu9*M!wv(%-w2w{T5wAARC@?V&eiKXAOW+>CsCsyi^3=Euh{ z{2%8yoo8mHJj9%4p8XMPauWGqy zYdbxq87N(#E4e5f&EZx7#GV?-+k_A^BA2?aR%RC;F<_Y6hoEs#RKFtv4KK6|GI1BV zZ`$ zOiF+zhuZF)a)h7G$MYfz_-B8kg>{(Q$_fy@#*YUa4S~J0FA@6QRW0lN3_O3Nh+MnT z0F4v$VsB?)e*@<(GLX5+mS(GatmD|^>+DOEpb32kY7g)Vp-EBBDJ_#^#4Mj9CGgf` zlmitU(`=6X;Al>&+l`hsTjk`_o1$eQ2}H&1yK41n z*2?d1o5^}>;{h;=)eZU3XN23>j$>3|sp(V^(OVI(Vy!y+t&V(Uefk@8r%J{?7&(;9 zMFLR<3QqGe%^R>3@iI@j8*JW3$v3IJTACzB;LSb80|C~j(gc)n~#+E z^>rYas~!hojYxu{LZ#B@Q_-w#a6Vc%B37Wl!ghOO|FPR_ZVHk#q*L1(YpQTO8mL@B zNtiWySV3%mBrfbmxhopI~}~_n7jTarbibS(^fH^4O zKiVZX%Z}&hS*8pIi|#a=a9kXvA!pFt@nAk2Y2lDm@Pv0CZ7>*c<*NI)_c0!jG3qh7 z=|IK#6sjE0r-N(~htdAc;(gswR#PI?6l&cEXf#WD^O796q6aUVU{$m!yrL~Qf}|ou zs+mix%a-85q;hq1e8SgCcAwA24Zb#s@D%SH_SMx|5SZ;l$f>t110$@(eZ$;cz!(sV z9;}Ug&?A!K`i)?zPWzZb9xbcpvkBjE;Hz*;+Tr=AUT(?3C@ZLU8mExWo9{ZUG5~pw z(>kXTezCI_f2oN}T%D$_yTQD-bGB%OUIf|+B_y)dC=Wfx#<&9_hi%bMCW3{M~X?hHOqj?2*DCx>rIsbotZOA=A~=I=<9e5SntU zszL(WEY6_cZI{KJrk}z)+?{fepYR4Pw<2=DX^3)QjL#__#(F@9NE(e%Nv{rj5zF)K z^|CfvTts2Pv_C4fEP$|TlR?$B1#u;w+uI>K7}LWx0!8PcjvVyA^=D@S zKBVd5GUTKYPgWLzX`$ocT}!5#d(q9d((49XsRLqTF`iFJ?-6GpEvHd8?Fn(}qFS1~ z=yk9on1}2FB}oy)f>VTE^h#U5uHy&^jDaf|-hrOX&|^R!s;0t2NF8N+^QqQiQ-l_H z^D`=ASu%Gtli6jI0X(*dX|TJ6R%5|&0u%jUogrN!DVr%pMV2s1-QEav+lrYfiJ8>| z*r*_YDd>qEnMn_LY`%5Px1Ll@$}?lvd7I$&NavgVE9b0w6I3gH*g?+;*q~L0)t4Yz z(`3U|4K80I=W*j87zF<|%}7eXg&;jrij-nuj*9tIWiO&^tr$%N)pIzWqweDUojW_s zXJ_Ny9@Ht_c_SdwUIK3cf($zu`f4SjMxX*+P>aiPZW7<N2&Bf=6T5Y4;zSe`d;h_RLf_j`@CT1|NFnN0^V2U@_=eD%^Zfa%o3N4LGJcxMNX7CAAM z=T|(O4HO4&*qQ$Mm5PPi;RV~lr#C5-rRF-YD#-Ya9w|*+hc#?B^|*Pn2*>Ui`SJ`; zHS8S~MsaH^zHuUGGw)Y^qr728Wb1UP%wA1sj8c;{vI|331em{l`9J;;N@Xt22u#A( z>CMrA41~~5m#lA?92Kh58lSO&AEI4Zf>TOAQuXTYE^*Pr$!|}i7iGmm7>@v7F1!HU zgY(|cMN|xW_#gb~0po%{KcB?ajCyCsOrVPX(?o*vOC@yR*z0MOv{ey0>r7s8h5Al!x5z@(7;kM4jQCIojC2{sGe+aaAN2r#6&Oo z0;)0KnSXUt#@CMVT^P^Y-Wc93N~pryx*yb%mi|JDxGm6(36KGvhmtXnkwlpozuM6$ z&kIG1U9CYQD?m|sVr)-TBflaexC8%>P6y-TY!IF01CR&`dWbXARmYp~Ch%}OPUBSN zQp-If1~ciuCvd`>KC=+{PGx-JIIuSq=T`Enwi_S;6XdiCg93tNayHU=%1XSb2d3RU5lf(cE_W}@riz*N~kbqia#s7%2K?xz+i=! zb2j3B!86u{MYK^PG700PxQKUhR&av=&1p-4t}g`6JfSCn=Ka8Klj*oO?;;sTrr)e|TCjMX(XL**wT&n{j=H@lKdIRZ*o+r$ zuN<{Yc^{BHMj9NEw>tU~$Fzeg#~7*dGL?X8t@Rqb>Y;4LY8>e2hW4&tTOvCqwkCtx z8Gz(IaT_vB8*6d(< z$=iw}QzZtSH9=F$O=}5==Jlv%B1-9CQZ-;xHN#~)Cj(@4qhwzX8_U3&xTL+r*}Y%s zz|v1c_Z0v}dr6o!`f?P*idUVwx$pK?+43UB#1UUj^SAx+yl_&uF5eGEC1%wxXkAb9 zE;>$W@4A!eSlP2sR3c`rnicoam|>z25CBsRk$5Hgs}+`pSyV&&hiq0;df#&WCOHD? z`!L5Xiwq9JhB!qIf*>CLgLI*qqBIp!lbE5R?Khf!GaR*l^|jqCDl%G|t@wt8Rn&3O zla2TW(0!bDGj;^)7bezJrcd0egUU-O6*i~V&Qx<_-3$_!zpuwPR;;B4l$CieFEG$> zN}A!lE2rDEZ>efe#yZ6j79_C}1o87J?ofK?BFn~}uVRFOs$zPROVaxvj9=4W=F>9E z!#JcBcXxDi7rGO}7J(hkO1D0h-pFc6MYB>i0sWa_5fmTw>YJ%370yMzhXL|nJ$Gg^ z4h}S9H9dk^wtNW&Id^HYFm>@cd&6e_rZ!Gnt9E~EGb0EJLVYp+;XCi z%u@1=NN2qkas;m;c(HLy#zPc4&~Y#qFMC=Xuz<*k9?ls>&K1j06?Juil^6=}JEzWP z+Y-4D|EoxFy>72A1S^odB-o1(H;Mib45^bB-E5M-hNH*3*V*V)Il3B+?45rBhE#+J zNb%o_&FH6wkjE&n#WX&Ihq1iE!ONv4G&Vr%`fl1eE(Td~wx%7p-S_d~C{CyNx8n7T zUe98;FUq;i$d4dxzdT7$Lqt?B@&PPC9qwaZa8F%Fh5+0BW!~?e8@7r%sGN@L!UaB3 z+fu>nc$l5%c#P#_AU(B=2V)>5H}PxvYgH>Y&YL#4pzWPr9m(5X{ckBG7xeFNAh zOaX?;UJyFrA(~m!bbE$P+_1a)F*HQZisR`p<2y^P8w!Mqq=J7k9pVETX2%SvveaFr z4WT<84Dzmy3Zbg$G6t?DemE>@BSKGEiq>hWqOw5OGGO$WxnM|vh)^;*)?<+3VgJ{R zk1E8rPxBF3Faf?)UoLXK7HZ$kRkj4CQWn@WZG>`SKRY@0x zY}zlzBW)8)#n%LGYxGDc+UY*btLO#}j2{D_)w&)SO6{U7`MPI9cqosyZip)ih(eu#^I8ul4EIrn;(v(QjoWbThA12QUsa;ck09da{x?)&!+Y!-cuMVjuX}eRH00$u7aXO zZ7E6y6~(JBhsWcA40r7w$%!3@qs-Z=Sg2V{fEyTrWDo!oJ;$a&s0l+EkOR-m+|zn= z0(l2-LW(ASN#f@!j(#>hos%6uMt8yWMn;F^pF~+MT*Wb?06^;=zU961YwG;F?b@! zjh#4+;%nuM7PTE|ObKF_Lq7Dv7YZN7{X2@BAhe-K0dk&fZ{siR^`@VOXso6pVUR>| z`)+ZB*S5N9mADwjQeLLiV27!B?XRR-@G#QUn&wT$<-;5IuhKmvJdR;++|4%6^2rGW zYbDk}5zFw6l_5eb13!z|hMr(|fL9kN_Mv%8%BG5V$z3e2!Y@uc9?Je3l)b*J+D*Of^sGG7j`#Ln{exPb-G{2RgYJx&xI zkoZjjyv8Toh=zp{GFsN(+@vK>#niYel4>8sXQ{nXcPN-D8~Q^sc$06zuz7tY*QIME z&H$i9W^5YM2;f~Y8X3+<7^91XQ-%yuD;^E-Ut?%!ufWn$OfHI6j}gf*niwz;Y#*H) z6gqEhhKmqZ>j^G3Y)1{y~dD+C9 z%DW3_bB^XQ;|d7N{jvUk;4ZbY`;_k!bqkLwKf|Hgf{6N#%>{ATh_()x>T2(Z>XB95 zO#7!8S?B=Tcs8D@)P~wIpEX|9dyVj9*ML$?d4TMz|EtcR!W!*Tx;W!+I~(g>z_L>| z6UvxhxqERO%v`5bF4Ps-YDYiDeY8?s32xjh%V8;K-`h_}9V%8%m$HD?-m9VQ01P29{iWN9^4 z*>PjdLUUs}9+u+n06pG}QJxOz^>v@grfvVqo4~d&g>x4`gRL%X%xtrLOfiHehXz8e zqa-&6BPH4*N?7h9<3lTg$JqlIjXlKn6@X85@io)+v@t5+BED+%E-j!-N5FnCuS51!<;Gb&BihAUiD* zsOy~zP@=)3n#Ua&3d#bU<%7ZDE~>tHP-t^NSgt+_I$cK#i^^@HR!IWab4I)^*{%%6 z-5*FCgnp>o$O@Z}f?@*CHX|EMJ0JCAee>P9q>+XEU^2pUL|&ws@=4s$#O)AEi;X$l zngduCgy*r9x5jp8)Wqp!Np02?4m`cBs9HzI$zK zWip;5HLs~!eY5leTCCOezHO-F50YrQ?iUpSH}x%=c;xJjrjp+I=A%>VSic!n?s4-` zZ)^?SYK6&0O4XI}es|P!Z!uxZ8QGBn*$;(5G+5+}S)&FSG?i}%30E(q981Gh_DVBe zN!%%NX~}!5-Ex!5N=`vJl<6-sZr&JyhtbIKoB>Pl%>)Cc1#Qt%_sv2=Ze7^efyF`1ZU% za%Kg)+{nv;!OunSq_y#2a9;F&{+Yj>|NL`nV`HPVjW9 zxJ&^co~*P+cQ{z%s80dLyUGN!V5i4%p>xEG||?e%>f5GnAQ&0-_`1A>kD#i(@nnY&dNJ8kOsa^u#a5v*#m3`>3WV+Ct#Sok*K(!Uf6pgtjMc z&~gxOvHCQB49x93*T%5gUMz0MPD1PWC+`1i>zSX#qx=;35f$X7g%Tzbm|e?OwVQwg z2{X~fB0DNMFHfO`D;bhzjUzj;;Mh?=)|yo8WK7kVZMVA3HxN)27N7zO_h}+ zRE>V2&u$s!Dqy%anIWFEP>-fl5`-hV8eMDQw2XkUb=p>sb1Oy|D5fF%YNYIHdIAfQ zb~0mNh9`ewNl~JcX6#)ZHf~U%0AG%7>LGAv`MYY6dsnr?ceR@+f%@+@T5v?aIP2ri z%(f)8&uT(gsLPBySY!R&ojW%sWi2YK$=jA~P5@anCQ}w`v;J{^(4Soz7!Ho(E~T_z zgyp)za{b{lECsoFl9P(&Qd`hu$K$sYwUSjXQEwu{Ge&Hc zS7@d=#|9Q-H0;jy#)D*3buM5hdgZ{c?sFXfeO3ld^Izuusc`S3RHe#KNV)E+(0I-% zfs|cd%M_G9pY~5K5i?l&l%i*ZQIQJIq#8gb^bSka(W215Hw;HVFfe1slZtZ&n;?F7 zdwAiQDihWHD>x>P3cONYPefeq`qZI_>`zQ`~xnv;K5&f;n(lSE!1s2NUEn&%+DMg2f4S z26Zz7FB-8s$YhNg+K0*hX*L(Pf5g>LWU^kDlC>A(3%#ZPjr8V}e`!9Ap7aYm{=zh? z8TzhR+;i4Lxl2-%vMZzDy^uzWI}r>p!Qktkpx-N$jw_~`Isi0UW_FoG$QXt;jqYV4 zaKj>(S7)vrqqd%-ePiE>& zsh_ZcyUh^BH$SFfv>vt4^le7L0iUeKUuB@q3O4lz39I9!?AAWmmD!`Ad>Y|N%?LA` z|C%*xHt3X^MwG!C$zokrIUpw*(E%KP@kPq&QhE7i6l&JwtU`CWtA#w+$-1Tb=f+2I zy17C>%ix;R`RE`oW<^rUc)z|LwOY}}MwDgIvuDwI7OnT9R^}FhTEXjfx}gjNuU(kQ zn<_~xZBGrn`T~rHm(e-Utp_Wg?-b9*PWBdy@B$s#LJVj9*&q*N7>HG43;`D4JhJTI z!eIwJ!wz6|_HvAhF(n_LVm=%~F$xw$UfLuIUyi5eRYOzO!7UwI)X}xROe5R?TVKMD zjYp5*8$NviKfZAI@-n)&Yd`!0FRK6d`HSzKy!-*bK709^EQ0aR_b*?+dFr}le;TT^ ziB&%@=**~?@5__urNexq9}w<$8txm0`}mTz)^7kVRQU(MEeB(uOvmN>5ABMK91f?` zNHc1_n1cr-1sejmM+2-ykyT)xp5`;k#>CvdrX#KZ5#6EpKc#vqyiTodqP8qQG)P1W z1x!z{%n1df3+fIj0!%V|FrT1Frg0Q9%gg$PV~hRY{{=Kop5&OF5l@Ttpvc5& zVVHB9EHG>-fh{&83jpbTlD!?%wA#Niw>KS@!Hic~xm zu_L7P4{ot*ai_5cNYndve-Ul{)KiIbJ?2MXM?_9J( z@6?8^YNw{GRTsL}K?{^zx7|W$?IP^*UeaV6dY#4q9@E(`?~@Y^@AOdFZk(x1;6QpX zGAW=$UW5ZZQyLV!)fuVp%k8q1QFU!=*4x45i21U|kuu=k0ttAUpKQlxv)N?x{(ZAc zH!u322Kx({H*LE(-=abrRl3a?ZcbNmWotME@7joBRf zWZTHnOxZ^`qZ{u^RypX8&b8rpX6?MFW}WVg&pSvOT8Q*CbT~u|u_)OdXo#-W0huv- z%G*0~IF;UbYj=m{M>6Q2=TVGgk1+(*#VA7Kjyh=^IA09s2%x0dg=>EAHp4ayh*#6} z2ZZJZ`YX~?Y^3sJWyhqk6D=A4u$IRPX^|FhL=I`a{QmywR^Q)OU3?UVSq%i2r$u;Q zh_3z;l2-8hS8}FR*enOAp*{7P7`TQ_l*xn+R_VQaI8$)PTtpbkC<|RwsdN3i3@oFQ z_7I~mrp1L$EzTf~hFy%yjk*x@`gqesqh@&SV12{x?SRI~CHZ_Sv#MEkDq6_&wMtJ| z-m4J7sFk8b>L)Z)bN~$wM2t5JgtfY`WSD4&^khe&x%K4v|Ls_PKL))nBdM?`a?I93 z`apvQ8v+~WpQ0JPVdo(e6I1O+C(%hC{q^Ni_A3L5_PX|*C4H+0v?@Q4&->wQDZxZhPG`)8Y8Jh^oSn&N$aIcCv)*3B&LA3} zd-twlI#|Poy$2`3@i3pFGa;b~<~}8;hd}IfzX**wBpFvgu_KCGn_eZ8BT{W&qby zdbP31;8RToeT2a1Fa7|j5j49XS}33N-wEqxj=_@aKrpC`Y(_SUD}z=8CT!=>wR2Q( z-Y$LWcG-Zl2|PbxcR3w=;e;k3_34Rtk{%fVJstP-# zGCRXVAnZgH@l2565~kIgVzdE z#A&pHkH}@}ZTZ~h?iGTlQl*Ozw2Wf_8c_$ayN*=P>e|A{m2C*ZS)TRSx7z@8MI4+O zVf#r@UtZ|D)V?Ej_DtulrS(0!Tt>rCP!r*=s7VQsI#h9Wa#k!DC#(?C&XU(Oaw`(! zTT5XLa#aG`+LFFyVa_ZyIa$R+^T@6-PuxK3ZjeX>OdJGMAL3(^8r9Qqm@-O=X=1*> zLi-iyx9#LSealK@_(GAy@Xb+K8(j+0f1)-AJUphEIpu2*WzTh8SZh#bw~Eq4`6YCQ zWwr;=s~H1^Y2f7uQ5Ln&wxf!<#pY#%Pg_Ge!t$o_t{fV{SH!(VXT zUaWWbKZ&7v3E|YD>qUk_wRu(7x0Nqu;)uiSQ%>9Ih#E8d=XR}Dl8E1+g$c#)#m%!& zrd4{2wesH$i%Mn;@v4>>4QF_1(1nbed;OD>eixk}j#XSYv%8bIm?J>pbYdCnH`quC zi`92hQ~Y*Y>F0ylH}K>0)7dwATO~-p&Auv%F5L}zs+2duKizh?>VCx?{?9h$@&KBh z$be9dez#D^4K#N%M}_{0_(2Ac>agQ5EAKRZ@5(~nj0{J*5t%#x`@hDM-J%$y&3{LS zrKY`3J#X$meRkk*I{o7H^Y6Yt2=KuE2o5zbls!;F<{3}PZ+Se~rzFAyIOlI$NB^V- z=ZdNOtX`{EM$vE#_q6dha717e!y%?*@iIx!P4#>NkBwHA4xj8X&w<7{if1?Pk#ERZ zA4(F zr_?%QgPaovpKi=`B(|Q4l`ewy0_NjWbm=Bh5*fZZ@1p_Ch~gB|wWdm6k=u4`w~Ht# za+B;6u!9q1-HAO9gPLz@H(Qa%BcE7!oF`g)R3ShSbr1HRVy=}~%1Dw2Kunn?B_8#y zb2w_}D~{#KG5wUm#4zukWutyEB&XjoS`m;%W&}Iy6s?ml(R4u(ZPgHfde*{M;h8qg z$*FiW({9tlG0G!Z(eIkH*IEHQg44AgSb)NlA6?;eHVvg|K(|AzlVk4ez_3IV`^HPd zCvZ~J{u>5BP;r|VX%Td#WIW-8IGPU+^63y7r`fs>bC;I1N_5Qpx}LI!p5=7d2_3_o zq5y>Q3kdx;_2e7LT5(F4sc&v4sf1chZRLr@m+dUPL&!F`F~vMfyn%GvqA4)UX>b(Z9uNC7v;p}>yNAje z&g`;*8}wY7npLaqB#YEUJV&)KoKZMbokPB<*l zxYppkXl8BqXHsjRM=f$Hv8d`^rG(A#Yxko2C=_kj;<((ZO0PwY6-plk1$W!S1y+)e z)*jsZ!fP9z)%}N!jYgx@a-RV(V7zk-)I6MU)Zt1=+H0rXew0SFHK^YP7GJvuU%ogx zax4`~XtZsm2S>J&tm9(|RcLTFusnX@pRLwW$-|iwZ+J1n(X?3kSsJO~8e@r0$W;^T ztnqqN6*#XrGPNfpE{pJ!EG5YEh}yF$Rbc9E*Aw*MNHn0eD8bAsX}#Xwd?*~Zac5F? zRdBeVpLn*=TjmMPfy-zMwmUvp+$~DQ#QM|ax3?odn;^Wi8!;t-qOEA81P}5F+Ne|q zk@kfW)g>|S@U*9H+wEOze*%2j+v{UbnZ*EF8qx+?qPQJHcJ3$BF%}-0hINM!-j2P! z?JU568c!20lwd*zB6+5Al0Lpn%0su6QS0bQQ5mX$mQ_s6in#4$kl8^W|?KiAB}bjcMk_>!M;7gmH_ z?p8R`XlY>@QB1EzJ`N`>*ns#f93>ld4)BG>toZvuT`otWVD-wOeesq{=MEZe+gtek z*E&TZN@p0LhORn;^WAeb)h8rvRTl~fiyt*px2^e|TAVA-2QJ@KF@-eq5%bb42E&;C zDC;?Z?2`3tyYO+>^KFo+#^K|xY158ecM{7FSknt(|E_DgoM~uDGwNKMSDsn>Ge@7> zM_pE#FGx4>EQM1c3I-{O1;J>}m4U48O|sSKR|&xZUs>H83==*3tB) zVr4H4-|Li?n%v4L9c>!f@N?UtmTwVuftw~i<3>ISn0YcVkt{g@G^qff7-fg9m4?+E{X-UPRY#3YBRa>gxx+UfLSJFn2*#(Jm z%F5Ltx@Z#zSLn9vCdqmqDA_p}LR zTDlz&K-dF1n-E7uGf*4#RwN(NAdmCeMV^lY-VD&m+HC^sdS>-MDqF+7D@(5%C+mm0 z;gNb-GVDWzstTxQZq$gDcq8Y}79B`~^AaP4U`EW?fEN)}brql>0HoxIZ52~(MeA@5 zor8&zw)-^2aJ9-Bb_fI7XLY3Q5_7R^L_6NgsWlyzIiy6iBOPE8#(UqL8*JQ2hl*0B zJJx_0ToRA zGY``>ZdZWaf3^EMeGPxeFk_NvEp-~jN!>Mg#7(7xclsE*#O@)rEA)rHsX6;Z;!L#b zsQYGiImq{TuGL+z9i!IXjy!~u82`rgN>^dkp(G~1&A=&17sGzaK{0HB^85kGKvHiX z)iJs8X+fSKM3icPh8o(4q8{p!3f-Ex{ST>>i}8Hg%{#Pn2TX?g6dSuU?)6ZI9=)qa zR{`X73gvfqH()n$-`|vrmzx0ccV^?x8OT1g0?zPnxGnT0rPr88thQc@KL4DHV`{P5 z*R^mhi6sSspavS8Jsg&Zk2PV=8rEgtTI*{*#9f3K0$52Jhw#W)a3oPe5o7AceYWEk zHi(JuCgj`(yW?H5H?0?Swy%utCgf62Mk~rQy-LZ?V;|w*>)P#h4SwO`d*@^duw&>K zN6KJ%B2h4hnUa*YmD}G`IwFUTrX^uO#q>c*M(K!1jAeySwgSkibcDodiU|fjRPnvHw?o=7#KcNO%QZo|Pr$?UZeZ0Y{}Q0q7ArFJ zM+CZLJi$gFsIX-AT1Zjc# zNsxjgLi0gk?ftv-sX9{8iBC87OJZK=&%bo&Q9W?0GO{?_y8Pc?G_g#33T%BniR z5~H;-rnLT1vtAaZH7VV*7I{31%(vxx*;VGgR;DSXtFdgb10(ab2yoX__1Ylk_{!@s ztcrtin>PJs7PJFJZN@TnR;IgLOSu~C&w4XbwOw;}r9fmmP83M<-s8czd!8KQ-#0Tj zw&7UuEeV%+g9+O7kA*pDLW&gsY|CIcmK?QNq^{>AW%FRaPL zNy=Sp@mK1gt39w7b5vo<^Q%hJ8Q0sc(NTPo8%rk>X_JY{%~_R&rKC0yR8FoKQwa@; z*lTu}jk43+Arj@sbK6eLLDyi25geb(0WIZUAziLg<|&&(7pgkK7iZ+utzBCM=5?<- zNYwFokW<7q()RZ`)iar~@sQ~yZ|Ra>jyYhl+d8RI=2J9CVvERcC_*vNgx#|#;4Xn2 zpRh#~*=E`);gQHsoUEtDE;}Sk^pvgx;|rjQn=?i1UAYrxVYp6;UFV&JaEa|Ezq(@H zu46qziGkPG<)iQ5(e8#*#r^fb{(9^-_V{sYP=Dlnv50UU0gz{wsr_PB@P4%Q?Da|ekUUU5i|+*7)(QKy{)^}zJ+X6&`4)f6r> z#{Q(CrDrfaF^Ut5@|u9?kYK8lYFb<{%+S2JP!Ygf9ka(x9p}@wq4t8QKCL4 zhxqzBoTKUCcjn>l20x=O^zQ?B;DARE;%5lg$B%=^W|SWg|8!SG8+et%n;JpLyJWAI zXaH0T3n0H@l#x%FZ-l(mVWfxms^bCy?XWUi@0>3bH+g_K}|m z2{~r>EbpGb%JV7j@8t-Hs5wB@7Ue&#Zz@qwDEa2oy)iCuir}3}c84kse*4+B!_@sP(^o^l*Etl0DT4vW8k@g_Ceq|%?4WS@9RSsxw)c0_5`RA0S41ctN1mfdNV(+ zqSQ*1Sk^u9wwX;p*6t;`>MF;j>RuJ|0r!H0$uxv$c>jcaWAWN==3vt^@{ zOMOXaN6}n$$uR;Eq{Vb)h7d3I9R}?r)Uj!SI5l^CIKyyWI=Qe(i2D4+lcz7xp)FB) zeqb-DNMz*BBXMP2V<7svn zC>Pc@BPv-EUeW03=bo(@SvyAVS&#!Gv+ViRaUVq-l^tdpw-49fb=Mp4xAz79`3k?D z;MWuWdUAxz1hZ;~s%9-LbbNwUzr^BS9x)HeMwc&DlsWjiXG7&Vp3PO!I5&l5NDbp& z%(BxO)PJZoAlK2$PP_Vp*lW25YaNPJPn~aNCht*4KJ6oSe z@nMZ1@gWm2VQ?meQ|01Q&1=^xA&A>}^E|)AB_6HC^>3sli#oni)>;OG zBoR3zY@>;cV=HYlV#8Cs0&YdREMic0G@CLa+8Rh%;$=2#{blv{xaCC%ZvS9AtUxhOF3E>38 z*uz$iBSV<7w%MxH?(_)%8%JV_O z2%NHNE9&~KE`cD%(ILfoTcpMe`c{aojCLXiQo>qkppJpvLCx-sHj%vp92kvlIe;o>4w72g zhO$kfNNx>`7%8N}W&p6fJsKpfjxUs4TYBmz|pw zNQylxw(u|iF1meI)=)TUQh{&5vksTADrki}jLCFN>THTLU=%&jiut}{V*-xy83u*G z6e!ryoDlnAcW-N$bvx=IjL9veS9zWCn0wd7<|gCFZTLJ6qrY zdxyfhp;-|nhC;;zRY`49MHP||4*b(Gup2bEL=zboj;G8A+)Gc^N>3g%TMt{0zIGpe z(OloiHy(K4^G3_l$@>XcN_{{1NS!AO!#{j)MV_LCJw}rw?q#v0PtTs+mf%xfZVTJj zh5XjiUpM^sYm2Lw)?r&caY~gI zW}BX@Z9H&_c}ulTzrEyg@4;kBJ!mc^L30@qn!hs{f}F?2a^sPk07|kTc=^bK7+Ap0 zYHhDK-74-nZ8z4NU-~dBS%ZwL&~iKfVQqTcqunYa<*wP=t=BfPjHI?orCME@oAOs* zSds~f`o>P$h}lx?(t*sdzLA-GI?f42?NaB}zIJX1HB4fdY?ju_do-*jpJ-RCI?=M1 z?$6}<AtQ%ttP(*dZ=X%u zw*WzGH0$Nv{xBP?fTA0w#%d{Q?X||yw}-to$G_3(_{SlqZkZ!}tCPCPG>t7Tz+SI; zyeDyc61bdjCMT(y?xU{umh}WVbnCJ0r+$Fd6mWD} zHT|$*TB)TK^Pxm7msYMg=@G1$4-I{2Q!h{U!{%Y{Ud_>{n$3T~bbsb@x5}kS$P#xO zqi~^okMN`&8ho`tl{z7SZPL!49_b&~guC;o{%yUYFDi*eS$pxxI_VB)pyefGxDy#= zpwTJ`6!5x$CDh)yTSTLN7iQsLJU%zxe8$l$F%-Ry)IaWuaP^L+!zdDJHIZ%E&O~;v zoWk?Tctn#`?O5b%C3u#>q&)k+Ef1j_!IRt0#FfQZksOe=(+V@RkT0FsW=$=z?xFYn zE?zOA2bO@F=p{|i5JQ4}qV9E(JFXj*sWyVcMpIR`?&B=fUxK*F#-sLn**J4bho+bSm&))Q3@aAMY;XxOJzF_;J%#e{ z59Ah)rb?fa%wXq_wxX|elWM2&$O4@_fe-am&PUM=-Umb7@PO&dnn15q<)Rr6$YII;dLL(IxD8M=RW$_(dKu$!(yB8bZwj0@M%<-6^Q> zOu2ch@S*6Qpg}<+6a3ub#)FpQMO;>Y;iv7;Il;OqoZ8dqK}(;oOT$d_w5?Vxql#(^Sb+VQ#bhsb4Sqy}; zvmg%ce!qG5ht0chns-k=#p0kTyLf@%m)~NMI9*+B!OT`#F4S~z$;{qk!O$30ESlNE zC3CRxVDr(}@c$+}y7l^@cI6sMqm2h?^yq8;4_>UVumASz>i1hva)_mH`t7T&%RHOz z9QI(ZtHU1Hz(+8Svom;h*fWoM*(E=KL!EOb(AT&K+3wxqAqt|G@M#Q(jb2Ykp8m9} z#>+>_#i)G{9pQts@qEfpHmQ7nG@s?F7xaV^$FE_uX zN|oJ2WP@Gh-aCWvi9BzU@SS0_vUTdtcZ^Fd8siPGdj4DOMX0%{9hyB5zZ+=lK zAprO*g^pEX>o=4;bTV_Iv+rHi4r_tmwurPl(PJQle@vL)_!)MwCq5QEC z72BcW5Ddd4v?dU{?BT)}?*37tQkoL7#xnqxNx~!(wZa)=N@*%?Dk{3MaNg3IxV2mJ zR|z@=9f61Ipi8xPsz_`*LgcaaI9@_MRj>A;>ncT5V@N(;vPA1@nY+Yd%&6RLE#VZR zR-vWP4uU`P1w*u%V^;)%}2BS_L^@H@D7R8|db zePOuZw_jjf4`WnztnA=#_!W~bcAzxzYp^BW5Ai1RJL#zf=w8v)U~nl==jR|^vWexd zV!vXSONgBR#auvKStgymQ-bf;3swYp*WE92~61 z$JS2;PA-{r*CwQ;JDKLA@xA4ZjEHP(K82y+smt1k2y(zE+O?m>a{bIiCvU>M7H;h~ zddd#^Z1?Mt^66pc)pF%sjUj;9otbs~W_0TDy&n>%QphQVx|nPRw|<9FG4?8Q(O7U{#xpyeX{m0ICH?FPC?_1psc>FFL*9@d~A!s71 zU?RJp0&yZ(cF^Dweq;4V>_|#T9qfXEjF|uo%3}J{J?xE`aVB!`dTh0C5+Xha@eYS> zXktvI+^ff*xbH52QJ5o~q*RV?IZL^z$)$+qKKJu(y<9j-RfdXy$lgp<$0em3>HNZM z*B`y9BjL2urTdW{`%`Q}+~tjHUd&o`tS`~Q(+hPaICwk&0Duh8(v#G9tFK}xPYwVi zdjJ4r&vzjXHfC;McNY&g5ZImF%oFTv<>JQfZs!ez_*9ENx-T^)cO2AqzMSH`%o|e5 zX>d;|7uInsnG_Am-Q+pi@)5v8F{pZ(OfSFW>v9~_v4S8TnxDMo&4mqf2qcK-c}L*Io!`v~(p89DP-`~egLj`6wp^GVAYgP#g-RM=1=}?%vNg=srnJJe z@hh`hbIjng<@ZIElbcL1r*L#GdJ@P^4fVV>JrUhR@nt0WZPXKRo^{%U_5A?DoG|!L1K&EOm_dN^ z?qxYKs4I~ptPaw<6an}|xbBu0h>jeRjLl&VtOL#qIJz$*+yi)-duPaX z1#C|!kJR2#RWKNb)b_4})Djk=D5!i|?{G3NKE?CT%)$>$F{{y*rQ@bkhV7QkzG}&^ zz@({K=ZK{&!ITaRKEgREzjrQ}HtBnjlSS7i8qK|?e;yK$lxk8H{dEyTs%cZvO`UgO zp}K)thC&+A7wZ$X(t0X$b@ObxvVT^6?@WI-d&+IJ-?oI2@PL1FmbsT8hD42obux1#lk2hi0abS)BO$fmFeh0xQW{K z^X|;!J1K%~zeGB|7%GQEa8vmUwmk?$`j!$-4U>}YM~Lt}V&FKQ*|`PAr@=H1+SvAx zwOGB^n+qDT=?HAK$gde2FHO9)KwVZ5%TWV^CmN{K()dz*a#K&Pm+kcH<+-A$7yf$F)ikIxSQVBXw7P{G6BGL`RkQnWEaz zX;(kUV?SpiV9Zg4D@yllZm#)oGn`!NZ0UHtS^uG?@!|1|?fy30z@`6i1zEbu5^xvT zx%OgI1-g?6kHxRlpGp~w|7F8Y17K&c7GbUx8 z0GqR8DA0d35UuwWg40U;bFUAPCCwUErGxijDgY8mJNW8XyX6zxjy%6Vv>CR#!`vky z1j=v-TagOi&{hBaLw=y8%WCZW^nm%*w3~D)+cF!*OqKEY~85;8^ z*LPEMMsjOKDRD#03POioEDTaF$O!3gb}sPI+Y-b0j5t=RVhQ#-QhPFEGuIoL#=be> z6GZ8E7!_$G4d#pFSskJ_xFdWV;!)XXh(1T9`zb14mfWHxt0Jgi`0C42%xr>-LxVp> z{i+2Zh1Gb~tJCYlM0f0Dj5-cXzRmjF3hGbIVz%zHSZC}|%hyL#_*~ehm2Z^bHiLx| zBbTF>G1$w;i(Qk!AbO9SH?Ab9Eh8o&PVdlnr_q^gWJ=;0j^$h7iVke2u@TPj(Og0( z%L&F>?rV>T2~7>BUX&BAxq}rs`$o(OpE#!aL~Ln(WqNykmWFHPAi;&hHLegDffP`q zASJurbXF%xkZfjSD{a*0)k%^~eu|=4_am~1r~LqIGh&1!q=}T`3)B?zQF+dRw8PaLW+L6zrdBkk|Wq zU^9`AI59%}*X%2Jw6vkj1v;7uP1cPBQMeUAxHS>ROtkh#kRqh9>wS5wy>Cpr9x@s( zB7MYCQOgVGOi&Arm7uQxZprJ=jK)~{{jxFME#1ho z;af%Km01Mqt-wUS_qdMqW8-F#sBoV>yuVhg-8La!djY;O+F48#b>r1gSY488YxK{A z$t}+!$XU^8t=VoXSrVeZ4h9?Ta*L}?1*f-!kby9g2M(M(3h=`&--0k^g8Q=lJISgd zW%EbalaIpc%5K)qqIj?473AXDf4ROJU~jum}>0d;40uNPMX1=!lfUXA?aA`#>%F`3L>`kSIl$!+VMBURQ$cqD-2Q-T+ zi4d0sg1Mgf(njnjR&G~OCH*%U$2Vzpd4||MWcnB_oS?3QpI$!sFR0# z{yYH)$}u&%`wxcocV2uAk*6Jf5xumtwjAMOh7r^li#byHdRhiZR}OyUpl_wETVX%I zO>G8FIsim3kN70W3iry){A;v@mAm?C65SS$r?n-5NT3H?*IP2Mwj+j}v^*Foh+>*P zn)`LyZkKcPG(;C`>z1uBK=sA!oB)lnEm5+aQ)Qi%w>2$`X(dnL5SSy}tZ88PLL46Z z7~XgJorJ|rVWUSm9okc~poNNqYH)n2+mD`9P*ZiaedhF6O=7_i2+mxa*NLyMc(&?8 zwi1a!R@fqvTM%wnz{*U6tOnhYTkbD}P60i?D)W#z&ZD(Zo-V4=m(Huv;eN^_P7>C2 z;=0>s)sOKo8DwlnZIrRSwSxurn~V4nUW=0so2@?v5aveJ72$hT(oB6u4rsN8wrfS? z&*-Q)5MpRvGN2x3k6b|_ea9#Pw2=$uEONOVktUUCojjVju6e#gZ{E*R35Jvo;LChB zU&G^GQ@AIq2rvRw&`0Ef{b`l2molw6Q(p6pnQ}-EGR}}20WV872PI^-`J8)}L{2Ir(8v1jmo&Or zJn$jw;_}LKFGvVSC5xmeVfJPlhh)Z<9v5kK4o0fltD8+rVmc}ij`gYB^%et8--p55 z=3np9s95#Vx z%>QbgW3!=pevmmdKdh)y>`772bf$$ns-JR z=s02z=k?(KaY1N7XbTv(=i7=pA#0fnMp1S<3+Q};Y7J5`KzJl!V~*;*kr1dOLK1kb zCPP|L$VF&}@qpIqzGxJ(NgzV1TrJAxaWNor2WL0ck>nNNk0e2J-y<=>S29V4*oyvDgT&QJz6l}iv$`0IX4J8+tQUiR?$b)XK`v(?hAT}-J=M(F^{+lbOPgJ+8Pr+x zMM*YIT~-jaJJ$<2pv^?sge(tG#>Ka^>o16gR8qzv42rR4w(p|GCz2Z|*pq;*U0%q2 zDK4al{vPLxk1T+^F>TaeSO0C{@#S{Teoo(UMOQ}1f?2P1Saa48gM6?gXg*@~$I*)CPe{#XPMjBx zrmsaXy5a}-NaPQ|+((SxJnK!u)QQ|MPiO~St5=mYrEHVAR#fT}^j!>IWY~R<{rJtG zoE{%!?MzzzUL}(u??=-BIGIQV!8qMJTh(D$WeeZqfS7auUXU0=S-8*6Gzos_Vp)t?pQ^RT zNzpfNhZH;&PQ~1cd0-mG@?g5y2{+2{?YWv^GqaJL?q>Srq2y1%tkR~YFmysib66e;6k}E(BzU=ZCB9rWv9)8l zo%Y7{qzRS7ULcguKG45OlR6~I#^R7X78C1uo9aMfxAb#=8=D7RxPq(z%rQ_197Q-*XHpb`T9SgB6j|)Sw zN(T4ipYnHhrYchWmk-!U%Rb4uF&)3GaxpLd{`JhVTJ6YCEdBTD9o`}iyLtm@j?|`E$i06%yIz91DFFs3Ij1B@`8RJua zJ7>XJGzgv}ZDk$6#IX$;yBR`o$v^C8K;cr;=niibnB|WF*uREvUU{_h22sb2W1DFEmlF*-e;Lt) z(H^4irNqn%0SuwFkZui9&#$%5+N|0@i%5Nz2sJue+z(irz3JTu1KXY!x6TfCx|k2c z{PiQ24thOZuZ>?dK`4Yp7qSYxZtF=tACD4PU7gy<;K;2)F0^o~{2I8tf-(rcmM6>_ zO)Jby7A6EAMAWT0oQh-82cHmiz&9_YuuZo0Nk&#(k)z{0c1}_yd7(#QBIduMXgI$_ zkE&?!NDQNR*ONYur7J8No#D`&e?kb3)Z!mpV;Z(l~lvuTkgMr*+X1!KXr zYgynSoJ9tCBYTMb98FT*ob*iGL#7==9<9ca4B_Vm z3J+h4ejlDQphXpwf)@Cv^qr4VYN=haX!Yj&v%vpcqheXs$zaNq)o76L`0!5Y`OHz*hTqoeGdagu!&DJ!I2@(rqwG&Du zNE^I&eT%KD78$0h0$iVJxD4h5h0Hvq*>II+GlPk0<4y0i&%&EpL8w@rlDQ@2Iq>R< zvNGz}jk}MofI_cj)Q`Meb*XjxeTmi5=q4c+UkxXfdvyC#o2rp80QLf}2M_wD#Cey$ z;dmA?XY!#1%O2#pL`2jEJRSY28~qMLzRExq%JGwUn2Bk?*&kt6mbxGY)P^iy#`nO1 zwczZJ0$zUw|A3th9#Y*$w-=zosDs*y56eP(hTU+(J{`*zSO(XUG_2%GuFDUL`Iu(N zJARbQo1w;8*-fzVi2Tau3tAnUz#89Agxx02)eNRmwb*Frw5Su9!{uV}M>|CWv$ER5 z5%ZZL?n9s75b9B>2ql-0r)n>GPSU8VfR^N@V6UK1N_|GeJ?Fb=t?{BKo%+BfEtx4C zw(9g-wfS?+Ox~~el9SgiBQi$cqa}!m)Lh~);U3h8g_z~jxAS6$2&5M{Un8V)UQx}N zP9*R?-1b1MHbM<&@Um>9+|WOj-kB3Jh20yPEX4W$l9oVH5eSx0M}e6j0pzOy!!kAR zN>sw5oO0j2dl6Nxq%GOnPo&Q@s%pV7S{k(F90ha}RrCF}4}{ViZ)6)?O`-UKmYLE& zx%)ZD5X|bcK+kL_I={nL%TM6jXstudexH^ZC?ta zCti2jRgA7KOC@y}n7kR^$f5GJxbzQNdEqtv)jxOhpF~KwA3~7O)eFqYfFk^pON0^W zLy@h9mbwdwC0?`j5n%$C)K3QoMpJl%%(iS7GnokFwzvBZ5MldWt1~w)Q-U7bPr7GU z6>;p53D|yC_D(Vq7%OZZIySlHDx0Xme$#O{F#klsF5mLCL+7-!PhUX?dSGNKUt z%5|KxduC9S>~WD>o)Sj+KHqJzs;*vI#SWCtX7uiQK)|~?sSXB8*4v-wv;Pk2BLruO&Xj z4eTibksY{woaduWfoD;vGl8wt?oA9W2Q;g^bRy<7u%&y6%80XUx<@aAfLcl8*;bTT zex8h3d|(CXE?IZ$0WM3lQdJW1Hr;))2@yEWP(Yb_8x23To(5;oBOLW1BXCfx8t+A_ zhHbVnC*JuR^ay_u-&IY@WOqpawC2y#g{1F`exf!RJ}L&8in>a}x$`&%T#Cs~;Ga8$ zXDxEQ+sN}_mLPNtoJ^^D(=Z7vsTLEiZlDGeev8E;SBFIbGaM#p?Dt+-7RI}>LP^+YWuZ%r9y093 z-Q3g|c81kuMeLG5Ju#1Lzk*{)EK#h*s-O!nt$Q1bAF&LAFc>2xCd6acZ{f~SB*nfV zwDQb-IlN|z(1Y|QPTd~E8o6-n3(aa=oucDt3f~ehTE)|@h#Zk(_#ryjxlj<}wJu35 zf1s6wA5+I7#~}{yuic3Ft~-5=GA;l>Hi%Fr!8zOy60#U{7xg1DTC(e42uUz*yYS`O zo0lJ6^AVfC6oA!u5Y#tz7)C2O83)g&Q&Z%l6;q8K86(AGPkdyJgYH8l zExQ@ua5HYJPi}ke{XN*c=gWscdIh=}MHHq6^rq6*!5@nHY|M+{8HzPTOpIi^QRY?m zp>h+I<=IJJW!&?S4e{QNpmS)Y#f%^_zdkEuH3v=a-8@MD`f8+8_w00y%X^V7_Bi%- zK1a68`dYQ9l7sNzt}4a{poUlvpN7tx!Sp(ujyGpfPgE9Xgd4_i`+MOzUH>`M7*isL ze~(UG=76$MIIdRdM>}a6#V}}}p}YGDH&zSzplS`c{!5|7@rf(n*i3C_%&IQ)(f19d zkHIuM_U4;}d`5eTJO2Q_mbXCkmIFmjROlnToz4RLuDMfHB`HiGJ~@FQYL0VL*$zQ- zB(G!zb2@rZa)k?5ar(yw$)3(GsFn2(Tqyso)E2_)^+n9>${t=fu(56d!Ixarz5Jof zB%u#MvBRx&P})1b9zVCY>E2s;2x49u0iCVR%YIc6mgX-F5duiQ*se(Z0-(`6kfaGM z>f|$O=KH)GmTEYl;~3)1^T4O(H`8dWi7aHq7%NxStWUBQSspq#Sh*lfT7@7%z}1xW|D)+_>)hU7*pMOtY>XUemw@I8L{EN-W%NI zw@(>w*LPMbLf#wD38<>So=RM{%S_dXwa_PA6@s zhis7P1h9pEpIee#0}@Ki-KSAFSB9Zo^OXCVM*&4G-_eVCcX4M8!h)vpU}4DYh{Y0X;uxO-UTGUe+Pck?GilYY-Xa)OyXT64~R%Qcq40gRN zZPDWBsbJli0*9ouAOo9Hlnh5I+ICItph@pMY5q)h(?XbkeRPvr)beETm7~Jv4?fSBFe)!oA+~BpAmNmnQ z$)sZzHhc%G7YkmG4Nzey>#}d)!VaSh1-6U$P`rReVVl7nu=gpTwg^C|9ZcU?Aw2YP z=K9G)d(xPOH*ppC^^}iT&up%%fLSKT;?e`iJ3O!=mT9%=gbIE5*^Hz!Z~b{L!#sFf zWYSEOqi`qCrJ}&*9b%nL%b;mOm z&3}c4si2MX#LthhJ2u2pTEo~~7Cy-w`ab;xxu67trZs1{S(({1xi7c_yJ;VVAJ)); zM-1D*ol4p{_%j%IBAQcALaxk8EMx{{jy}{r#f?T`$)(?zno;eIh))hjrMh z5f5^=zNtj^CaV&o9TROC0ulVhrFeQkh8US_mv7Z zt1Zzt{y}t0^#QF1M8-Tl2Zf|^wlBdphB9E7Jq=oTcqWVj>zm)Q>jQ(arOrktK{(63AKIM zecH_LN<|Tx8^bOzFR}sRG=2FKVv3Ok5tNRJNsB&rVHgs#W?!+%8)l*Aac5}+N=WAW;!iWGZfa7aLNQdm2IOjc9r`bWG+uUBr&@L?6bh}A&4*>n@oBE-Oj|$ z@TjFym{ao4UbJ5Gt6|Gp={TR)YIst)oJGgG= z^r1V-t$&ZL=^Vuh`r&g~99aD`c?Rj{vfXg&DU>Z4p%KNzER_K)dwz}g`ft=ZT3BLh zVl6!K-)-)sZI+B|Uf6sqX-_-k-j$Ur%&>+)-rX4spT(k<&>F(BY$6#>^KvnMPBK<5 zd1PK(>Es|uUE>RUb%)!IH5yL@iPehf;^aY*ug8`8!6zOSQ7sFSpCe9--_0D{d_qL@ zpc4Wt2$ST|J!zCqz3WyWb3=3sPl4m1H-tN(>JaQysf(wmMVxt}0qT6?RlCs!olwV* zT+foU@l8$Hin_dW^VX>kMOsIY{31F3q*6Eh>kZ1Ci)TDAqIZ2xLQ~iq?Y=RKuW5ri zn`U>-Vge&!aYD3b8-5GD-<1arBH?U~uqS81%jq7R^$n!%+C+y;ast!oY{&o2hlLWc z=FrWo>3Ic@S3zUdQZ1kLXSF%`E1{w{3m@8IXoh*HWro^2SxxjRyiF9ybq(-F2NX8c z?~j1=O9KA-A*3Vp6UiOD?=^pl>WGT~S1Loz!76Q;L~eO=GrP!`Wmd>Zo{ zR?;_(xYE->io)o~q0v120{3TcikQx1Sp^sX00;{Jkp4$qhWK!Ef?S*+7SQKvtfQgg z62^hvzN6>8Um|Zp1gfm4AQQHGud`X&Fhd4>5OP{g0Zy8@-5rok6OQVea@z70KDcI3BG>i_ZzzytF#LG9Jep zu9uZ~og32MisZ0nPC7f|XL2ynL&4%PD^klVF*h*}+tQN=oNy>h~89G8!(rj)@J)pd) zO;LlI^kHqHuc0+wuhF+RPUhimAFqeJh=zSygPW207S^&viWp5<=SmwsyzNAwON#os zQs8&dcQ3|Fz2tS0c7vp@1Otl)_b-o@a!_|vDlGtjsSN@z!o~so z$6;mX4rQ}*wsv8c(9xDx)6@b&y`jHj50o#bL!Zqm3I98G>G@&*J62giN=8*n=C82f zBOBS!XI*vAk>MW#|2q_i6hB}7?^qQXZ3$@!ZHeEd;!YVLA`F={@?3v*F9G_GBM<@=7W%)azp1h2V^6x-0$9lD1cK|^2Jq&>O z58OW_van@so*~_|Lx24Z(ZrXaR22D_4>kMS_20F z2r&PzuK1tC;t-qv5oZB`SlPL`KiBBrX(BK6``$b^1{2Sv<~dP+gyN8^`u|BB!~*1C zVPofP^PFl6OBav->hgalhj^wB5j~S(p2^So|3@ee8Ep8!kpCD<{0`o>Q`{JS1{*(@ z9_Bx=|1b-4)BgedN8|Q8_wKP6$NiZbh49=q{)sF4>HolWhq`%ypdQbDX@8N;95=Yj zNT>jS0M+lBA6ovN?PTHR0RBt!mAocj@<#*!;IIJz_CIM>`ug`=H?XURog3H*>+aoWe1ZL(*Co%9=}+k6jlV~GKrAEr0Iz5`0L`D(p8t> z&)McLc)$BI{u5ao64MX!=l1kB@5bND?C<09e~~b@ekc9sDE)WZ?<0eM(H3@pr~PT1 Ypss}QTnGUG{O4o!`OIkl*{*>92SZk7CjbBd literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/progress-1.5-py2.py3-none-any.whl b/src/venv/share/python-wheels/progress-1.5-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..dfa9185afb7231464f38df5def86d9641678c384 GIT binary patch literal 17547 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 literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/pyparsing-2.4.6-py2.py3-none-any.whl b/src/venv/share/python-wheels/pyparsing-2.4.6-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..6ace19132827b162b83d00fc2dd5689c7af189d1 GIT binary patch literal 77093 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 bD5H~?vK$2Df1QQ;-iW`wb4B~@CcyszaU1W) literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/pytoml-0.1.21-py2.py3-none-any.whl b/src/venv/share/python-wheels/pytoml-0.1.21-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..bf9e9b36330452a97815412de5f7395af2a7e201 GIT binary patch literal 17938 zcmaI6Q;w{6?DZJYo8?;YcQ_k0iMp~f2PC6!bqm6>EJ zNCShQ0000$04S>qDOMN{M5GV{0KlmL0Q~y^IC#3)+uG1F&@s|6G18e>I=j$X+L_tY z3#zI}$SWz+xp=t5`pCv_adqtY`Guyv4p{VW-|&rsVF5Suf3|JA$+wQqaApHa8%fgm zDv*^_)@U6QjnfGxmD6ootCK3rTSXM0lMFl;wPfK zKYSBaMDuTL@NlVTRvy;WH9yohw!7`HN$OE64_8$Ce`Z6gR+c`6M$tKysZ~bJ#K+_F z`Z;+yee_Z8Zj2O5-rnnMX_ReR;hvUKf2`lVRWZbBiMdm$({b_pzHJYRkH+WmC=l*4 zf6g7s)BAsYKStvhWp75mqO;F$!`tiY7A`g#ZJS$db1he})%&VzYKMt0P5r_B!@~&- zmAd-VIhwpG`Aog-Qo1nzjs%&_os9kYHV+cQ7@3DU!II4&0QpN}v<+{1+l?nab6LE? z9Un?$hVMZQ#9!#D)_Y*TfQm(InZ1wOu)$&j$RGLjEWS$R8#^X7d$!H46spC&d|_7|@hOx`!VII!yGR$0y^@kJ!9jnORc?M* zP$!~$CBX5|uetJCC7$67R3^(u53v8JGc&=i#wB$(7+f;_ILV!ADL6=*z$ukV$`Qqo z6JFE}S1OvDsS0M4YO*EzPW2*P3mv?`c>GP2-8Bsu_M~qS!;D++ZXYKuZ)2?TdW+a- zy7>$rR(DUmM#W@Ocl0JkEFF0tjR z7?;eYQf!Va;1Zvw(%T$U&*33GRJrW4R5eP{(wM49XTsir>OM1H)_gTdI3pi&ldAq{ z)fy=|GJF{!(-PQAu%T1_&$ITLlTtx*yxctApP#3vx4=Fhvyc@uRF#u&|^vtK;WQ<7*W}0+f1QCpzIR^ps#Au*KzUkrMjdK zVy<>6rPmohP-ZqRinOR{jj?pi)?;IHYP!bUV-ByVez@I;fI9-2g2gHbhsqFXE2&Hf zc7pf}&jtt$7<9o@V*Be)jX-F?9~GgEp*HfRR$b@l^VHdtR+~D0fI2b+z22WUud{T7 z=+LUGSuoEP^}J%ucur&%Wpt>V!KkL9yDt83Khb)|?Uq5R2Hq&#QU?jCDrTH++lsck z8(;@%TNM(*FyLH@mf&ae=MXn6M}8~mSditHz*m>h6F=6Z$R0IlnmW>6b6niD`_ZVK z`35u91m|nvjMwBBb)T$mQm6g6WM1il^PFm7i8Ht4hb=aDrL#7G+(%m;Wo9F$rQ`05 z@~WGdyMe*6_O8R~8Oy>>QO>Y>kEsVz8IXX(nz9^}Ca2*9<)w?JPjv2=E`!h9(boxi z13u;qhxi8mhC<+w?Jz0j%Vi#Ar#3}E_%klad;Vx=1yBHV*B!|VK#`K)Syg+ynEm7S zJlbu%B9%q0RQl4Ol%+uzM!xu~1<#>G{M!NiIcx5Xgw&R+DcFJw_Kx@}k3i9UDrp|T zc@qYB_L~i*(RMLza?n5~TTqf*m}tg6X%*^t=V7$)?h3 zt!xRJ8qT=l_^`?y>gadPSxb=_vhcvR1p$P#+?lFK4uC|M)a`1xX?7KgrkQ1SI@MS$ z=be*CiR*>M5RT<7A%CA1<>%isxcaW;EvLI2$Y@RLnxE%VlUo4-F7J$JS9WO<>WTjC z%%pNp7H8Ld4>*wna$tm8Y9in|Hz%kDQJf9QS}kKtVy9R>76!dG%WNjgXmVukF$iY_ zxcGTCzkZ%PN3REsvUpGGTX&A9 zHpmU7aF~z2C$#|sGk*(9uGrea_~&=Z?NiQ>RTiPgIkQ&U&00ooV!cGYr7#0DBv2kc1~SRNrHrSsqE*0B8BdWO79&@M+1X&jIj~#!A)CQUe16yCkMyl-W)-bxh5Mf zDp$@RORF5`Pccn-_!q5P9CN9$EY|7t4>+Tblev2w37^-0>4P=^T z1_9WnOcd=u6vu1~

    fSHq&B548W-s+btf1KkXA7?fENm`9*@wx8$&JAn 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 tMCg^ahU2)%(bY#W_GJOD{5ZO;Gz literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/requests-2.22.0-py2.py3-none-any.whl b/src/venv/share/python-wheels/requests-2.22.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..34e8c3e13527d1e40b6748ad9289eb18bed34560 GIT binary patch literal 67470 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 F{{TS{fP?@5 literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl b/src/venv/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..bfbb61c83667f6c2a65c821cd79add5be7ca3c0a GIT binary patch literal 16358 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 literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/setuptools-44.0.0-py2.py3-none-any.whl b/src/venv/share/python-wheels/setuptools-44.0.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..a334395f4aebfc93a66ff2a1b7ff184b9608da6e GIT binary patch literal 477446 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 r{!ltd66;HaMAACRY_ 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
    aWIfsh#V;nI8v;f3CNN51*q zMI+yaUK_6IvF{eND+)%EQhIaYyXEqY@;oq~^l>IzK7zlc_ok8W{N9dyD-F8`sUZ|Z=5mXB54rV0ra~#3Bie#Ud9~6k5<Wg{Ar~bxa5C>nOWs(Jm zXF2={RaIi}Cos#k9LnzuA}ONTsZ+n+QBFG>&d~Gy@MKF`>hnE}&tG8USOqbiY^-qo zviBtj4l)5TANp4e;_ASdaZ$EvpoDk5nkJOC52 zgH-X3x1_!vHS?igvWn;t?Hx%Vwx%a5%S zpBiEV{t+$`#~u;4zsBOfE&gZ$s#>u}r5`AiHFh)zzddu#3Ndy7dI2iutN*aazD77<35+dAqD zs1eS}1a4+z3*r_fIE<4;?_?nL3+sK)%!FL!v<2-~r485oe!k}4@q3^|# zJNbb~zLcx?%s>QG9`W_X@hFeX^BgELi{lt+d=50JQ=>pr9q(?Pw3&BwtRFXcMmfa| zzCYTy1T*Xaig=&If$&e1o7xn2xV?reu z-fF^R=_bM&{@nd;kB|0%4WUHlE0^r*^Nc`Z-gLDEC-q zbq{0Ihj8DSywzf#FL^b_yM#SE4D+4Qg?F!kc$3rVcuVdtWJGu}7M;rk){bigRy6JI zmSRpyMcA)(SiK_U0P+&__)26GhQ)5Dblb16x1@A^sBVhp?lvR?h0)C2DbhGSkgpFP z_8MWccH#5g?1`~D8JOis8dL5I`{`Hx*g2S+tCjae^Ax7NX+U;t1l$Qs-T<)LgyOb2iK~RT<|iPY z=uhB^@`95lXnXL33aBK!#NuiRn{eBVt!!3C7Z4J9n)MA5b=!&F523w(N0ZeBBB_oy z)Z5-%LEn#RT37pyiG@yX(hW{-G5oy*e_z309RBXQ(aEiYH2(vQ%h4)*1Z1ZTt*?;l z7YVC0VMO_z{(Ml3A2Xp5;ph|txbwFQwOh4l2RuWqIG;r4cQ|=Y5ws3xYKFQ==x`Qr z9nLu!9nR|@Slr=UfcuCf3-fJ@U=By5>DU^3^IKvd1F6k*0?S5&jTDEL^C8}$x_S;W zz~Rj)WVqAS&G>Nz;zOgU37gGJs=GsGrfjPQB^43M5A9$W-8cp#WtG6StSV?pqNJ=U z=8`y#GrsFM)O1P%W3&|WZ+<>%BJ4|fq?-$BTfR$NJwyOKLGmh>hNYS|BXGdIy9GJ3 zM$2*POIRgD?j{|$PxQ%*$R{S_0)1NyGIFX32D6fHd;!doP^H;T12^i(ivjds(<%k1 zx?FMf@b>2J%|ErBBNwrRB36J2&5KMlFH9{<`Icx?M*~%$D6QH<;5S#^PM#SYuIn=?u&?oX5W;6g&@K=xuPZhjD2fnS3te*!gTyG^@dR zBT`KbF+=hhrY}7I_LUKPhglnIwm%bNuh0eddj1G|1rM{=OJVlt z-^pq+fMiVAqajql$lY;WtLkJ(P2#z5CqouV7ep|8X*tVr#fKwjw44XfHG?4z!{^q$ zSIjWDf|zFt~{oknlWP3+CoY2A=L8?)E- z{w}%T0i6rxC;#Rd=uT-unR4l-rmsR(pDUNfZOry(Er&km-#kAaJ3qAonLfMLab#+E zc0>sab?x+p$!zJ!wBKnhYNYb zeC*hw0piYKT`b;UxizSXEn z0fklftyZ(}v$mn3eg*lsu4dF5?AWoyMnJBP8W;pZ^y5(b?78ZkH#MO3vVw2Z2rI9XxFU4!Zi%FwXX5W1TS z@hixZC#|81CoQV04>;Zx3wB9X@*WM`%5hMsAsF85+`5>!V&n|eD!pV8B#J#s-+`pwJT1B0=Ccjps^}c7DpniRIJ4*=P2nBmno8$wUw z9)m-VG=gX#eYjxt2I*`VS<#0=aQT<*gt=0&B-}Cohs$cermRFsD|DO?sd;vnS^5V{ zi+rOrOQOIzwo%leM9V)~;sL!xzqxS}&d8_H+?IvlfFvuW0T@N2T<+)TWInM;;H7ui zaIMkRgD!hsH(idwk#+V=w$9$e$#(!w(G19$YQ)uaFLYs%bOVaICLnM`Ea-`)$qwQSFr4-ruD*<&@J8-j)EG&${EI!ZY_R@zg zLFsP#X$9NRaCFKd{I*z^p}et4D1< z4~?n7#(?sL`vTn#=A0vj6sUxCM2LUcUM$roI@AlznEYqlQ?Q-7OI;RE^ySN>$~+KJ zq+9IE1bLjB-h-H7r%#7Yk50BX3$k?}l7i!LOCm`&rn}BVtrTs#%4om_^wymih?l{> zWtFri2VguSD8T@OAQ_44Jl%L%ABq3s*w&nZ&cJeUdj;6x_2sxQUh?%4EAER-5Ak1D z!IxUh^bKvk(wR$}XC@R5bEPs|u=x~d6Akt4N&$mJ{o*U4dB`-R4(~yXgOLQqW`eSX zH%M7N?X-`c0Af(C1LEoswhcGtfbMplK{l{m!E}U_jc)DqX!pZNZ-qIO&=L zjMt50^WY^Mo5e6VwsZDr$SQI!eFdgF|8$y?o7~oMe}ugQ6cJj$5VlX3c+wgDo}j@I}yXf3BRkA1p4k9CHRO8I(6$di0@nC+X8kzBxW(M)w= zG|fjp8XB{WmSl&&#c&WZ=-fo#Cp52+-ZW()Cr@zGSvr-1UNMeV{1tb2ZXfZMf>r}v zaddTzP1`ojaeTwg{_f?rQ-fbQT;{1^r#yoW4JPsN;XkSjqLyW~g?ryYi~cv&X7ZIP z3ywkAXd9?xazYvI-uP%zaNVnPh{`8@s*L;5j?{G!x$zDVNlOqhpga zY++rG<1f-UNcMTC=^Rt-9Dk7?^7@6O5L=B((HV$bVlQoh7|G_PKbgUFAu-s*_Ju5H zS-7=i6M9{^77w&;1`JT6t8ItuSqx4x=`f_7J_~JZXLk^(LG27+B%gU!B zzF^KM0Y!tHRQ|eEUDoe-LmFTBMva@UM+F7!4TrVRRpiD_LeS9w|I=zn`n2TUc2*6bW>I2J(>xRt-P`Of74~ zxsgs+53{#s<7OO3xKfyK!%{}+G<+Ft;r4{`uRPMjjqJen&~HHzNk@!aTi64NyXxu( zJUzcyPL34exg7WNzj(0lq%@=Ed0SZgH%zUg>aq)Jbsuv#hp1(cC$?hH6^9@%Wz&@! zTU<+pDp8KE=xV3WLDVkva|29t*9$fa*v|PJ7o}8toq1zEb%CMmpIFO0K!834dW>1$ zR?@+oLt(&y+S{ecZQPyh(gc4>gT2`-K8ZW)t)|Kj)18&1+Damhqmr|DvQz@L3iQ@8 zGYE#bCg|Y z)5m%kG5;F@{ck=2h7tFoX4l`g%o=#WFioD$_SVM(VGtEPZ_txww#$OO8f3%j{Cgfa zex7Z+gMP#MT{yDGuY(QQ}9b0cnV$l4z-Vg}z;hTX20XTf}s^=o|Q?8fJ`7x7v2 z0zONB0nattbB?fA)@$rF?OFCpeVV=I>|n2(w!`ZePo;)up}EcNdWF6DUHjo30*mr6 zhJ)QOQFNwq@Qo(hPE6eO%FHsZGj%sS)6q^#{q;;tO_-c2GvIax*ys5XyKPr&Ci*DT z-vIm9qALfQaE)&>=N2^Jlu`uXpi2ytAWUQWwH91g`%N!G`=wb5<)ujq&63PjjG^}P zc&KInc=qH4e2(LpIqmh4zD9!qS7<_&c|JECdIuy}SloAnMAR)j?kR6EM?SPaj(&F zWaGrbh|?W7+#$@A((1ZEP z(BzHgmL=Ix%gL5Q`B721Jb7a_M&v`pXZfv`sIi0N${fd=4&mAz8uv5Kpm7gE*@;5= zXdg_5&t{-av6Fe_EnX*0Q?{<OTO7qemUPP@Mfz-u~gh4|#09`w}5J>TuX!J)!?tu#S z4~*y=AaFb|JScIb_rP?RcB}xXZ+KXq-kFM@*l$|SCMc-5E-tweq9t0Q3}2DQj|Gtc zBzjI6j-#tzA93=diP6KDHw_GEw$#}%D(v#V=}zEdz6UU^4yet7V_43H*?b?`FX7(j z@l*$%BCzj&b~5@`{TOQot0X+X6c2nheY#DfS8$VJodI3mdfE4C+~(TX2@JfM^&Hr` zcpk(>fdCm_V3ZBdnINx)%Ja|~I|UVuzg#8WM#H$22I-u-FmX@EK?Um6a`^2A+g*(_G!42`kOrJQUE>OF99y&T_PrIQnhS zF8wC8+#D*mgw$U^IS;NOx0bC@=a)I1_sAE?Mfx7@_wEByXjx*M#ycI64Fgd27Thpc zfEyp>(_bCN1`2}nZut@^=jnJfCCkmKM~E8L^+G~q>5}SklvL5(_97f(F}Qq~tssu9 zUr%|5F@d#l6*57`=a5?6t5_>wZ4^WemU8!xq>batb%h}s5`&ubeRM>u30scbCOdBja0 z?n7m@zR^QUkt?+K1}fL3h{4ZrlPeWD(;x=_j6T*`RO(N%Upc?)JhYFL3%k16+q|o% z0JRp-bd^|Yvtm*F*)f12#nn7aaqJ(K} z-I0rFpJF+UoehS8w8Yt@3>>7_9s_u7ULzbWX*A|yE6ObT~ z7CfR6z5bx|k(2W#-KphFFI{*_Ux&(VT>a5l&uW2rR)cH=qXCV5j{b0Tq2T{p)$#wK z>h_b#s(1XqRjuU&Af6o(NYtz4V7;UddUUE*WSIk9_K3b=Fapqu03G%1BWO(ov~m&B z!92uIC|Q^SdU_%~8|vSVdUzHqp!W~JNHDlB;NU*-sis|nK9B*A=)*99sOqd-xue&~ z;o8p@E3}|M?@TfcTcn*7S5&YPFoFu{)RYnre!sduct;d#!B%YT5zucqX6uQ*T9utB>)9g?@OP@kV{S zUuZmnJuiHcSjrXyr~#460(4~nLI5dI;)2&^w3c~ zRHcUw=%JORIFuOiYm9*I>b{VileaX2w3y->qX%pHr01hs>6kwE>7(@T7xXyh*sx_S z4YKtL;!{c^Ep_AKQX2iq5ZVbzix~G1(Ji@} z(&yfQlIw&}xq<0m8%5%x`spQcAHO^*t93%8SrE`D0D;H$+uiivCnT1*$G5oze@d$> z)>?O|!*vtY?QOI#V05TrqbDQ$E9MSAkFIS`IL}LFx~e_tIG=^9MuJ5@i~!_3-HBTwm1eX$e7bii9ynVVsxqkA zWNB_;>~6=9x|H8C&4;JnXo-II1kAf=wQ?jMYQ?RV$4Ipq9Wth(L&iiBQMzZ4lab51 z>-95NoyO+#C96NhVO)nFF=9RST^`bRtMpU&tk}>fXFDS)IK(E~O{> zDJmq#v|&YkvX5)P-V|`JgZa%k@~*U^Fi6MsK}DO?^aVUbWg|4xZ=~-#*%p{V3@p$i zx}18C0QYSlkETOlDjJ+aXoQG?GMs4EfdKoX6|@e|>-j*zKDwhgd3`~aey05G57>Gp zyD{aUeGZ-j=Q>hLuPZ}q+Nw*C>l&9sIgLXpD2A4flprQu<9Fy~07qnVoD*;?*--4I z@1w)~7Y<{G-}vf+xn*4A15ileks3Gk-oe)Lponp{0UeEMy@+UvZJ^N&a2_9Bcl$M{ z-k`$}S6o~0r|r;D0CexQKzyP-mV5)(I2TIt(c*>rNx|Fv{Rt13Gma0W0%b^(X81YA zDGRP(dD`uC4j^6Y)^7J`InUzcgiE5()%Al?;w;(3&|(Y3I$3O8B38OJGL!<1dzQZQHN@;f zB-jzquW@%)>EONeHI~3oatXD#hMQOg_WF5HQ9HX4Loa)Vy< zI6RS$mn`5k{Sb6N-Elkcl0xF&|2sOZEh0< zfMdxs_=yu#28qYhb)>As7}-|LPEUPlJC!&;Rh26~eTW>Y`-Z;=ZiiHr7>|hi%B&u* zxbFuh+bLhDLdXpcY?w-#&7{igxYU$RmJ7zSj-jTEyOi);$Gc6G_4-xC>E-!{8!dyt zdCcEsC+-%x@t&d)CzqJ*Pwo+q7L|EX;g^0o>PEJlj+W0d!0RS<3QSLN>l;Ck;vmj~ z2%Rx_Lg_XncVNc&#pq5W`cW!_?G)R;VND<7vSkZ@GY2Sb^8s(_IS(VAk5um51hq|M zL~$aTcD2(N9V`K!Sqrf3jioCf+x57TxC>=Qds0q%>8h`F^-y1lA>NfcrMxm`&XPAg zcDs~K&V1*bS&5j9?>mk*ees>J*?7otWW8Xw%RGrBb|*5R>tVV{9IeF_Xk{o>Hlu4F z;MDsWivU6T0h_Q^sns!=}$162H`f;s5Y$j3)<;gb<65#8aA>>S*iR7#A4493wpoGnij;0IH zbYrzp?})5V#pD!Z8?6Y-pznXhtc(0cHxfhT`y>7eXJFP-hBCJSyNTr?oSqQHo%o2Z(l)Lnr)eEC8I%rzn4%Aoc7=*ki9$_M zVHFtLZD*6qPRV)7a#o*Y{`(-Jw-X=Hi3hRGJMj_CIEby@iI2qArJGLtik&g6wS|@D zZlH`a5NmgJ%V{tX9Qu={*#*Sf_$@1O=|UdlEnxr2ZP2p?A7O+CzI;)NLap=YQ;D~bDfW#qg(pe zfrT*^9hNdf+ql}JE$gn0PKKT(&1cYSN5Va|2mXRXz|yWpY#ebVu`&_Y33c&mTbR-_ zNpXx6vE(We*tPuX;7S(sTN>Bl;68dLDe}$ij3Yk@-wQEHfpqszc7Y#(VNKl*D+^uV8ayv=4+_qxo<#wa8 z$zqfXh|^k{pZe3uQcmeid}Wu;!dF@;=X?&2-j*}f9q%D%JlNn&?9H*YNSr_HY`qe} zz}6x~FC^x{gWm!(sm)Z9zfr(VD=_W~N@mIFwl1)@ps|<4y63y~|5I=;d~%yk%i&t#qs3;Gq}Kumx+JBbRzTZrXhFHx#

    5`CF8sf$vGVAP$Ut-OlT)q-!|uhA)!JGRCcySsKi$Hhav2opy*;`JC)E~@ zE$mg($lu5^b0@A&10xAiI?4i9VOZdU0v=BbI=Rxa=5hI^F|>2wF6Q?OeI7 zE1FVS*0OM=bP2J&ZXjX+O%Qjy&7n#|OYtn2Zu+8Gwy^CSGy`w%bHz{g2D_y3ceBb< zR^9~->XN_0w!j!l%NULVpm1+Vy0kcWPAU}-hTQ->o4((zH!`cu1kKYMr=^XyG@3>C zB|waj07=WtmAzi{bvPxZb)<0EW0=9xo6Xots9%AwN;@V8v;=iOLP3vZ z_CO=>nb*@gZ7p+?L2F0vJ_6oPW{XO3%vl1H2NJbgr?_kg}c5HTGQjlK%P|DS8=-@_0Ojot~31r`zZ8 zsIGqPUDXwXUb)3h?|Fx5y?7(dOb?j^5XDm>hsM8}W3MTg%yxi!ta7g%@t22zBm4ud9*!P%KR0R33>j z#_{-GU;2sjkAK9QksX~pyf}_p&M~Z0j@#szmU9G!XrI1Ng73rZ zjaRv7Ibnoz_1j#1wm!$8oObX&C^?!LyeOxUj!3s9vrlE7*Msk>MOZ<7!-`R*1^u8! zy7OdmNdiSbJ29|XaIkY6O?gy-)WpdF1fiKH6MkpWDapguL_hoihQD~Q!oVxt&icA` zy~Rfiwk~_>Cg>S`-Wt`BA?`!)fGhq6^0p{!LLY9t5oJ zqaW>K?%MX{Rx$VsC}RzASzkpnca0;m;dWqN5o*fxdAxM@@0pcIEhlh5Ze+{N@JTp* z<6YmhXJiPuZgUK6oJT)CjxI^E#xEkV*kPdtsPevER_ezMtYuy0m zWbesyCqFxRCbLWKAG}EV0Llsw6$O^TPmCvu0psXt`llsPSURDj)w>h(cgh?y0yBwcpDyQZe`2WO&7lPwLMwl7A(?8GS$Ul2 zfs_k0~K!;r9$1)zb0htS+WMlV8RtdHvbo?F- zdblxHTL<)D(bie%Lfw6_j=?}P)Rg_mx$Vo?EtWTEKgiR5kgNS*F3m{*f=0N^>+_J$ za9+2a!Ua3+Nq_2`m36Zf{J)9*)z!O0~HB{<;xua(S-a~&0`DVYl-k!?5X>*XU@9Ixz z>wr-28w==hSS2z0i{wt~g zdXL|YnsIJgQZr6PAL=46{WM+gd6@OCC*|=fFo07?2VVQtL+=DR@1dXIex9ova+^~a zapH|fRWP%eYy*|5Y##Aq##O;l_hY@x{A*l4ihYY>7KzI-OhA z=TQ~F5?8lj(R5r_a^^1+e^YG%0rnMMnV89L3&WF(i1?OrX87_PbC?X#DQY6P8?c(wJhV6z5Bq5kHvhP-_<6vHh!PAi73FX~NCaBB$ zi8rn;i;-phFue^NGRRWoGJlV9dC>-=f6;^FUfyx9Am4@CXD!O*{PmN`8>ge8B`N&i z>6t6{R}81ivjKsblcRZ|d%8zbez70@S|HJciM2ebGZT+MR`8@cZmjNCALP-bg6I8$ z>Jb1f+$kATYh6tF$e`Bsi@~SR_eG9DOk{}nF9Mppx8Cu=h7|IFu{x&bg6xiWA?97j z`%*pLFZTo9@dH729Ar2T<*%Paj-LKv@ZFgb;Jd`g%QF$FTccA#_ja@RS9EMKiQ)SL zo|PhyyLr5#kd;X87SyEzbaK>)24-_Vm{^YY6PrcVeIfHnQVY-m?mq$aQg{mRbSxF* zRc+8It<~aiq!m7}6X&!vi=3QI-eBE&ItrDhPiEh&cPsW+q~}I&U_ch=)-h1EJcR$i z!k>i#4DWQ%%Hpa?t(YGNwMrAj;6@zy6VP{Nk)gspC^2=n>IN)tyXyHsnFl8U)3 zdahlJ`39^;2H$wN3@^gFO14(wsfN>Pk4r<;Q6ib+6IenY-^)GSC$Hz zx=`K1YpGZTskDH~OgfT#x-~V7i3QNOe_#QlGio%3%Y)(OOQikLFyrFDeB@%Fe^=~5 z)hVb>UI`2L$o+nv3^AiC@~LQi%-o10nm`79H*m2B4-bTX#;pS(uq^Jlys@0TQFuJk zYYr{8lqpp)O=-P==bu75;_y-}@ct5{r!(G%K{wyoLg51gsaVh5@=>s@K}SwS&y&!7 zX0?h}%Y@K9@FA#Wyt4XVE10{=YyXP$(pFjCc4Rmb2;&KXrRB0QeG|_}3|R8B!BaEc z0%;$6PQa{7Gc-LcKHTAWudoIr+N8*5B6;H)iPlfP^&Fq0E<6b z2B`z>Am;E;xA82f;7>W&S=o5x5)U#krd(RI!Q@|5i_7s1yrV&o%XRs7DS!PGuq=6KffKnul zSG4@~c`eNoP>LKMD@8&TJ1WTWXg*7`gzmdWcmx>I5S`?63tQWYhbnH1tAe`35C{3T z3|F4iyW(oaZL!`G)OW(Y#prJw!o7Kr*`3tz;S&{6D~)1(>t)iYS;w0yidSALP6>ku&|Ow6l;BkU8D$|&8 zJu4m62znp!=sjO0$N|`W3sQt*Pz*3T@E+cAk07rEUSibPd>uKCj1muRE(V%Y>n_Y**;=8( z->@j#Nc9Dn_-AHD=K=TVVB6W0s6)@3JS;*EITJTbsxQpEmrp1PF{no%|HP}0@lYZ8 zClm}~AjH&$BxT+sr~pud0BVhpz^h)T%*^2kP$d#)^X!)9Ois>Zqz7E{Wx8Vwk;cRh4MS`!4yl%msLq~8I8EZ8Mwsu}8%ame%_3*|oJN#tvYx((R6 zpJay~GpGxLUGfyiG@NIlyFu4t`hc9K%)u!A9{A8*{3ww#A8VL9^6C5d%|I$p9#Z+JdM6}Ah~y^9~SlMDByO2 z8LwHC%vczhythLM?OvMsf^N@w*{=6k+n60Vd52xqS^L6>S-ihz3N)+{#cvt=j+cPI?TP|hb=135WCD19#reaRY zX>%`VUDn@P{WadM<4?g`mZJBH2P1C!-UZ!qypx2m&cdU{Y759}#}V<#mr&J82?d=W z;~i(TWUl_}C$Yqhd*vEKBs$e^@aRBb+K+(=@%k3AKQ&a{U*k7~LI_ji*7jht61nwN zMBM>lC1mh(A=X;A7jYy(Y!u<3`*g=4?6@274n3BcgpiPo5&NDJ)?G+k;`SW8YwiHH zpA!RknslU0z+p_G9j^YYs|r4WcjO&FNQ1cjI0UpHmanmL**b5DLE=kNew&u*Kb!?ZpiE+E-zg;?C1ZAAJ)5&%*L`g|RU zRp&xB5I}K3+=)q0S2a*qz7c<-M5iPY!f53stcojSv=Itc!P8M~S#KxLlrW6&**3nc z<#L8>(edlxvYh(RwptP&+YYdip1^TUhsYVdl)^JOD)VquJbH}IC8MKp7sD4J46JF6 zc5(ZiEDkFzWG!(3PdtGq)qC++kDJDy&&4{;U;i)Lf@iVb!N3UTai~)47e&%rLfZ&p+P2ZyCPXz6T9S(jL>k zMc6+4%|+Ir%?R?%h9I9-UDC9AY)gsW7HEWF4}KWmVok}`+hFW4Fn-aW&;nzJ-h$mA z_L^Qt*TKeR_>*&?z9{f(D1_w}M%Z1HZW3{O8}aB}f^p9{J`e*xOE4L0E@?09aEAg# znECH9uw*vwK|sd`TaQM~`r4CD`4F>mZ0mJ~W_^%>SGp~NIzpHge||yRgCN@ckz#Z7 z&QxB)qBuS8)#WP(FpiVgDhC*hbdx`|-p)8ww$k72O>TG5KkUVsD7q-Yy$5meHhOD< zh?u;0N}|q7EyYuq?OZ^cSpGcB|4;C#=AU5#w$$Zog*7?GieSYSxkraB;gYGKkU(+ak|*AAcgYS798o* z?>-}$;=v`i^2&z>>2)`?7wA`;5aU3_eBK~U9Nl}lIi}y$4BEDP&q&)Q(EIj`ZPR~Xo6b4fN7^)n-aG=p78vQ?SMK^7bz?+mOg3vwhnudQtzX_j(grF_(3o2hm+o22?KGz+aU>=|4KBQly{^Yz*CS1) zZ@$8gajF7+`IQm${!RmD?@2W9-)4_oZ=;{D#or;xqfM`jEQ>N_;_~m4%c6cz`U!&L{sgu(1c{Pkh!$?(T<-ZQvIPy&0Z@=c~y3ourWj2YZ<7>n8wR}_;X9p z?!vE@l8&*PfFru+$Yo5+w6WLmgWZKb381#&kJsRKrUieF119|5PeHCE?`N1!U;6!3 zyO%frK6yJs808S;BIeCv!T-@4MI z71zb^FhDB!J2YG&X)sF1>-zIisM}bL4bTv6r_?B`hWpj0CQv!wQV^K)| zCJN9D>u!UT*E)mtL7C);|HkF20n43)-XVCLJ9}&`SN-CR3!PQRD^%E4{O3P&93FSf z1u`G~!4~V7Bivrx1OLiCEr1qKvB!hH`HibTbLu~A=+Sce5~s`5QUrpQQ7DlQZE^D*Fsk*E?1I&RWMGX8J3A0@cyoe-% z9woRl#eSA4Ulxc7f91xNPl_%uk1~5*0s4hl!Qeqo;{U|F4K+DmcRvvWPeH_%a(zEz z5Xx`5BUG_SD8-*B-Z+8&2w0mOcC<@*o!qfwpgD|lQ*#d4b&bDvk*}Y$`3U7kQ6F;;Zm`$o zi2-)>wmMII>fg~4+ep2OG!cebp87>PNI8Fa3?~ zR#e+t%Z8?3t?NUX$VSJix`eBS3Z+thKHKlRfajXg2Aqjw?8+Ad=a}e6F9YaI95=c! zpKbR+pF<1YCPkEWDD<{F*)7aF2#Oi#-3Ph1lq#|Ajm6N&WUstB6M7}?7?S?nnZ|mh zll2OoxVffRV)&cE0Qd?t*5jk|f1=-iE603nbo;Nak+%&*=RoI#T+oVKw+}lDsdlG3p+pZzT^Bf0tjGqc^5i%zgX z7S$1Yq#OOfQG=jAduHU4$DtxwaoZd@>ycTdguChxktzcI#Vg6E`1 zL;NDQpYzbAJJ<;OJc-|dGq9TQ01XnDhmB86CwC9+x~x-qRJIKub1>wAyz{PV3I57h zS>mTFnP#}y0i!q_iP{20ZN|pXN2lpODwqo_cwR+97()>-YB~LEj~7zYy!6T6u+z|? zM=p#E|Fb{+JH!8zpW^Tru;Ks4*iU5s5P5%Z?7fNepWAS*-oVp|zrl-M1e(p>W@=(@ z3myJ%d|T-Nd*{+G@O?Y|lm+wYU)Z~VzQ^8k>2da+M?2YjK7F0N7tnp|okxGe-o^Ca z*}H`P^1l&7r?$aKpJq`NbUS-j(Exidp_|#;O(phzfUafl<#aWBucRy4dlh|vy;svE z?A=H!*n2H4VefTx0eeey9(!-11?;_<<|RTaE_l;bZ{VLIGIMxrzTC4 zm|ty^rs-|sCutH83;yaSnuJ7~V8Trf9hzVzfC=Hewe~(U%%E8BYwqoR_jPc&&)MI# zKWFc?_Fj7}q4ziVh;rt_U&$j*%ED*l@lkyIkUXNL1K|XDMBy%>fjmBokNe0Y+W!__ zCXagwW&Im0d*-SDg@)`LK3E?_G&8_FQ285je^#jvS|s_bCq5fg`Z?x_($#tN8I;LZ zK2@y`S|+8ro93d`2Q8O;rcs}8eb7qDXB72`&iCHpgG_!v?4gA`puLu6(6h|J}w3LgKFo+31R)^nTM`uaw+8o{*=?+6d3b z{OP#ytaAPm4rNcjsvA)oIzJVNLB$g8GEkq|+6bY0FA`U1?eCK3jeuJ}*b0*PHT>{M zXCYH34@C`xhh&3ow^ z8h)zYN)_%6sMMujdMow5mvTPFXKM9l$>SM9_9D$23PkRFsMjQ@muH;sRkg&A=9Sk* zKmcDrpud%QLa%Co{Ir>o7psuPkaa8=JCBC8+S~oKhx^0mo@erA`)j2b#mw{$mUDvAV_qf z=MWN->zM2;=a(Ai7aD#4s@0ro)#}{#nd5yXO-DDh%blMooL5x#+b+K-Mm^TH z)4=TDo8QDxXS>p_cD5=MN5rU_-W>);jBY~sa%Ypm*-Uaj;maMyr7tdtC37~(oy~HL_0j+iG!6`0#IRY0p|$>boCoI!Ks~?# zfY$)_0z3<_dna0f|7n{m<>5AP1#ks$JHYJ#w-ek>aJ#_m0=F03UU2)s?Q<)UzhM-e zie9NOUc^fG0jPEvn8;lyhYam_v~dSw=>JS>FZtki>E9yI9NxHY_Rc;$+Lk&YYM>Ls zzQ6opAC&8O1k3ID2wFPk5mH}opIo7R5{-RQy^Hh-M&9u#JRbmP1*l6^Og&S(K;is~ zwBFaG_5R&2Ys5{8GtgIGK}^yMwSF;o_{D=r1AX?D!ud6#tl5sY2m(bW8uL4l$!yeamSB<-lFzHLCoM%QJcVguRia2Z}FTyy~H zq>O4q|K~9q@dKcAsOM?o`KaW1GxdC(cWbJ4IE__zSvI#fj#IW;o=;u zrf^d7*ZT1f5W(-pIVA${`o_sElbl!NTh-1h3NCyPn#J_YAdV}Hyi5>YeJ1cgbnY|W zvsWrEY{swR{b$JSy0*IX#-7bT*G*UO(B%j zi6Wh!;hW1O;`6(oAeMxMteY7o*Lx{_u)P0WfgH-MXB-H!j|7F8E!1Sw~+FCm9UVJ9#9vxXFsAXU6z+FF2vU7^W?p1vl4OO zw0ydnU#gBzS8+k4YKZeE^~o3rAOk`Yh)<}2JQ zQ{is*v}$q`i#LPtu9n;tqwnEn3MEek%6NS9bMhHDDtj5f9oY63+(oYphXt@QT)yQf z{2#TgkvDZ@)J;M=KU-zagVZqhSls>9>}#~C%mP}%gE-VU_fB&0WnZIazjD5_6(`@I zy2%SX&5rMG=YpN42)QT7@m(~h08ic+4in`=_euMw)$_?il;+`h8L<;`o8!9}c3879 z9Bs0BX4i$x+r);=TTZ-C{k&%iJfL|nPpGq3%Z-BQ+z1j&Id3_qT!2OV4$;B+P>g-A zhYQ#2JFeNUUfkWFWL27Xjyv09JQI2v6i^;}XWel}yTx&39QbckINNp3hNF5@c*QtC zS`}~Xv){rg^~W|$fmbClMm&`_Ml9K@;&enmvI3YGTr4~*_}o6tZ*#*HAGvb-uJvR0@R8e? z8upXB;?SQ}^yKyhbRci+^F(;##0=`&f!qH;2KgrC_#iZt&V>|ing9b% zW)@!lUb@_LBJlSE@GD!whUQlueR>FfW$!NtZT!O1lwX;F?g8*?15iDEgZv8S{`dJ6 zg2Ryfij)Tr&L)6zfI@&Z0LuZ)0BKMEQ2YuO#*0|#R{#zGoOt@bgI|ex*2k~3J~Jf0 zGW!|QCm4B03OpAA?0Dwy@GBVm#`qPI?|+J4k@9W>96A8H0Qvxw;H?G-2e{?gABtb0 zZDfG|(*TwO6hHd|@hiT~vFt42ZKY%Z#k_}b1pPprbvtm^PsR;*_RG1*ZbOQU9RsAr zE|gD_@x6jeNe!;Cky%2ek{&UuE|MeWP|9)8ql7HsBb3g$is8s<0x}&H3aGOM%j0*JK=81cCO0s2p`<~W$g3B&NkV}T4q>0>u66cD8hYQbHssL={A1TUB=3Jr;ulD>3^X*Ks^05lC+$_S<8f>G_q#>0szBXC)I#LAg3%Or zs&dt!d(nhw1Hv_a&TF`zxWt*rPD*0>xgg;)SgQ8m3pqf7bq5xw@+`Nh6UEF-s&wd& zaM~a1oQarN&V4*^OmWIZGR(@d1))3`N`kBzMWQ5=$hCx#+^>l2b6M`p&ZTCI zm@bZ1lU!MM0V=_uvK;CyxEJ3Xgjtds@t+U6IIO?Sj*idOvf8*ws689++6KiQEpVw~ z>ybhytZS!m?#JHiz}#dSDWpKNZv;g1SFeql@Q&dPZ_U17v+((0={UF&m2%g4tyckf34&$ zFF7M<&%y3}{1NZXV}E3D3?>j&MWiHL?o^PqO%_<1rUoN<-t-A3cp1}k{gPnMLHSb zWN3TEMKmzRo%3KE&yf_1p)zuAl2c$%&flNk-D>4{X zbI%yziCsQ^dCxAdV2{th6y0FeAJ59(vO*t5aLC{r@Qc6Xo<{{#LnOn4P2C3gpyr@# zc#K!a*~IAMtac%*S~vt2PIWM}uV=I{Y5Q2ZKj5D zaN7CFPUHs910GPyfuD(f_I9qWsyju7X(h`-5rwZ|HJF`}$h3%NpN0!{KcjbX$<-kg z)dRoy-IRBARkk=qgT{?lLipKlW43sHhIbxtpGZl3f{0?dPK^_V!;f`IR zSLr%yajV}Bu-(aztU5$0b*N(OAp4!pdIKc#{JG)FAXjA@9Sf(N7biDd^mbTNib^TV z7Mi}N&8ocC;?eLh-m@Mq^gJdG7%)%|ECtj$Y@t$%!VxOe)hUkdqmo_3$X6%^3v18> z8a*bxe}msK>1=#;qGG2hek`3K&I^n8pbyc3z8`YZX)nv~J z?FhI{LOQC*o=7J(c9pYIka5dVsVGioxZQIf@iOwvTKlqN|F7u17x@HxhM3WvJzEcDnr9j8_{sowsJQ)CH9(+dY*?e{VYgDx+=Q>4Wfxg z%{M;5A3-yp$D)rxP0$H6EybT1{vmfS4~z0i=f!O6fM!f|90|R2VdC<5iY-grlvCVr?@#iA2}PeE>oMgCE6g&q*8zf zq|R)EZy?&(W?q_3EPc@uJmY=M#-9O3;PQ(+;Hw~+qNY8pVi(yZB1?HFy&0jo6ewb- zrD~6IwVLYpi5wH5Z@TQFh(bZLgoS*d5agLUuW}L}Wq~^h+uEPNc>&KX+2e$_kLR=- zW(c8!lJB}YIp5@2BhgY5f!xR@VyOypGXbNecXn_JvTN zIYiTdc7bTpvMQkBl=@EgPtl!_`$7NRRYIW>_C7wIQ*o1p!n(j+)J_+{kW|WZOFXA$ zFH}`(@onSTRk`i$P)ybURkV*%MXOLsluo7%-N(wLx0>^%GL0&>c+`D zUBKP6;BvbYn#2|&e7S?DEO&8zWJ6j132rAhK@(2H@G+}haa8;4tF@#BVSa1hj;m}e zZ&d4>aQ6jhPa-V@Z^xhwg>X^YRc>OJn}t_V$4>788>~E&is=Tb0`ea#{IS-n89{in z76sIC{=5w)t8BAyxRn~SYx3&8RsBR#kW0&qb8%Ox2nlxK(iI}id)RO3ioj`AjT)+Z z%7}&yV%tgoNyRewQoTET;kbgJ{|~R+v6l8%{yC4v01f9qI07HS*iB72!V-n z(i;y3PAZ8H4lyUyk|b*OPg!J2(x2QgUf47!F+&r3?%|DHDDE5%sH96@H_(MRr+DT< zyP_X}s!)a$O}QHRI^h>eqE=kr$Y}>nX&PsJ|B%Ao-r3`OFHhxFgblM(HlK)}H)@j$ zfe~z_t2z#Cn`q9;63^mcX%o8)wVK~vOPBLL@JNO*uGef6#k(;UjGVb{V93qFMajf_ z<;Zxhk0pB7E@C<;!P%_DLbyHB42g7EH%6$(2%b)IRIn&YJNyXlwsXVaUDHrP;el>25O4D9HJG~cQ-)1SP5TC_O6yq$y0^rtlsm&j4Oqjsy( zrtq{=+B4E?=ZdXEG;akWRBmrYQ&w){SL}y%W?A)n?CHAU2`alX;n;@X84S>foZxvo zzA|EK9L7fLPlooJb;OHD(xYI{Q^?5k@N_77lYT2@GFP_s?vu|&3X36Tj%?gKUXS$jPMdF zJ?^U!*?$WV37&El3UnV2BHoEI+$4K%x$IcTE6 zmYnuC$W|S2!j=AF(WKw0Sac+Qyu&UNHUZcM;3k1n(sPll8EfV?qA>J@EEF!i9V4|k z4@aQ&tVhW?AV!FQ2yG;Snkf0j2qNlkT2O3JOGU8fNr+!oP zM}>fJCQi|3ubQHpeN*&JRe`hYla3*#=tl=l(I3DR{k|hGaV|~lxsMo3*TUK`8fV|7 z(kyxx(aWy&+#{C5BHD@GOT7~{5QbOCB#U$O1mVXH@4@$tPS+Co<(Yz36jVYyv8bU& zg9ChUoib!zB0I6Vo*n05oRF|Z%v}cdeqvE>fJfdlwjW2=eLlC zQ?X4~ZWmN{qVUkRz=jOp=Gzx4&EjLSp$wpuGi-@j!dL~h-tMaG021DS3}bA4+-e!o z-P*ectDp~xL_#!Fm;*iaJn?Dd)?nvF#ZM$8X`~Q)g&fh}D~#OcZE3Hv()iq7P0enq zdhCuW6xE(OZ9xKCJ%s#SaS-{ovs8b66$ z?4JFOI9E_Z!{tCB+ytUp2wK7wK?qPjRf(^i3*560#82WniPpz^Dr`1owxq0gTNNcD z8`(_HVuI&q3@Spcl=pnQzHrbn2Q+*SzESY_7^#RvN zRM}xtxyF%7VjFGZxjvgLi|EfX=q81+qc+0O^U;K(J!hsKNr#nj2Hic^I89xmu)ESr8)gev9JERBT%b?zILIMI z4z#JUtGy6OV(@+6=L;WjM!%%pQMxFHOh*zqMi;cN;J8f95`OiX5AT~HAS+ui3`V&6 z#}wgaNwOu^e-rQ(f3ZidjdC2*V;Z@Fr=07Td!_zzyHT%!RXR6sSLxEUxzN2@S_l_RW$L{&!ibk)B)BGr)66$~w%HUgosOFb>;TeA7ahR?NG!&~^!cTq1Y-@y089#?cKt~f7=s3P@LY?Jel zvg#sgN#!D^5oM`o(UEbgsxOeW;0~`^y#jS}&+kiUWaq+E^mW4L>@C%8?3XCH+sKXv zuM6N63|{9vkFQ!yah~4~>A?A(I(_Jf(@x_KEur5s$v*j6m_yQj9N0IfAMni~y14P| zr@Tq6KhC!BGWdGli;G}SW~46_MrjCdIneQuuw>xTlC6Ka%h=({Y}0qbbSyp~?SDVu ze^OQp1S^()d5cOvha8pNBE0_q?xG8CJ>WxzY;-64kZDg3k`C{(uiDA4OH-mQiE!az znhWPE&SR_kmaz6_S8k{NtfpE8xpX(kH8rA=u1j~<8KUI%r+aIS{hD{`(`?EdHZqMH z!5`{5y;lbF{%8HJOfA|SgHH;zC({6KiZGRyHS7WJJV-x{otx=eHk&_mMsS(5`UblK z2vp>T$8RCTDo)*#gfp9cJnu*3Q6;rbAvxE~AZ9nWpaKhxD`mtClxR4tbuAk)lh-It zb|)#*Shj9qkmE`yTa3q9>uOcJ#vq!s&Bjh7otsid1ck=s_Opw5P2Hjq(=cK(M*NXC zqNB2329f17^0ZK(8ZhQ`j5!WthWllyps}WhX5h{%-Uj1C#M!~(=$RMk{rMl`@?sM7 z$2AX?EAZZ&R`Zi}=ocb0b-Gi6mEDX(Q;m8fp=qD zPH4Q@UZs^&HsblYsRQQzF1=BW_fRq)Alu3v&fb1a4KE}8)$XJ&KQ{I#EUb?;D1Zp* zbS)Ya<7t9XF#<+Kf%E#qLL@z})$CUlIIqCS_z<_0omawGO@V88at#a%$2^OJEfa&+dtjq{(mQBPBV=J6>)Bq>0U`{L1Ex;pk+ zG7i1cu_4Mh#8VlEgM=$EX(t>_f(iU2OLBXi^%>KB%`8m*obG0z5JX&{W`wO*{4^tM zWqs9tkmPf%W39iil1xO==YE@mF|ZzW8?_EJAn(d;tDBjr0Djg=#ffm>l z(T#XISx=NDd@q|7Yr(*~y8x2?NY7q)22SCryn38o1fmK{C4o9+dbn z9Ue$I6B7}0R+GpCgR@3|NK>Ps31sveZicxKr@&@*3?HTfavJDfQv^(dArOLb_8Qom zs!Uz*q^vSQb!Cjx)T#UxiXO0vVU=Bbb>485Cmix6>abqgt7Su|uU2^eA~6QmD{|un zo88;cCOZz82#7&u0z6kq#2tN{<*5F3k?U|9Ps7XyoOCaaxetjsYLP1edJ^p<)lWSF z^K3MX9T_{V%G!&g8IwaQNPCThv-!D0-FfKu&Z6hiNTP&a5J zm-2TrKwDS5Am7%uStHQ}SzC6mIbJUu?cUZqqt2K#K(PDQ4Ec?HM zkpV3vXYaSkou|ZXDCT*UWIj;PH*@2J56VTcDh`!8u_g#@|40*X%yCIJY*p zPuTU1mo*>nsO%fh0WT~(0V~y9;n`r484S)wpqu6jsVeXL@4Jm6AP@rxyo+DrLB;?B ztx}8E^;)Mkb3wyQT90Cw5j7)DZPquiDTz3|*jp1B12{Lso1DJM>6?-vc65{sH?hgs zFY}DWuU!V?oQ#8E;3xMeVEX7WYVrHjRKJ0GKaHZnl`Cj!_L60<_aGTK4T<>SYO42> z4+*D&jrs;nO*M(r0n6fpn~7|&e8UJJ05-%pdxJDJ1*q}z9bUTn^T}{Q~2|6OY01cKL&A$>D=i^Aj|_CY68SxKzHTI$0#t zJ$66!1T>(inw^Mp5HY7BOhfUp#D4gX8wU|T{SZHe7fPi&l6+HpK2$9c>&iuD*yIpp zdGLUiGnDWreUL;z174H+1v zL#5*@>6F5sB7qD~9tCqMz|mS9cm({{^*$W$#RK3^ z2zF>owoeig7q$?s_~CeN+d^h=sENuZ7czrzHtyp)g-Seo;CcnFjO?oNO{)fW>4;jy z*z>6R<~vR&{Kxu07Q4h(e)~lkQI~T8k24$D_j%kDI|W?!@hscQY#|&-5ZfIy!onx1wKxUtMg6seZa%9CCYoyeiVN8;1Cy04 ztZy8&sq@<+f)(BJX=xY~x|4>wH_D-Eo=|cC-?TvvMVUH9+pH|1aJXc`cV-4|JK_C> z9HMQ%gRG;JV(Syu^h*?5XZu+a&?h|p1VuRrQBEk4!cnOQk@tF=M$0k_2M!HFs;^K& zxlc&POnMcSy*a`L8$CnrfT=dRN6`sXM8{;*%iSf$K-KJnbJ<68K?_Dg?l7qq8fQtD zvZ}JH6;f6n_Dm9VHtcUL56lgxcBwG(qu+b$f^WqoMD{L+*uzDXR+LcXAp_QY$SHJo z?0Jd52Xf1m+a)~Sgx2>2GAFw-Q4I^5Lncq4QXgnSEkaX|;dFgPWRr+Uh&H-&!nc~* zCTN&#Di{h6{sEreLUJer&CJcFlC#v}LLaP`V}-mT-)_V5B5WPR7Yq~d{;w1t{C8Ux(Aij<9p@4eE zW6u*_R=A9<92dk57d|NT5+dX}XP4(~{de2$-vY%}tj`#r?YI5Wf1N_RHR$_uyr>3Q z$3O|xjB45w&;e5qxiY(O61-K|=*wQ%Rybf$!4(X+PUX7Dc}_Pyy@IY3Fw^jWqCO(L zQTs>Uz0xeASoLNs7)#I!qYM3*B994=-N^Q#blVlaIFTIWV6l=-PPJJGDwJf)Ck%b* zwb>`hiej-uRvY8G!|9HfT#BuZsY{BI*Jo??ZB}aDsjvDHNv$)zRo@|b!A5A)ce~@5+#@(F%59#ofe^m*-}P$!fl7eSMI#URmHW9@Ffv$5Z@u zh4d8v1fC&iiDoyTWQ-@=X-fB&7^N$>cWXReca~`C0n^-dW@YywEvKp-3Da4KC#ZIu z6F4VhZ<4cF8PD}@IR=@;<%;Y~$SL+c97E22MWvGO_b689lj!Wg6|b}Vhy0i!?J~YtSC9K+*zpt z4kAN%AsvlGB6)(x2@`Qk>;jN0D57aZ_6J^+m|bp%Cm7Nwxe)aG0M$@mz{A=PV4fKv z9M1PnPk6c2Z@M)2$q|@PC=RC2cQ(NS=C15~@x_7{U8ZwHoWx~nFk=6m0Gh=k+Z1ysdoYVkzJEtj#kJ2uG^xLX{X6p7pv7*S^7 z&pS!d7N9GG_%KZCGPWoh9C3;4N#58JZEWMYbBbP9WxZ!IX^dAOfti@Zn=6bBk~C?v zCa7-wB<|0O%F`$t7H5@ugojR)A^LbE11a#M&T&l=9$)M0ou{#_p$TXYwHFai=rGyL zc-_o5;bGbdbC$5}%|T0k;~Gjh+%1d)lyFqQ;PA{f16Rm1-c$<*r*ivJeZB)auoKcW z1?y6C_z>t1AU}oLRbuTVJ|;f*9MyGZiAHpp7h!&jd3 z%;k;sP*?G8C|CyNo;f(E+|j;r*Q1D@gl_y~t|>nEFt?7cJdJIdohAHiaLV(mNy@@C zpBoqmmme4u{uT|#fjJ2VCPevk|DY(lX%s~dOp5RY3i=pMQ9CKMc9JwKagX=@eC(Nt z^T<(X2U0&BLT)~xeqadotzH%Trxn8eX+D7ki87B8K3PNd`wp)OTqPE*@vRb>Jx28v zT>8(FB{fdsb;fvko!_oO2GO|&i5kz0y;|<(y)t%Ew^1!;BZO^haHQaNkYHKk+x zzu+L*2NQ_f1XD$yaAARDH;xi|`wnUL^>(M+JyFR{Nva!}aF!jd+4n8V<~7F~)!b-zl89zt!{T%MJPPzt zxJ-RX31_*+)d5;5jeXZSvGmg_8lOw`xj!kBWPUpYW`R%T=kx(8tC<{MsG$%|bqO&@ zLa-*bsF91&e@C>Ca|bHBA=*)8nMZB zW1&(((AJ*i4Hs1q>%D^E$MD3Kzq9}%6zI#fb~XHe)5hQeMR~YqE_6&JX!ak&Ja`UQ3kVq|8r2j79|A@`Q(bqH7l-Tt z9B5R6LK;CKji8W5P)H*vq!AR-ZU_a;=Oj0!0KS@GD1BYy0dg{M?2v_SLcOz9o`wOP z-U0LFRdR$=uW>iaE5C`HX1(*M__tS`4YHn(oL|f8jOy>c>v1*3IWOiwgc<{cn;uofF^(s0NMch0JMFO4!{7g z3cwDq9pI+`PXfFI@D9KS0IdKW0Q~^!?-?cnU^+kyfB_&2U@d?h;7Nej0ZssX0ni69 zrXR`zxC>wrz)Ao+z(WAL0bT;w2har20?+}_2XK?fFgF9t21o^14qyY=08kC^D8R1) z-UK)X&;sxmfIfgIAf;mf3;;{X=5XMzBf`LZmSkY^?=vv{%YhhPWAKID_ZtKAi*bgl z(iB*VimmxNwoJFq%Id6}idbDK~??R>8nO zCb^6&&exTeVLsM8^aVdlDS8wXmFDZro7uv$QWD6qmbJxJh=Mu>rcNm*A+sQaA@9C) zW#!gV66^MgJbO_&JF9&2MkvQ_1Vqgg1BNMKDwsT`jIlFT_?yM#GsW=7Ff*7^h9l3n zlDf_)<%)~xBOU|RcR`D#z|$gvZ;CZAZfbEw zs@-ZuH^a(iS&BLGyuj}{skpc-57XMYQnskXs4)#Wr-UfP6`r-3ocYV+n~fi(*Uhiwz6CU6(X~1_ybYG8QiK`*PUAq6(d*qQY9T zws^BHpR*U0uG5u5RvWA|R#9mYTVyFNdVpjfx(wsPH-acxA*F6Dw+`NQo69)6Kd!TM z3t1gREh(#Dp|0z#kULh#Zmr;o;d3d_CU(#uh@R8u7E4e zBW+6Xvva_6}c%Xx@CrLz%H+#tZ zSC^IIw0#FO6wcmcV)f;JXMAA2$$W}^T?X&@)(u5@esQHXvTiDe?*>K;wv7L`igE59 z6sH7+T@hOdYeGJbg7t&r58W0N?W8AnQ<67+NIE+}~%a?pl z1u%)R_`#Oroa;jiv%u+%j$no{73JB>D#{92T~-mPWpZ@1uRRvgNe|_6&SZ`rbHk;~I14`+7f7RFc3ye|a_b0o-KmYXG{r==P_~%Wl`)4=*|A61seOmb6JpyC{e>eII z7y+_@Klu&*4UB+)^zZN0AOFJP&;QLo?1rl>)jRP0M(aCJ@4-GY!Z13jwmYk99{fqI ztB!xj{nLkc?A-OpqmMoQv)xZT`SYiK@$@s#?s@L{7hZhnmwSKp>z7~o&8xqC?RWqF z``6#txBtMwH{bfh+wZ(v-*Bk$@E@C+j~qRA{KTJ5o;rQzy|d@u|KP)xk3K$s;m@CZ z+IsP`&)fdvi!X)tzj!+S`qkH+m;QFS>znSL-YegJ*Y|zD_zyEgLo+-##1Q?n>;KO# z|G%6e9XkAfMEj?uC6tsT;I09~5pMS?@LQ9!V43lIcJTdTb zgdJuUmu>JpF9B`|A2Y1wtk*M%TgO$f40A76O!BxFXk~Ph%I!tCCt!<&u>iXgDZVwC}+@G&McK!6G-PaFq+jD*VSG*J$KKT2b zvX_SAFZY**AhKy(bZ+%4|y!n_6biC@Ni7Y^5tC^B9v%&P=3e zuuT3|kzr;1GEK9T<`)C~@D1i_D$D1Jt*J%D*2R_*E5!boG2(7~vb~5c%Ci(_Sjqk% z!*t0PSuGo^SNVTCkPFQ?8|FJ@MzIxWiks!qs-BdeZznhh$@~vf$}w$nSxE^bTvSvF z#m~bOu=Lwmt{fNpB&HLwr#UB=ao8F^qH*%6C$uc)f;CvSx!lUU3zSW-Xl zs4jNhmokY)AzNTDn&fF#OF22@V4fq-^gv@J!NiPJX8tH&h&_NCoYwq>rFnL12^j?q z{{BFPc>OalZBnwCVZyOxmKaU=+zQxaS&EDD$(R8Oi20FnncrE;JbaT*Q|`fM--$~i zz7Z6=u|YhYEE*z3HdC$4F3Pti7h3Gg%1pRpJbyE5We#0C z9~iAKkball($|Ql`mgCmY{Jm z$XF%h-?Ae3zADH#g(v1o#ZtC7vvea+sm!kk21~89J63rykb0+@ekJt#g`R!f?;Soo zzr)r=5&xatK2|QRYh=Cs?}gDDP!bqYUVE;AoiS;<5^9c3>W&qea3$iFwkmHcL3R zoMTBH17c+}!T9C*ee;{8Sq=+LVlo(*M9M98tFN|Mfj)qB3*zY4|5+A$5gt?|G4~ml zE;cR#z97FCn5I(2QW)1{Ff;GdH2F&k==*f}0GERGgPGks_aw1U&{~eQRwP|}ef-z& zpZ}|mPV%`je~||5)p7A&(bZB9f#LEW5VwE*{`dbDe_?p*cjMko`3vyZIChFZ1Ns^O zDck{c?84fhKhBc(-G zBju}={6+%YBmw$Qk^JXK?@7{ovh;42(kzwyGbA@#%0EXcyIAtajTIdLOti$dynEaITWv?NYc?3a^&(!3%dNiu1JezDL661*yDWO8)yL{7y>YA4=g7A+#;LZRTxr zf0y}B`VSTUpN&6M`2XIYcE}$M*A4mmr=tCX{f0htpy5MrivM%*{vm(=zmEaw_y71% zC>#xRm|UrP0T!$^+c$5YBKg1cDRuX}NZqPuaF++TldTTo?uGab&wu>9ZisxV`l)M> z+&6A8ev;(wgZQVOYkO`y^B>O%&#f3b|E+t-6Y6S8|9I8MI%f69wvX?+I{w*~Pg<`q z%$-|l%HqG$J-cKn{J(1M-Z4Ju2Yr_@SL2HIp}oICkAdm@+Q5`wGBCA~NzCr?RIw?# z*w>=;!?m?nFp#zM1h}|nKMO9d;VN+PBfjvZfvm-^fQ$4+Ex4n=T?sDIG*RG=1Gn!B z12Z1n!{AN;_aShRR>%i;61XYgP6oI2KMaJH*b6R>v)9@T#0r-d+)ao)xOjHe`MH6? zucsAU9BdcB#m&$Y;I7(zV}SG*(ovW%*2&9WVEfph?{{A|FpmQ40C)(X7N8oy0k8?6 z9H0X>{GnU_K5UbIX_9rCS%bz8wv#UC zk#Worzrp;KqnxJiyhQh>%^AyvN_s;-bIL!K{xsA}JBf~Kub=-je&hYpn8&fG2f&#Z z#|2vEK*g-*04@WJgo?!gEC#@fDc&>*45f=VGDI$pK^;$cll*T0c)9Wp024s*{{jN= z@5!mi2mKV%&zruu%fRFVtOQurWw>hm{2x$D0|XQR000O8Q&&P!fZY%$cLx9f*%SZ( z7XSbNb7gdOaCC2PY;!MZZgX^DY;0w6E^v9RSZ#0PxDo#DUqR$PNWR+ITNDQzvM|v0 z*1HIB&82C!dq5Bq^#s_Tb!}jNaVcF@R^~+zE#??O`}#5 z;h&Z1pG>!EwW`3xm7|%gwc4{<7~5IV7#4OKwK>}1n>LxB`r^SiS2GvYA~wP zsK-k%V7t~Tg(51o-*Z_Pz|FA~(pcU!y})#B#0bw8wCqWZcpgz4wg4wtpXp`dX^Qsv z$G51s<+k6x1NzJL@x9PcS*4GY$)tugE7#(=Yw>?smyM7+lgG#D<%Hqy;^JZ{O{am; z*4%9|)mot>16=4@wgMqHjI#zq#MGJ@t8u{;$m&FhH50~pDl14d%*e6AQUky&DQ1_vOIMUfTFH6778|;Nkx5!<7BOvz&yC z$xvFJIkd=To;bMX6GU<7&8JLaMVA$?wk|*+Yt_C+k~FO`cYVRl7}e+E{^I%KVU`MC zB+oIv@LV-r4W+Mbv$)e8#9iJT_|cS=YLAN#yfJuy{duf=)LL9CiK|cx%U2Bqs*`}O z-DqC-%WU5@R+LYm4OXew#iT;CCQJd? zsq?Q{=hl0WqYo77|eI%s_9y6 z?ocC!P*Z0iV|5V@-4{e6GPW%}SDu9Hj_+UqQ(-#6%u1{jURCIVB`mSnZJeo?Rjox$ z8E)W-OB+N{Nv0+~aV^Lr!}3O;mYb`a^6L8i@|W_{?N1ELju!s*>1ug5eaEnM9Wxx| zyeLanQB?tThHwf)yZ-7{P2D5yRO9xcxj>K@&ZarmHLyp=ICqSX{lFGdMd3ya#L^y? z@#sfIB*PR#!NGX;K@KURIGG}`_Y@LuEsnB2pcF2*`H$u8Uw;1k@@zZ0gkpgvqKL|X z5956T@PXD-W?mJ2niG(nT1k*j0^$fU4sy!oTWzGKhWvt&FKYVDVIXe)57R(DZVU|= zh`N9H%DE<)w&?~U>-M2e(mRt={*HaOMD1`KhAw|Vy$?H1r>88UWEueV6>-G);XZ-QyDxc#0 zgk*hVkSJZSlCvbN+cgsI+yYgijDuqyr+@CEv_Dyk!2FPz(ySw!>G8F| zHl82*(|Tskp;j0G8SZYgs(%M0U z$V{xnQ12v+U&urF_zcK_Zl(p#aE0AO-h;TkI0zbqZXoUi5J92bSXuS?J(z-mnJsu& ztCPj<`@#f!UJ;AzmO@G}PqdTbOK%rMh2Dtg1-uV-{wfju%v`$FxyFmetsaO+2mkcP zFSzCed{1}|zLg*`!52-|+eQwcWu82KcZ5;|#8|FTWZjg4iq$$)@~TeubI6`(-SZxv zu%UcKhh#3Sx+HiMTfwIsIA_H6UV%M*vs%HK9{9Je%?>woS-ssIe4f7#%&a+;x)#!9 z-$K1}1Z@=po^01p-c0GjWMRTK!hwBdo3dnPS94w8RGIF&t#HD~p#qlnw?)BCxUm&B z4CE%2epS(ILYTqX_gbQ4G#8PwXYp3QLS?wBN2?khqF)MiehKRED4K{iJ^58}wR5#a zlF7dIM;ATaR>0)&T^gdz>a<7ZRQ5s_9X;yzr&AkktQqm(ihZ+jg@-SKO~+v2F6~#Z5ilFK&?l`63#%zn9fGAMJvGsnMiUG|%Ekmg{?ngB zE1Xx75R3;v_Ksh6D80JP=|4TqT(=F8_HAB@ch9e12S5>5bb1ii7Ia5yB5E=|x4%Zf zXvs|7bY~Asf9G*<+RzFh;mgvf{t9EMa*p2vfg8=|Ay3)?iV4VU^8Z-TokLv zIVd~Ovbszzr#i@uOI3BIVpHi=W6%}s@Mk5(UW-u_E_FL_{!PfUr$qe2jEsaXvz38U z5@CI5ntW>=|7l{?<59w zVSm7j$q(agTt3tM90KZ&2$Xk~^99*pi)OpdVSEMXq`15Vld>jQIme7fE)NhofvakW zsw=6gmA}YOh6sU|;L-O=4lv2mr0G_zI3(iSGHw9JlUd-@@0j}U-q ziHrUdnE*)Z?EE+0;6T5uFX1GH?Fx|p-4yAou<5U0Fdg*}VDyxi{_?HY2(?iqeeLP` zFyi7%inI-_7nX~5+)(7nVGf`+Xo`+nNcY=nK8>3Eh6QNLrgDl+ONTf76T096u@exf z)v$6wQ{i2ZWgn4p8GRy3t9iu=MNA&1IDgPwxEm9x*=i%zg=#Ezk`Pf7*PzkYXwi^f zjq5Ekq7$S|WOjv^mDwN);+9hjZCj6^@^&n$SwK4PuRH|pF}E(Nyljd)WoI%Su9_&M zjsn(od@~w%oxqsNdS9Zs{roY#aFSRs4c>~gGb+bA0`EJa3PPXfyXYA{t@7p)`B>O> zlJQzGYCT5?lTy}X%pU@`QDZH=+)cggBv|1b=nE|T;{>>8BTeIzJ8kCLZk%U1NdhKL zTKt~w))!yfpn)d*nIc<&ub?(gcJsR=wwz%V+kN0+HSRvorlUb7ijI!f1o_*f;!P9dq z%pS`yflWTcZXU_CzW>cx6hny#ncsYk`>in!%birZAIu)KxpP$(tt z1qKGLHCf!erZ`QiTFzC6X(s%31X_f$oZJB6>1JF-w2WHFc;w+laew<;YUd?QQl;4U zI<{QAl(n9%jgu2hnitCnzpGFp_sn1OqRTzU0u#(+N2s|UxI#9%9oeM5_1bI#s}bQ7 zOA2PK#3&OJ6deS=Ul04+*6q5Q=v4J3N`^u-bP}YOG*$fvEaB*va&dAw0|ioyDm((P zT(8THI)`h9M~Iat3Trn2D>bH4gQ_`#{;B9lGV|vmzV?ZJc7pCWS#I({o3s)p8-eiy zvbnJh3P98j7+e@t+wP1SXR6HRe-?v0y@wa zl2p};ba+Gh?M3Y^A50?{EJ#yxadt6Vf-TPi4`9h@zA7cSRsqVK_Xpoxf}6F}T}{5t%}K2~_fSwT z;W%%^;L4tO9riMakL+~v&?0vdHusLzI|?Z1g&)FRj?F%J$hmFLSUd7}WVFrM+4dhr4?0e`P&cv94}A;Hp69*u>3u0MYH%C-fNyD%}{yg+IDA07fwvi=id2MrmpY1fNhP<_RszG zz{kc;-+ODKYlH_`J}E64Z$c{DW_^Z63VckDoi{A}QK$qA6jT3Om1-LRmt~VsN zloyqY#NR@r*o1jZibQQ>ojjfT&WqYi)sVq1s9;-Nyy(a?FvB{U-1%+dJ9jcaIE~97 z{svKcBUwRm;mtTLJP^kmJ1@7lkp?tAQaV}5{ix55KtyL=$z2(9LpIbQA3D9#4{Yu< zi(guQb|}~jPeC!;N%>}1$hJgB2kH>et_dDZ+XD9CoMvThFeov|hSQXjwUC++p-Gk4 z=sitSIx2~@%s%u=BABC-#C9uo<7bWy1{z_U$iy4m8C1)TGR7o93KH+X zheG0AkpxRPWQ`*-1`Odemu)IDpjIjS`OWln-joBXeugr{OAnIzv)IS%4yfAYgqnYq z;mLktP)c+#IM8tOVq?*^F4OrcLDos73HY`X}x`d4NCpq&Pe*YH&Y?z$bsDS`q;fWeO9^R+^7ZHr!#p+QF2O# znO00m6&jPFT?%M*Cm$#Mwc>EZg0y~Yd!wNWM0p%^=#0wTSsr}Wx%o&ow)4wyr3R7r zZ{+&>q$~OJDV6A!H$-HpDtu zuh2L|xnvyFg4q*u?95Fz;l5mA$=uFwS$+23QBElm%k2^|x^alANLAWv=ge8TJy_s~t;BfHz#~^kx#oi$iuxrN z;&SnUvdKC86tGioD^j8AacSh+=3T&TN>O`=+;&z&>!40P`62@ zI^pjqq#v9V-Ae4c!-{o&=7?>RrjPHEjNNPN?&u_Ikk&xCDt4aP@woZ1Rcradxj(S+ zyefO1LG^?#7G&+?$+j1Ei&olvnpPh2*W7O0TjoDrI511p+Soa~POd;Z^3R^OA9B#e zr>1nlxSx()8eLt_-7@oNh`9xL;lJm41K1~bMG-iNz(K$0Gc7Q*%*xpUC z$Qj7rKyLeg6v1D~!%bx1(smB-FTAi&34EE~T>sWq3b>4d8)7&q3@-5KX{4BN;#-we@4g%+ zY>k4QR6?Lb#__f58SWm5%pn1IgJwFnZ}<71K#x7OVN`Q{s$>~mc3vt@14*aYgC#Na zMh$G<^A#3I&kaQ;)L9+)m!hCgW)>ZQj`mYXbuyFf`c(=90u4#+bqVf@El|vWvhV@; z_;|ZM_Uxth&5iYP-|`hhGW(wSa&mIMzou)dV|V^k{k(g>?)|zex8TQK5^VS2!Nh>= zjoJ2ir@)p57ajuy=_@oi8~n+HV( za4;K2+-7-nk#^${mTrfj%ApN$%FO*k8T*sZ|8!>nr}Bs*F{7?{=>NM;y0N~s<&8Q! zqw){#lE4#Nz%qWzEMMulGHx{Z0K_OnJ9f46_L65m@0ei#8ynk@Z4V^`8DZXzQ&UU> zPqqZNE~vee^&IN+hMewVyBIjUH>my$wX9_nGh9!{@2{8==NZ%uv!Y)SXud9Y$=3l3 zGTE6V^~DmZkQWSun`s_0LO4sLAhW;-vkM}v;i;W-Ujmd)4jG+J0vd?eSQLO~zd&-G zf}pqLRS~kSQanzU=uolQJLR~*QQ!ITe9@Z4r;?r9PNvL4sXX*v(3d43aMTq`q#RVL zK|Cpz-FpUldVtBU=qc7i8&0q(;^d5f>Kib|Io0^89k-e=Jp9@{gAQEN8ivgcNC$Fm zdjTDfyg+kT%*_i)#O68W+>!J?@&sNW&#n|;^Pj#${}4ch0P<0}A>aKA&;(#ddQm@oGr#>z}(U}btgnxZx_?k2Uu9qRIis2#t$Rig|PMUqtMwIu@IsAN) zW9t4)^a`v94G()Sj}|v?4JG&sjM#7$G8(zXV(k_L(qG}ll3(?@sc>ddsvSyf=PJhS zA^?8&2ipp??PO?}W5$p<#DqCmsttxpeA-3cFtATGpc6JSsKMKFr~AF&sgP-(N=ex# zx4F4=HMd$?TPprNk{+V(8hS+yqgP@9xw0ncxM~BbBY427r^9|cjZO-2CVzF^E6X@) zDVeNyW|4FK_5Db{0lrrt$Rb$JF<1tQL{b_tadz(cOxa7lXQ*KaxJ}B7LJCBye14i;C#T+uPOW=&+?=vq^_>{lZ->;)3ZsVVp=$ipYc~ zDx%#Ypuf@bxE^{L{(YQ^A}@+wW<&#Y9c~_$aAu@Mw;;pSg=P)?%H=)u({4N#PkZ-` z71ZBt7$vxH@cTDy`L#d*{x!u7@lc529Y-86vyV9l!hsvL0q>sE^TKN~7b}rbLhYCl zo-ZWs2h;9k$ZeRrdiTR2D}rYssB!|l=D-&Mr|AE-lKxc-jtal9V0Lw-c4|6uw}lpq zUlexLMWy=!6#uUTRP07kuIp|k1b zrmx0$J<1$2VC#WI8I)zJu14g*!v*<3{BZAa>*%|-xoxy0fbwXBLvOKS--Vq0=Acg} zcTrlz)w(M*e2DMt6n1ew^md>W6%QU|HmUR zU-Ysl@<^@t>&fjhS_3e%07nh1{RYa9J@CrJY5F!4nl0P&B+_lt)&JDk5kIJ1Tf3Jk zN^J3r3QQb@t^CYstg{t@3hGn>YXCk_Nx8x6s;HJ>j!14ER04vfHcbkMK!Hnu1=y%} zCEIqKdwX%STYV2-W`R1zxgEmQag6nIbXh=+4Oo4Pk>&7R3{Go5S^{z;CwfA5%qm8w z)wYS^C&g2A)8h-gNtG_k0T(C9-sH+O344qH3dYF`X7OG7re^y< zyMfbmi;>D~PwoX_aAU=DCV6d0mebIX?HcgS0J(Z_3@F;RKr@r22MMk{1+3!(j`r8 z^ZA@3iUV%XtXp8B&l-Bzoa>uMT3kRbBiO^W=fuA($s*QJRFy3%u@z!KZu*xt;!jzE zj}P_=1ID;$GTdv3Qy1e48-Xmake+pTxdRZ)IT3-)DkboU9I`Mk&-8Ofub-p;H}2?f; zKWq3y?@G#8F_xW{_JPO~NoP&%ii$uxRDEfk$o1&&AbTp{AXc>4CQ=pKb*(&q*owCH zn!r5P@)r|P7-uzsv^}_NGy)LzC<5djj$~xT%0-3Gy7f_pGClwuYAAFTpsSb43@Imx z(2Uw$3~6_n5thgTk)Bgdw*0Y~f<7ZrTs-*p#sx2b6%s*Pdpl^wOUN{SO?J!DaDCL*|&gOaaQ{s^WtXaWcXGXk@!H7?vw zvkWjGI;b*{;QZ10?84p8%~e?B4pm!Kqwr_gJO@ z34t#9Bg{Elw-i6Zl_t}a(iSF&TPS8R@W}oxG24&B)2DwH0nVU2`ihOOuy~ydB1R$N zpv8EKJ%l&(gC6;0jp+`E-6P+})7fPY4w zx4*@7+n*3$ix((|p5WyEs`a*s&+U>;uH*^$h?y%6js+}Xt^T3T)~*~3FQPjB_GNI6 zHSN`QogP05HGQyDBxKrn<8v1%>yYg*D*IuCG1_5_eB5dNFmAga^3m9-OO+P))!d>F zwEgfl&r#kB)NR(gGiAgxcjO9wi)jNZfI^t28y7<^yKh?oKQH!{G1nQt2Ev(E(BZ@b z&u$SQ4oL6&G_y}Jkf9v^{T6@FPLP=O-U*8+u*oexDftBtV5a9C_3ju2D_NF(9i0RV z=4PRP+1;}$zQ-}37z=C2iH?4h%S*iiA^v~`ZExJ5a3a#Lh6A5ZNRdDN#(0Y1$ySn( z^Num698^SBevY)U7;lX@cPc_7?SWh9u^zR=DyGvI7umxn;WUWcxTCo;ARI=V3?)iS zOQ-mE$Yf#$(m8`uGo`}G!h{GzkBJEl(X`l~!-l8g8Y1^3e-&EFNtsuW6cqOS&q#7Y zv!on}PTjqMf{0g6oO-HTh>YP3gMRP z5EYzz9H^)+B;7q^n#_Wq)lEI=Oph(i0WEdlo$5LGR%IIZ-4>$@7Iruq+KkZH z%l4O+ykk(ZdwCk*i&1prs#2Ed>(8IdbCpb+2MN!z3B<53`&(;+(S>s=p+p zjC$WGG$uz)5%Hv>t|PWS`r&6j5Z!$p0=9tX^Ewp}ru2!1)jMWSH`k;f%JEfP@_ecO zBJuPHvyDLtk$shMC@Yw^&BhdSHDDe_Xiivo$eJT+$l^9nXV1I znbo1Du42mmm#iyax%yBw9JE?)y=EYP7E)cmqeE2EcXvNr#*j{i#hSz*^R`hBaQVwN z;n!BCXVnj;iw2G*ZRo{(*EQAe^BsyrZuh%MDIky!GelpVNovI2!Dp8~V(dW82OTtm zT{!6SBFRTQ$d20IJtVtc+}mxhEN^I7Ro6QkJ9iiTXCoxonY?pUONK97_5iJHe9C^j zR3^#g&ekxDg#1~Di0r|JXtLW8rN%%VDZP6@OO?EubJva^%*)h8@?xOgpVkHpAPb-^%N!!Ry?%C2?L9DR8WwKD-vr0Ih>Pq;p_ zvBl^#&AVxaziC=wyO0L$afwvFWgU0HWyj!kbu*_3CHuC|F8E)~p)^hesn`zPmt3C< zu2=v$a3T*M40fCSzdl{%C+gfZ<}~o$60-|dNVLVlYeqD9cxK}G$*+Pl?M}N&^os~a zxA$)8EQ7`itA&=qPDOkv8|dX8X}#ScLX3vk%N|fAc`^|F|LIyaK~qK7^?`2y{jg6k3dyBk z>oHK~__-wSLl$=@T>m4zy;Tt|*(71#j;uYxRk$y~$ox!rKey}^Sg|3Ec4#hy(tz42 zHQ99rWl+x|)WZw90Nz&CQPM0`4>D?fwu?7<(9^je)Z^Q zEu1RYZx}MT3Zphigg|E-&R_*}A65K#>53qyUGUNYp+lCSa>)+~B!NPYW1(D1&>jD1 zXuY2)c)H5CpAbqG8`efpPa&9tNK+=l(n(5N5y>g+crka_wA=GUztQH;GcQ;5+iSuH zf)D3c|6-}Sk9D%zRabGL(OTt_etL01xzO_cm0zT^&Xhd!0@OqV91_^AzLBjKyA)SYVM{OBRmCfS5)nMjwE?l4h`^tcest6>#Z; zgnbW8eRwm^NZiR*)yzQ4X4n%9bxLi82TNIzk;691CUuZ+&-DPm;BX`-aL-58vgV|? zsw6rt7N^@^3C>-tpt=RieZeyim^d41;pZsa5v+)xgANlWniOvRds-{(l#BP+-Wsvx zQ}<36TxEj_abi8n(duK5II`gO9TNh$9o#u*4L7r>y`AUgfU@rw?3(;UqVCtO*h-FW zG}MoAR&f(dY|#n2uH!X%Atv3L86AwCuyse>7sc{%sf#bKkyp{>SKLypBPyz0LVNP8 zd1Gr~wTEMQkUC{#!W7o5`t_Q|;+1WG<;2)QesMOM-xj6f3@Q2($^mVyXx0u}OK>cj7FaI~ ztn~X$^6X29Ek?7O9OQd)!0Zd3bOz&*xC-_y-5?11KJiZZwT$+IMI zZQ=F)(%Crhboo}@CZ&&V7l1@X#Uq9&yvCacm~gjX=X-Z4j-EC<8&G_y=)v#WI#(A4 z%c&${;xs%xwcz!yG36f{67dS5LDOMDz=IAOMpFD*UPT%Zv#bW}ZGFQsH&A2aNqgn1_wLye|E&a6Lo8PIefks)7oi=v0x>Zj9nl z?xMc>TpFK@?Jk;|4KSAJh!Xm}X7us8Lm&)S-s^($jTM|neDOMAa`xZ*=sWf!ZQ~W) zy2-V!$5K3FQs|8)(Cd$&rE`QHEV`USR8=if*53N&Ld9+dkQ5lSW7zCLlu2CCrPar7 z)UrY#J)WJaC_SE0Yyo^<8_az&7~7a$XOIs)-{lbIaH*WWLV3)GC9_B4M@IFpp(Pg8 z(v!PRET_h|ANUt4lh|Fp;@tmHqi;+`&VueV8Q_hcVmzlhFpZcalF4LCA7`8X$$syU zx^tC0zz;R>(2gsdn+rj2+U3=)INDW{Xh!JJj6jZQjh*8SG(bg@LTg~Iq)ZPBnaRmN zY;Mgn)7}XljTQs7nF~|J)LyoL{_WLP;0J8A0%x5(qqdprv;^ZF`>n~$0!t|lp9H(B zNvyNqZjlg^A(UJNn-uIGY;0CIu1;IdSZZ3Y>NsSp0~sPvU!`x$ewXweb58VkcGspG zwsO7W>F91G1}j-^=)qS9Pw+A^t}t6YuIH>$m&^NVsRIB!0?@hXEnnhQ0lF*z8kIl? zo#S~$>-fCAdU$76NxJFi^{dBgAUfphYga|*m%&A;(cF7J<>;W6<{hO>ExLRt?G&~C z>QX>cQBOd^dJfgKyhtUU!QMdOjGc;tnX&_cIcu#nV)rQ&1c29!h1d&WHEFJrVcPNx z9ufHNLIJJ-VY?b#!vxP?oba_teH|@O=sR_!O>MubUACWM zJU*Tl(OX1EQmu~DKAKQg#^HW#Td7=YsDQwVnt((mBo)!^yljt{rVTP@&<$6Hq7UiH zL$5v)@dsVbkq#w__S;enD=yw|IVUY1dhJ2I%DX94dkyqcM4kk*2UrXB-LS?an0W}N z50OG-Pa;|g?LUZ;^(QGCb4Am?ZAN1E^?(W9MsNRKL$e7g08s~iTXjm_jQmqmyK8B^ zLldl3G`EY4H0vpWz=+iuL_OuD*F-r>L%p9;DaCU#R8)mcy&)})c_)2+Nb}@Z-{y0N~niWuerVs>rQszY^JVQECN?B8C#m7{WJI>noA*^ zTpRWLiGN2L&&Xe)`HyR{QMc+|b8jU?y2OV1+?k|t%eJ~>x2tv!wne&0)F->K{H8!} zQKaw84{l(2Y@{TnYQo%_+p1%xDrSbMCwJP!{NCa9`F3=~yYVwqe%8`Sl~Z?M2;-P% zWZ9>Z0v`EoE}zHfa`~>ffC0FR@W;nVyEf>raTVVc^8~cd@UgFB|NCSr!@@2$oL^-XELOl(!oGo*%nS{PJtqPv8~`;7q3#7-hYi_`npiDn7e{W`;)h`masJxzh{eURcM<70VuskDV5bGO61j*>z~- zJ!lD846|Xx4?>{FNbUy}=?Zm!`*jo;=>)7)eb0%oza6#>X%!p#_v*Zbydfp`OcqiX zjr14)zNElLPg4f7a6JuT2Exjvt4WQB85J&+DHX^b@!Rfvk;$8a7o6!wfL9zuder*b zrygCk_9Up4gvYSD%g_2FSyBPJ<&JZQ#%|Tz?qk(F!weR(U7IWmo?^kwZ{A$4*%cK7 z6^UgD+qO!pI+6{{q2JwJo^&nFv2rwRh}u9WR2Z9%BAutg%hyv>2Ithpg??^Z=D8oo zYy(qFwEs|lB4(_hSz8-BYgad@XsI#3TR*qBFE86sa}-QREpS28C50$l6{2?>9Y{0Q zXU-Uksz%GU{3oi(O%wqBb(6A zfAV7Qs3P~B?!I93=EjRPNcNLO3gebzLcLJv;dS%e+FS&%qI*d(`o|f?=T=rbME2BM z5iBe-O?D)Do(8OJr(kcrwlTV|y`Xv+PY!r70Z3=-(7-Co4fj#lW3aM%E0bbN`h|3w ztmvD{*0rkxfE6`(4`u=M3$M6xow$Ezq+_YMy=fjeGNv$kDO)1qYz$M_eC>d)T@-bo zxe{rAma5uA+pST*yvXPy<)6*P!F)%CZoA7+&&Y@G%tf11+uVqDRDC||jd28fttW?w z3p9W-38DYp#8);b5I_c$>iR=qJFlL|X1dDbQ?rDfa~;AlEaK$B1=@03LXYcBsHc5f zhBW4aaAp--m_fzEWm%Zfx=$gyWL|iAh4mAWNaUWyx{5`Crk_DvH=qt`lT@0FComzn zkvI20m+S->K26pTg zJh0c1vd6h8qAbPgv-%cBBbb^YRKeY*vQ&x4)?h(yEwee>zpPIotet|8%$_H6tr(8+0Yq3zK^8I#eRb>SyL$K>EhPPc2`6A8pD*4gNQ^$?#g@@CPiC6!| z(q&HYKH#UL*@LzA`SmP5=AN}_DbPqpRJ~~`tG|L{e(?=wBBrfH&7szYS6KvZ&Hq@w z!M!m$+~s<${}gn8-wwrRE39MZMfT!^OFa3H8XhzNiF(Psq`$%ks%3oGXu^|s7~SJ& zA#?D;*8PVxbvTnER$PZad&<9t%o)dD91ezoLwMJ!L}YP^biBvs`}SLnE&B&#T_nkafOVe77@D`u0Y0vYr;YeaaTjz4U zIr!C;l}C?%E+E9<2nwSj$9xZ@x#6Yy&C?ILy2)h5p3WpY=H6~{+~xqnj6}|{ocZXu zY5V-c?TeTQ;u;#DeDb}T0jQ^~;K&>Ih1v-@7i z-fsvxh9#`YbKH%+Y0wn0XZ=0u&N8foT^T3AFk2}p(z}T=gsXY~P?q<+Y$C`R=az3z z>QeJQDuMjz+d0f9qgEk-TiB7;+K2HAc(?UFt+En=s(=?nux5K&t~Lo|VP zZ|5_%LdNsLdtTm3w$ltBYAy5t0uw89L&;i>-x-XRf+Zt_9%*eX_i!KIuB$Tp*bSAU zSDz^$h4nO6C4inPi$vd9Q}_cveS~?bf)A;J{-MLnfrA}AyBcjBvirXOu1r@%lTdh% zZiedZ+FB(X$=-?aUTZfw{eG;4xp!+wiOUZy#}XRrTMlirW){v8ntImzzSm!g(V-`* zvN+j4roC^;fmguob1Eq?kk7ZXY~7Jpe^3b|QK2r94pjd=rir5yAOcQXgu%xfWH z!sODRLVT$#?LT?=sCD{DhZ%G&Rx#OdB2^T9{3X6)aLXA*TS-)|XZ3=Ti?WT$6+v}kv)J8&|U$^P|C z__cD=@9cvgBf6|(!ZQx`6r;_3BoBzKoBSYwefRax5uw*TR!Bj|t-VW$dcp@25q%?i)uhXO?!*sl5M(Ttl2$Ad_c-u2wT zP%0#3Z@Iuf4Y9o)KTN@hzibDK{M~fwdn#OFgq6(v{jnLYTQPml3xyn}2W9)jlEHG} zTRnogCklLyx;#}?+Eaai&4`s0Q!Y(WKkX9M9Ttgi<@vBcM+4&-6ZoxU<}pyWZP`Hh z*xpMD0I>7^y|MlL(j7A#Hp*j8i3lq%RUYs2h@!`xF1^K~xCF4^+c?Ten7E*N`NoKQ zHAK&2)Klg4QilKd*#%aKXR|>~T}jwaie4LY-JQaMJZ79)QI7%WCe=~vJ8-`%3s=T@ zU4|TnqO?8gtfj~qG!W&5T5fQ*<0ckg#cvM&j;8&W(9+h3DVI2@BaAyY^e3$vWJE%m z_GtR`R@U6a3*F;SBm}@`Q&A+zRb&Lja{R5WAtjLF{z77vGGy3aRy{5^pl8bs3a&a$ zJ3S;|i5Zb>t*6KIfJk^ObDdQ;F|PX7#QbDV))kXAoueiom~!=~n=udhQkqrMBfy*k z3oYi$TVSP3>x$^YpzT2ChebEVd)N|?H}1C>x{fg0Wl!T#y6(=yaEwvB!$ra}d};)j zW}{+&wh=#u;=aYx?)k*u_hdIehJc+Q0e9_e%9}Z(slFQQoQlU~%1CY?5spVAG?rn+ zJXGr2w!OHg>)^@Bi|=)!UDCtYs0~^(u5LF4D#Q;s1vO6ek%WQGkM>^!b;FT%a7sn; zpckltd(b)%s`4J;6L|NSZh|aF>w1`@^DRH~ zKJhOJldjPaaJKU2+y7|t`EQsizF$hwwitwya+nEtZxPhFV`$&(*;i@bAH#(|qw`c7 zOc30)AV0v}s-be)=CCe1iG6@v?E3uyKjb|Mes z7KXpb2K9k?vBO(>Pk<9zZXuFbseZ*!V29@2Vtn;iO5@anuTUW=^#Zc$p(eneI60(v z&G?qjQ#6Vz(*?d^n0)2*a_OV!B(+InZ_^CZ47YjoJMKPs7n^$=Kv^8yHYXu>0RNiF z%E08!8Tn-@8WGO;&&tYZV@Nh@W%; zEyN`s?uRo-OUd^L_>y{`qArSZhidFOXxsZE4Seah77A^t-N0e2>CMDhfcFxn|U0uH8KJe2B5tW&pT-0;Pv) zoEl;*W+Li$4b{CKd*r_0m&&RLT#Qri0W~iwidCwWc@1_w%;GM{eNkT;4ZmSgRP_u8 z{iM1hC4~xx4#1hKju_?)UtYAppaj4Bu73jmw}Rz>u15FJ0RUv@003bBmnZpKye#!i zjdjg!jQ;O(&64+r=LTE->CHEF>-|`Q6bYBh{52lCRAy+yREv3H=7`M;hfX>gVYp?4 zvgCM7!qwZx3=aSTfZ*EIHSbQ>dpBD>1PoYUUnc_w99SUx20MLVp+q1{#b71m^4KMl zMi>EYO=PFce5LyDQ(aa~bQNT!Eluy5=eEhSv8kD46HmHFmx?UsHIapAy8Oz%w22<+ zrs(H0m53@zDQzLY%Ritn+BZ`b4ycptLs59(=l02!7rZ{|ktPkrC3UYLc2G;D(|k{j zVS5UlR5d|htz`}ZrYJO-CcN24=@c0X4AhbC&FbVTwB-u5Qp=tm7Fa~FwcUSZs1;H( zEtdPEo`GI@KE4mva&>*(_`SdHw>}hZc`7o0y`;F3hbY|M??=dOf5`Arjhm$IFB{UT z6HPdww!6M>pVuJyN#x0gR8*6PBH}VlMY&{Q&7LSq6Wh|z#-v7T)bh*ian84r7Ti;y zeLht`JN-dT=(^d->9kuPz|&GS_^#{b_WzL^ z=v!-;ph1ozm~hu3XV+x@RtFbb*_!Y#UE%9zdf20 zyni*ktLuJY3=o@Z8IfH+G++{tXhj8ow8M}RfH`{neaqIz>yrE#JxwmRL{G2 zy{2!X3A6$`gJ7BlQ%(;(Ie!=b+uhd03V(NCPGGBKx!WCQo-aKg{#+`-cUINj#{L6A^@{tli11&s zL%_dzN*R)`Aw_EwM5wuXQE|`G8h=iVS%Ya~`RATb}3H+=QuA(`I{@!=6leZ3>c=MEv57zhzt0}RfNojK?1nund~pfRA%nd zOLikR7DaDMszRF%h`&?%fbplu#)0%Q5Ced~3O<5UREh~|fP$p}!nxsWmVxzU`-$Ph zvXXe(EJuj7IyjirW^Uhm5iLpzsc43LrO*H4F5zNf5B+6su|5X?$#A-&BXV)ju~E3GK}@J=k|GP zg-)gWqp5s(7L%y*{xqN^^QM2p0kf~Va9r$gF8=bjfkEPId*H*daInCwP%lT z3C{oZsC3&hb?Goecz!j^Z!rS@GC*M1j;GaI>AnvS)z4S?zE|5pQQr0!K|GxxyH5&) zn@~2xNQg*8I;+Q+=#M?5!Y~6S(1IKEc%-l2n>P3qQkr2hZHgWvbesToo;*=7u@oNt zz0Pu8F-5-}PN848t!1gZVsvORLxK2n z2vgl7mA01lZfJOP-oB`c&GOt{Z8jhSD+eX3{K4e(~bft96c|CZ>oh>~uagO$Qh z1$1oOd>##pMANze(^Fy*DH=43zl?clhNMf%{>dJu4LOcI>?Y}`T|1y1M`1Q*%+qwA z*pC?b4qTg(kJ3j(M6eQm+7fvRo15PoPsLYawJT@Rj+=EH2$^dq9URVjce@= zHu^{nQhD|2ipt7*Ff=GohDu9ZZs7~r{H*R>9lO>34Ow?_^gymmmt=IT(n>KdwscoQ zlq7-*a|Jtg_m$lghkWBoG=5k5Zy`j zM%fzFpXc*2)`=pUzoU(hox@?Sc$ei|V*|DRSkKt}Da+=bUi2;@;fFHJr*RcMM~tWH zM`-#Nk{zIsxzZyhMCKn*ZB!_-L|w@$dHEVKjPNL?F=8Z0A(b|R^6oha%5#LBW{Yl( zx-iFQ;@Z0!nwf10s@v>k64kXJ!ahod2Zb1@0{shAd4_PQ?;sgiQw+$6GNTyj}=%6AU&x! zAkY=OhlTXCASzl~esA|Ne5b5zZ0nhRDo&6GwE+aj!mJjFsvVLUL|L;dc`*#eg)5F) z3ET);3WG>zu#Z4866-I}{W|=?!0Wdj3Jgf=*;>in`2t4cu#|EG%@}y+oAHS&=_no| z&7!gh&~d`CXGYX)17yAn%^`{*1LU*_@T77$_<0Xq0EUt>mmxzGusm$96~;`uDRWOh~$tci>xG_M=`Yfvm)^Rcahpl%C5-nKPb=$UW&9-gZwr$&X z_iWp?ZQHhO^UiY~cHFi0d8o$`Q5ltyG3u|(|ATjI^f8H4PxJbUWBiLC7q@CQI1^`; z_SYz~Ik5fPGUD{5a#2a*EcV(T%ZSfCfWZ{*4OHwNKd>olxk#K<1gwf3l|2mrYEMAi zF(9B;s=k@|go=cU4PIDwzAnRF=ogFBQlq#aGN|QZ~eb*lOJrKV6m^^$63)6FJBhC~#U}FFc$;rr(_|1LSJ*+!=+!l9M$Fi#L%z zY(?pW?LFKm(_=d>8fy^m0I38_=|0YXvFJL`2~fMkwru3iam~Z@u+^+#9#vHD5+ZI= zlPcin+bX$Aq54n&OA=rwYK&EaD zHTqb=`Qvre%#Cj)d92fn#_Top$^C7O-C>=am~^b4Q(#2+IRXSM5iv0UWpp5+I0GYWjvEtdA;Jm}Bwav*UzOjf(2QE`?{aJD5Pc&Ns zxmex25rGe6fR?S(e?Y)n3=Vfa8(}VP^>35qvGoUh^N~Ol5n{n7!eC3CW;l9r1pOm) zIl%FTPJpPWI~6M=!h--@vvM|c{j0zTDC1yK!-0PwJY+e>(N_RvM^R&@NZv$q3iLuR zS(&+kvrV=*1g3{9{ME^$yWG3p!osk(*&x0JJ~2I?m|t%f_orEvk7au#&hO#U=Cpns zyj-$F4m`3-}g5+qjUkQ z)}~X??^9uS$HNhkPC~z+((3@&=e(me>e4-^((O9-M?B~~aXbsxMfwMhXr%3KtFZ>= z%z$Q&u4MChD=Z>k$`v@lD0zy0s4V*hI*PjYq{gw!Cge?d5B@yBN z$UHr&v1yXMrNt5GL``lX&xMt4S&2e;fHPKsJ9^8S;Te}} zecEFzBOCKfEctga7}!?g)_;Gfwa^lh(wOXm=@D_7GkR*r(n~Dkwx-k#jrw}3m~V8* zj2PC*zJWae!>kU(1~7~kgMpTD4(e9P)^x#OU^yw}=?N%(X&Uq@?NklRNufpJ1#uux`OdR%+bsO$!Cl#dy$PpnK5O-1|@lNrjCw5(C)cY!m<^QW9}H%q{(%U)zL7%qF(f4|;Z+f`3?S{?E+|7wY3 za)XKzgbU$=GBEy45m^HP#Tqf6B5gDc0+f!&^14~LE)fK0phL%Sb}T;WiUzX-HG#u! zYDaa?8tW*CcdQ#&12zxw#{xGOs9Iq}1?8h$mhIF_(u)j(b+c4Y;$j&g*wqm5TN4!q zNLIh+8f1qeyNutdV!&bEWj>!pqF*45O&>-g_(`awz0_SFIi>fEQP%vG-_!rAAvL>URnJ<0pgKxw+*( zU4RzC#K8ac{rPG~F+A7U`5J^QE2v9`p+eU$AvoCz_(y9MTOW1quZF|gHN~dE3K|P0 zeyD0@%~^w&1{G&s? zRRClTqS9rBRduGi*=!VI_#9UBbL_y*>ZaH;;rWbL0m!*-=T|LU@}KsxdWcC z@C7{yA_*HH8#h}83;}^zOMburE1g+n`|`y+x)RR*(CK%WEzEHEp&_VsP^>~U!MnAU z#_TUkU09+xP5NO30XQ*|XBe9DrcOS;yt=jF!d0%1wlH@tU6NNU~9HHxU6Ar`7xvY$fFjaf2c`+{Ur@_YjRf(1+sLoi~oafO%xvyN? zWe)B$iKZ%Z`8wP=kvFh7{J?;1WFJ=hb=n59nO1PI$&2HPH|)-!I+?~Uyb=7UfNIi& zV7P)FW&5F}`Ffrc_G>hA+YPNYZ}TQu2FS$1v#w|y>om?T=&R_cF>tYj=BO)L8d@mZ zu&l&R0XDVG8{PsQG4c+TZ4YrD@6M@Z=cPG`S!`m?{8<_z-PP1`@jlC$)^KLaQkE;? zqM||$38qbG)3A|5yI!Y5!VhK@$Cy6hYfE2UzIm_j%>6gHJ|Q-bkHkpv&KbGCj@rK^_2cyVrx4sC{Hq!e<4bG_uX zjqbW*((GU^99NxubzB$hf~_;pRI`oil^jhWG2+3p&i=cx1V!kMip1n{LPA_%AngS< zMIptv^cdCjY@u~TXV>BZ5wg*Gmp$6pz>ymVr9@>xkBD|G@ik#RRT8$*s~9PGdN*|p z9h;JWN^8#@XIRhEBO<@Rt9}AY-+C5_&_2&7^qg{=aC1H#(u8)zrmVt1^E1dvs?E1c+y5FMy?P>w0(eAc(T7ZUIofvF3#lQpA_~ z4-~9#VYAJ4-NIA<^2*GWmrNN?d+P3gy+?_gPc zkB2xQ*6oodRewQ%-D#OsnL~H`-H|qVWfU`{>ZpJh>9cHiuVina2JFAD?_()sZHnLA zP`EKb#Re5p@m<%0k<$D5$tYI)sxUaWwT}#?1Eibm=LhK5t8HDhQt35&+ed|j(d!a% zgRqbR?|f&nHBI&XlK@f($QghjW2FPh8z>*)z~4(yX<`#(5Z%}GA4ZI@oSvrWpRA=| z?+v2+DN;^}+_JT?Is!~^&CaF@vk}FmY0G$~t}qU`wO11fEL}O_cgj`v-wPe$Pi=x} zi8z8BI>_3G#@?QhAUJTI>Vl{1V{ceuf8@i<7@q1gdz3G9E@=Dqa@HZ8dsP$ff}c9s z<}9hWV9wIzX@^^k-n#e`wMo+4rHXLza^WdJ4t^{yM7~8cgf@!R>Db6 ztAO_4^Cug@mnr@F(g5(qzQ*M%=ve+uK^x{?;HX3^bNJQ%B4ml~(Yd&f#o4%BSg}vvLc{Y+^I6}_m|Bhd$vJwE3CM8_6@W$oLS9|r}ypi7&>ydzwgY8_+r~xBcB4) zBL9VS1uFcGDcmUYIdxVdUGv+tfpLw?z%^05Q+(E2swdaC2Wa~T(T(MWHb_dgs4^NM#0nAUb@3W-Eu>vs zUx>(c%4Q{tAXlLUG$6zLlS$yLtV&#ZHL8V!l6fL1A_{bbDJJElhF zs%npc{mLLSO3#2g5l9l;RCbNyg#goYrh7*0#02>e4cRg6_IeUuafCPRatLrnfe^g=FvkqBiQw%dphQ18CmfB(O9@sV8Aa`sk z8#pJxieDg&TRgv&yNsN zFORX=v1S}S1TUP*?nw;^SpFHty6GewAQn>plXwRztq~XFrW1vi;rnOeSXjeM zfFsi;&!i)NnMwRa4)ylL@9v}f*%Ba8R5@*gSIb693e&zlUoNKC7&r_i8%^{fks+aU zF)S!ZQAb(@|0T}?qp&WV6wD0-`SYUQnVgvXD2nW(&;zXlT0z=^PVC8v%bhQAp}62B z*1)(3dCVBJ5Ft(Gwx{+Qv_6jfNeK$C> zvk9y2aGG-JAKCH7Gxli7v_YPcu45<|p88>8^jI_bj>oD&9R8-FA{*yI36+bPkFG&y z3a}~td5CNTt_AmPhM=k)3S`Lf4QTx(wiYs&C=}VVvofu?Wh_e+9>TUzo@*mmuOX2H`A8dsVH?mp-x^2Hmx6FfKp|I>RP*Xsz30D1 z$AGDT<47-I!;PL%6t+V8g54q@Bn>*CHPd@tn>?!glH_`SAJ1$hpUvsw^Z0??VgB0^ zG|EIz%^ICj07!|{WUQN1JsVNl-iK$ACkbupv0`l^F0|59FqMHq1y9(x_Y6)vW`JQ8 zI{#-jC{t+wKkVRO!1|%|Lk9fPDup z(PB$Tee*mg2QgTP*{geczSPu;N)|;!VX8wF2JP0+qK`I{?|N?RDn05%Pp)L!0^eLf zetv0hQ{HPlTVwZzyv0|xPWn!HilwPBMP*(WXi}Ca93+pxT z!++96B>utu;-{Ib$kL0M9iZ}KVVS5z+reK2r>CVq6V<$In5~r2Wa!i45VPOM>b4#! zKhZU3n3?RmEs90RIA%NyvmiN89_-V4{%D z83BW8qZMzyR0bMI+Z!2gDj*6uFPvg3HL`M+*=pcmW@{YGkUUBN>nx)gG6Z@0`*Uz} zrFc_^0z8!sE`=A&h7pEr*U`_iyu}X)EG0^EfqZyBrwIxG0@!Ra7TaWshBFeU289>x z4iNL*44wFAR5g-MEe=u5PzYsuoEpQFVJ3zv))6lG2{RlV0aw}~*TM(W*lCw~4xo>& zm3H?2E%E1?b~H+c?2s6XS`*51=#(D&19g50ZuIjrdQ9inr%g4(V3(-7t@ukDdMv8D zEeYwkBVn}pU>6^>_I(8!aQ0l1!rp+c9raVBk1EVH-B2`2@gubmNjbCir}3C`0!7)c z2f`0}b7-v8a{umv^OWzx;~P=^A+taa_&C; zA64nKoxufN@*QYk!TsV!t-g?*AZtLcnkvd zOY@Ra6f&y^pT%HoCRRBMUUb8rCmP;N1Ry=|cX|q{osN@I3Zs+gs z_n{+8Dlw2dW;q{pkxbQi+pGoC=~~CTA1VUlg}uu}xCbt#c57|8nNps*Hy{DZmREn( zWWS(7WOUGaJzi{CpkqN4%8K29weUq)Vrxwoff_o}uXEnLU7Bs9yj+iQ&Sok$(PeOQSi1e74l_O;hLJJ@tp{-?$IhKj@{=T&<-{F zQlqp6bZKq5P%BXPLD#FrT!W)ZFRY(cV%a%2hx=p=C^YJT)v}GFq%oBQ7&I6Q{016~ z|K_xDS<%Q=WlHUAx|#k-M`IEqa2eUS_HNC|Yh;yKZ)LSfE?Eiqba_tqYy;GvnCzZl zdt?xu-4^45Gnq6Ew4Td{{#{E1rT~`4pX%Wn01}S+o)wj zzqS!i-rG9=o4;QR6{@;V>}l|)XT}*PYa4o`|8BGOfRdO3f6?m=NI`LvZ7cFMcKfeg z7@*SbG3ImoIZ{lcVk^4&g-}j<#c{HG`LT#2x}h)ezEJ+;lJDT7=c8`}W!j{uT z_1fZE_wrI^mPvV`o8Nmq3xKhW=!Da-Tb{nC2PXz7eqX^S)vJ}lt~{x%~q!wS(#2taYPSe(k!srF4(Qe3tVH}+gs+1VZ z-uwA0Wo%%sn6i3}9zo}4_$3=5N{@v=y%lhJ5OBzZz}PTB25C>$pwSven>-#VoAso^ znHo+8zB6CDEJcq;%ErN@IdSNT%wr#I_c{AML;m`1C|ZhcZFf&7VST>f{aReXN0|x^ z$RUH^o)ARUN7&7ei$*arDrM50pOo_u7nCi;(9)(9?QU?{nN2=aOq=zf3v8NI7w$7$ zU7LjxJ)grgf|gyy8>46n?0PBk{n^|p+_t7#fLX3EP{csH>^wkA&`s>p&wBVcQoS}o zHn)zJiBH&$HmlQxzFe&-OXF@6lA02eW{k_-suBX){UhmL1FUT-^FJtxF#A zLUQ&fwMQH&+{zfMv?0{GWqx6-si~-nJ26tRn~_-LHD+*!8$;%&Lu2*fA>Q<9CN)}CEOs#{CG8P z1!fx+QC&qhDKv-3Ip-$W91KOwF`IQt%dPv@BN?*HDL~;i>51YYv*#iS3`}l0I^~{j z%6hSERbRj97qz@wbiG{EN}m@(WntB}c~F}pQg}yY?;^X-*Kgh19qV=qYSB7pTl#wa#t(8Dj5P;I2o6EQqSUjH$a945?3Jh{vpmh()6U5b;cdN@C^e z()D#~oK;tJD@ra>sm!L}j=bdz@HCAe@`7CCU%)MqD58$7$(eoCRYJA7(Fm zC)?NQ`RL`FJIrp+JKC1QS;@|_#BgB=Osti-grqjzdG(R0>4J|b#WyS2403o~u_t1Q zLVSgVo@&LySk5By%OCTxDj6|#V>O^20rG#{2=|AhWb7X_u|}E&^4*LCvGB?&@SOL( z`1m7Y4C-U|2Tta0?=AhW4F6mVd*xIw?atz&#uxh!e}1^PwPKcmdSUgWC=#=-BSlvV zqQl7|dvL^aSl1=}yJC-e{|?rY6ibwG#ze3BJ+qwqJ)=p)a;wlNu{s_w?oJoM()$K)XZ6}_l9IEFuc#CI#+aF!1F+$X zCgX6>V!K|iU6_~-sd*4R3T+Q^ep|kRWyke&;Sd>;$`pj8@Dab44ceYumP1f)vyig~HudS*^K`<*#0LU9F&T zfr0v909?wT%MQ9F?4H*NFhtYMz~3a;TVbfJI^G`SbBTF_XHwB-uzw}0b8WHQj&QpPIjUByIpXG9{$n{k4=g9(dT9}SW<7DNE_Vj zi|p{|{8vKnQQ;`g!OpII%*SY;7HGfM5Kc>drKy>%!{Qgt8O}e7Pz)izG7?pevLk!j zn_S6WY#L+}B!74l9YS1GY7A~|SX};a0(x0*%q)^R(}O)e*UEUKrLXN!txUC}HyCaQX$QI@GF6 zrA_5=y5Tp7dKq}Hc3|BRVPPzaDaA^GRcG4WcV@^;X`lTCX}^2fn0$wxo>={eyO?=oJWz3b> zw;95cnb919TFK{qnjKm?slVW8-rkQ>o4UChYE~}0H01p?5w1|-f#R= z;OcE)Zdp!y8xo|hU-#O?0qG~oA+Z_`d7KHt`wd%eIY>|eby8tiDK4;g)KM4QOWe() zr_olfJ*(_j^%SG%Q0^&e`(B)YBRt7tYw7sghoYmk{M_FlBe*_;UlJLrspgxQug!c% zi?wDp$EEf<)GKn+?6e7cjLy$_nd3e&R#RRzUGm&j^s$pxqLLu*)?7oZv zrH~qy*=5i^kkEo5o?bXY5_89jog5j#GYQncRJj+T8r>WM%(87 z##O~y&MpTBU5hNPGT$eh8BVOAV)wtvx-`t6twF&z%PzKM@A21dY>%Okx>XRaZ;ipS z@cx?0&GrnM-l2~*GrbFXb^=B)70OhhkmG+86V0lA@FV|5P-Q8Ks$mS?3Q`S-fbnh* z4B8GIc{9Zk&NUgpwwY`7|MViWVhzW>n~m${ZwtV$)&Xno|iOMJzmxZX>0AEpg`CzIRo zn#oN0B1b(UXgWo79$oY3jw&s^xbDh{&?Y&gwHl2{Q*y<)SCi(D$bm*$Nruu*sY_%7 z;YojeYo}POb}%a-Cm#M-ro>xTEISQRaH6#HLvV$Vuf)o*>3^eRf7b(xd)KSLz;{YV z>#<{JQ_AErd;4d?k>h0&7q1_Opa0-N-5A*efZqr46?S^FRtRhx^W^arau;&)gw8E! z51gr*7#|)yfEk*0=9KFh=#cK3Jx#@uwapEss;(8WW8v!j`$K`z_4C+Q=$XAj%yX}_4{9a??0fzOIiPj5^JFUYjVflgOSb1&c@!r`QPMD zjIx2hIP|L=v-RKm`(NwbA8ZtU6S7HxhQT^VI3kD zpz{OQEr>U{?63$f{>f};jb({;eDbNP5P!&Eye*elLpB<^0SGc=2wENIJj4QtsU+#Uar6T#K6LqSDYKhY>AeA94%;cKj83 z(cH1^YSL@V!I=r^<7%WHc5`bfv&r>q54d3f$P2v8P=@L%Xn4WX2)#S`n0?Gv%N}!b z*%nszzOd05NUwA-<_J8Z+{Q$wGFwUyaFOD_p(zzGyCOla7R214bIKN!7i**rz9Q-7 zv1G)o1Hj%~jDT==9!1zQ7%`bkf{C@EAjM2U#P*<>95&C()U-MqYVeKg zZh-mVw(lGdb)h1*$-rCjdmu>K0OhDS2o2H=7BpYs zE7;~gIW7yqig-Os>z-z&ZlYF)Su6H{vviUc*9kJ`(vm(gonXm|(%bDo9AbBK_hevg zUF=k{pNcZ`z=d{}mk3pML=08*zgQPF)CS`ToFSV?*rA(0{VWPafR3vPtTbA!dYB9< zdRHvpfn5GaOqtUqpTvsb68^$SaXj)dGV&vRZ6T^7%rd^en_a z7!_!D8;ssZ=p)4tuDC>mTXg-wl#Lo@=7Iy`<%FbGO2PujSwS+>`v&wrhK-+TA@#NDmlnwYsQ0`DE)Qz``^e$TlV#rIdWZL z7xF72Tpr*B5becxA)kdVoos356A2e|wC`aiCr^v@Zs!Ip= zt*4!B+jL=N$0~>)6h(zhqFvAmjx7QX<1TYUNmrF1H}NeAXWv%AA0YpEa^MDQ1seZq z5##@>7BMmX&&jzc+gNSVBmC6pIXL5AIj37>veY%eFk-FrZzRvh#2^J5>LI~uASE`i z{`!))J7lF^1l8T-c-?Tk%Qm!(fR+`RHN2zDL_D9!V-?rIESS%#+h0+y#%gXw~H)Vw7+uIzHUtpgbX^O@456bQCA7B9MZ;NsibJ zQxy+)G6ERs2su)KtiUIpE#5!%qbL$TEF=o@Z;Us=TCRO@muex$jH#jlRTNvUU=xGc zDN?@dkvI>{B#3xvoi*~GFj{v&wEeJ-_TH2Ph5Tc5)U)Avz?d>8aY8Im(kaUk_aj%h z7Ct=vwi+Dg=l$-%)$X-s6j3R$rP!~RBNSOa89ZjNTpnwTsLS8vUQnF*fDV*m;(0M}Gjlh67C8OtddQ|?vywD)I^Wl$X z2`79)cL9}k)%xq*qoh~h`0HYu44b*(6G@12bt>*P#g4D?yQZSpj5qDu5T&=@3+<|e ztX4P|cy0WKr@E#jut8cR17}(ZI_4Ddak+Nez@b|N!2jp2qm?p@X5j$@NHYvrF#S?pS0yL4CnVHXK>H3|e27~4dln=@4EfeCEOc4dB&(0l) z@l4H)-Kds{j1JoEzyd_ZHp1#GH8w3bR?NhLS;y9 zga*Tut^-$iVW7A~mu}RFftk$$>qyDzH7vwUAGOtTlnPrDGUbMK9-pk`OISMq{eUg< z%tW>*%^Kuo`}MNS0*#S*@}A@Qr}yCg(MTcP!3R?fwK|)fl<;a%qMiNSRp%&&VMT-* zisZSdeRQsTpQ(aLO;S|7s7eW9H!!ebIC&Cphs+3>!5x6H^rU7Oft{t~w4%IpDBr!* z6j|M}5*sKKxEco{4~tu5N?2@&A)uWlM-}DOKj9vX=|z9&CYeKMXf0j~7uzjKW;0&9 zCQhHP=c94Esfz%d;<;{f+P};cf~2E52D}=o6%}{ptsOzzoa*(<+fXqbQ4aBwMxu36 zpR-c)x*BHoK0!EGpx8M%3vS&=d|pr@XooeGVXp@+KpP?c>H~)3grJRk2=^+qlCaq6 z1*aG6_zU%~dWwCONu%Y3BR>)Z@Of}Aqt(+ZHwY$3cBq{EL>!0V8E3#Ta~o?K<keKG*qc0`Mvjee&5(3K8X_3+Uk z7#C4HCKv{j^gl#T)tcqjURsj6!UOuXIL|ZpM|H(-ymbvTkx?#7-f=<{<+<3apyq9& zwd|3{Z3&PHa$1uWL$usB*N(Rejzl7ZD72{I4!`aMEraIF6-p6@Y3>JaArIhR8Mp+R23TCEZ_%4Z zPtOYf&jS7`K3#t25Xu($-67Nf>nBf6^1x&RGj;F@FIx6RI-+}yw_n$)bPmi(DT#EQ zp{%;G88e<1S{LmX%q2mv|A7D!dJfGXsEf*YwvOVkL_b%s#G*>L{cdXPF2D`=Y_ou& zkLhFzp7wM{QykZP{!U-|5ZUcE4JJ|ffc>0^(K?}M$f+%<@| z{N>6bZG?ZF0ru`%^Xb^h7_=(nTmC_CKTap?#r!~uWT8u#1j{~;CX9buh?9(D6ptSG zx$=IysLG?pv?q!CCI2lckRp-?SEGEZRhvGLCW|gp#lYuu6{Ll1_F{Ub z2zsI||8}@zY0$+&zt#6(u8k+_nhdZ@(f|V^)L*N;rU0h=T=|va9_3P+%w;k1dI(*^) zHUmG5fPu99C)0Eilib$i*T zQnI&3lHoGaHvuz6*8=K1bdP}KC!wG)PS)j28`Ck|QCg$i1L0CnegvbV{!G$kS>+Ol z?OhpN1st3PY(O~22q#elVhtMUrE#dCO{(;s+5O`BQ03teVW}yapS`ROsukx}V_)_B zqJgf~C)Y^lFLbS7Ukxlu!lnIaYZnCr$94pnj0*+8w_BChuRgc2MVWP7^kj`k;-->Ubr4rQWp$M;BPzDpHgN0e z8=+C?4BV&rcGW00W|sjlih7%l=!4jg*?=ZqE+9Uup~bhVc3kobbOt$EhXjhR^v|F4~pXwzLMSZKseC#0(VpSA^8Tx3mMR5`J}?f1q(}&p+c-D zK@xG}^>e|2U5EVNOnQuk<5g0|MW}2|j0uCX)&%0^vO=dcELtll%!N|}88d=Pa92Qi z>1qGmp+!mQtRLG8)Gho5m6}rhW6SY}Z>ON&Fqw__xla~Gy@z|2%TqCMtB4}=`jHwU z@TWOHgv6_2_7F8RiYJk1FeilA{Dj7ZPC-^UPS+z}pc_TmqMR8DbJe*Kq9D>Xtc8f?Uhev1e_#pp` zZ&HT!OhlU@~i$9ly6$QAB z$YwedW2mwg3gq|KYBCW4t?udac4jHc$SBIW*j;jjwSjEuV0tN6iMbq?-rULb0PEY%ATn%6;(y*AS^} z%YU0>qy?oVc34DJ?Nwv_@glGdpFyOWqD|Y0f-wDwr}CvAx}c_*wC3GoWfAA`%)z%Xi&a4{s6-fxP7bA=U!>@0E>&7+nC`b zQ4{)M0Q*1)W<}71)u^`LhM{aJvEV zR%0Po_54t=YyWfQIH8D%gxiuT$}(ivvb98t?jHnrrIJe{6JsLm?RIG&;?4IPHhXOa{<8>k z|Ixf;UmDP=+hZ5WJ67t>i?bKRtt<)fe{pX(Aez}ftX z9|pfUxmmcK)jf}&mGuI_SW08n(?~{uKcPrd)UJsFt+}Uy8F7pvsSCR61ha*RbI%(z zXxD7=kSuPVX8GfrQ{lqTdL^g*1LLCQTz<>oQEy%hNGs;<3fG2`(TUm}$%n@Tz6s+3 z>qEEwlk;M`R(;JEduY(THW6;4j}Z2vTQs>Ce_M<0!#SntVL9m_VsjB#US$tKR}P8G z4DvD&eGXc15H_24{6xnb9rv z(zPi6YfKC>3Ts`dlIAFt9T&kciBocXJM%Kx&(@976U+;rvQac#KsYja80u7eLvVie z`Mspvq=RN89B%W*;L0g#y_MQCys%+R{sNiflZaXdcU$FbpJeQh(4 z^Q9Ku?3Pxy+vgDvyIqqMOyBjmmmf_~r~SrxuK9IC#ZH#gJ|%%A2f@O2)cMP(BD-@P z#cPaJvdQCn?#OJjbY~3cDt~9~g-?K?W=M8e_m4xJc3Y$L+1-`~Z8Qo9894@u+K9T6 zTUJ`eAL}&+{6?jW_>|!<2_-(#bms6#Q?-w~?H-)|8dAMlj-kkR@_3Y}ID9^jt#U2V zao`{_k2|RXbRT3)&nBWFntV}#19pHG{ztWsF28C$EKMk`DBcYwNc*7Sbhk0j1C8;# z9&dB5y0FN>S)4P}=|ftExp zMvXO^Lu?pwM3}f`*ykqVPTn}k?j+bBT&2DEcemh7K!WT{ck094-bfW~$a@LpYg`p@ zZ1NeI-Bg@B^Ul{&Z9f}0@NF#hHw3LIN(X!Nr5*8D_;wzhR&|B^!j<vsQB7GPnQ33^?vFcaEC9;K@_U=kzOHFQgy%SU>M`6$P$d<@0abb!>D-4< zxK+(T1a!R5>JmMAmTz&9>qCfxn5~`l zd3ulfPj*z_ZKvD}*X~unS|}P?bwke7DYmh2=Ydq7NqTcOu!cbE#>pDYeIOmhvE2uO zyQ;EgfBhFEdJze~vhd%{f8*c6`7Z^)$kD>ynSjFB#PtuYvyHtq&s0Cu06h%Y-e(RG z!2%d7zW$!U8C($ILFit2Qbv1$mepo?oL$Itmf#QFFVsXqyYX_qMO4Sk%Q1(QYw5+> zN!`g#qG0NX2!~AgH5+M!``Slny;AU@>8;|;7AVSvqCk>??S?L(l))c;XKZZ*w zJ~Ny4IcXJ)kG03;Tu?ppg9w2*yiN{3&PV*g1Pm)#S5))E1VczjNuO^ZA(`HP${S@& zO+A+Xf{OgN(EeY+{ok;ZRP9}0Vwawupy3>z?&o1$;T~Wh>J{aeDQLxIR;U*M855%z zp(PIbp(%V7bMM&@Ou`WQ@&-qn`--|`Y%ZD#A zJVlBZA^FaGC)w#oi~ ze9&Mrf{c|>6Q5N3!U`zjbsIQ9D9}O)=?^H#s1txB$f>Ab{u!Z3h$tSRL08eTj=#I# zPTP}2z$!2QW#HZQT?gQ)xQuz;17p+6X!Cq~yuXS246BWEt1IkAdX8!kO`Sb^wC0>@ znQu+!q5yvtCC2#IkV5yV`Zlr#=gKvvoBZRQ88C;`bkEcpY?UyhSqsp#SK2vrM85N(@|E}kGmX{}gPy1Ki7x7T)QNrViLXI6vLdEg4G;F>>AbYr-3<3pPiUFY;IhNv6lbwAHJT#nl3#-m-t49iHkk$aaa+;^T^Q z$`V3{hBa}W36Lg5*35ngbr$AG<-s4YRuBZx1lr8NV$TbCTY9B0aRF5Q+-)9%B_pep zF_xYxRbe(ro`Snd8NNBDBZS5l1MmM|VdouB_4hyUYnLq}JK5PQGn%7kEocHUT6aTtQ zM}P39-$(qbHW!2Axr#??X1yZY;OX*nB-6Dn>al=<#rlYqeD6^C13_Dxh zBNJOYvJxb|Gk&HnqzFkcX`tI#eC_v!F)7q>NBY%Q75}ta|08YKrQPLdY_Ko4vkG$*c3;w~-VhwOuhczYYvLa%!q1_YF}e6@_O#X#hf80}M-*GpnI;l% zOaOuKo`pbYP;7;_i>0@Zhljh@@yE?-6Ibss(No}q0-~IQr8n)q|v<-Omu5-{{q77@Dw!{eNyF2yf;bG>wqWvH3I@bcZ8Bhfr@ z=TbyYzYt)lu$hm3uS|UD!lO0oB+gRk!(QKI2Ew^CvWjO0>P2MFC#m1`+FJ<-I7!iv z?)1Oy-UY!l7PM#NxN41S7u2S=RiwlYBDn>pZrFU=J35-!IL}>i z=kZK5;lhK~>4H5ZBszmv{{=;au$5XbK$;z*Jg{+iA&yQx6^mxLo_Kl(bki^M`y5RXG z;ovib3gD0?%u9}XsRu1qbB$X_yuWxIW*|3|lUnbl9=e6qwCc-2iNO0o$#o z!#jVo({6*HoqPMd8xAJ|-Yu}?wlD$>)=Dn!7N65%fZ{}mXh*V-usSC>oYT*25GQzs z)%zVmz*IqcD_;+~)1m6M{pH35*`U1|GHl(bCkq==doJC@N~DYL{FfRZPupufG>J{O zPfHlM@TU6h)z5{dv`aL1I<5M5cM55~;dR_FP(9#0F<->=#HciYyIC**k9{^%_}cUH zmy9n+4U9FGb+F!R+Z`{KV_@-muyaHHeHC9S29|b3G}S84r8WvCm#)0TN?7eor@c!AiEz3sy3loO)XJrlf8bu&NbxuE|-OTg6P&3|~T2Pex^MKQ*$>V4h3xE5M z5n!>4Ol{sFj(bD>>Qujh3zoFPJ%V0}fB<2(!I)OEUED2RN`FoIsOerdJmbg7d0sdi z%;&;8hHOWKmYcRh(=G&J=t$68Dhob;=6F!aNZ=7rO$obVk}~1;wgFHs>2kUs?!9aq=hhr6+u|SEe0jN;w6pt^wasHL!Fn(@;%$c+H zOAsg(B`T3DM=A+pFCbqe2@TqEncE@Mu zw6voH5uc`pUHodV-FtF-m1enQ=aT)>H$sib3uiEw9`(&PM zZ#L7vQ$nOw`8eFV`5kgo!=}5k6K*tdL%&qtV6DKwlfKAez2V4>%*0u4thMohU`S8K z9jiD4o{JHEIBbiXdvje&#FVC)m8pvG@5|T(&}J;`nfNmmJeBHjPX=2DA|9epGYV2w zHIB9_oEZ2F`NZRQ_$jhXOnmr}5Uy4#frLp8FYc9jQpLelG0D7~hn&oF6m|Enz19ug z>F5%x@f$Ks?^_gC)e^=`#R!bb64u(t@I|%mT_OqjM)Fgyt%dKZ zV^eWLGRX1|8w5ngL>JGBX}D^uoF13UxYEjWW45KUU^69fmRwctleV_yo%*s(=Vi0y zks|un7#}m*>9L$dnRR4S#8$emPxFsz+ooPu$HSN5uzjZXcq6-l#H{5bBWE^&P}GN7 zOtzFU%oj8nFgYxI7djoD**dP8H)4ZEBK?-Ke)n(#VNLdRPkCbF&04Vn@M+j9a|c@+ zh?lNhxosV8HOA8IClWy&LG%jh<`zoLM2<5VZ4xj&Mi$VVP4=qn1vgDJA%$qFBI7cS zw{|zT8gFI2(HHs=E*FO)nJdeDw~WV!tTYEm*r<&TV|o%RT5Cv&Bwq11$-%r&%QcCr zvDRfi&^od6Y;=qIK9}U}#rL_BR<(R0lDB=iCZ*RI%?&FLizL|3$OI3U^!9Mj@45I! z-eyz2oXBlhxuiN$VR}W5jUUZ|GP)mDgqBBtPc0qeJJK$L^~Bx zb1hVc5LfHVFrGggBUg_1eJb0=I`pPH{Y(Ub>4uzW@B_b?oWugx7Xl^EPSo2#BhG&; zkWiw3D^;z+d4cor``JVCP0CE?llMw?ZLZ6(5m_by+8+fcG3-mc%>3{YZ)^wK z&96N#cac-X;jwW`agF@rptZ8Q8}REjl1W)#+m>2w>uj6W5U*64exEdQ>>LHLmXNH=iC3Vnx)@E-Wl` zam-~i9De&iQ>E=-@Zt>r-Cpm&$yw|}&GP9y-OA;RXDb>d>PyfQe&%=wf?_Vl*AC6UTX zakzbnjn-nppxjO0C4%yRF7-Maeh57N2{!Qyh_AssuDr`m%SPR3zsq=}(1iAxhc3jt zZOTKBK7{LFT!ohyWs2`y-05mHE$r!5_PEVo6T5xsmE?iErW8-onG*{0K?GT6?#&;4 zU5WA}c#9u7qIN|~a^DQ>k+7T&d%Re;KlgPnXJu;K{AE?ry9SXBk#6gOyZ62E;&T{9 zXg}9#_C_xaMc1`V)_YF|Srw(Hy_>6z4&J%laFv83V0Uo>!@EZ${r2|35EVuun}F)m zE_Ge+)tgKPa%SIY6eyZblV{c1d@%J0>a*Q%#UHBzAsc618DGzanhuz!Xh+mPN;k$a z_y5rBSW@%S(Q*5gO#OPaL5+f-vVq4lTfh1PnkU+5}za4)faXx&zmqy zQS~T}Sk}%kaZHa{HJ!F^NGq%-PY(~O2<~_)`EA*5iZ?0RR}Io7UR$aA^44&rNPk)S z>C{#7yZwwbWf{fF)`<8?#y3G0@B`;|S{C-5@Iv=HFE<81Y{U6E#k(6)UNnX%*jF(U zT`t$>-$=O}S@h&|Ef0MSo5JaluW>YG)ug1e=3H<-(mX3uI-{E5%87WtGqCbS0x6HJ`L$BDdRCi0?|p7HLBy88OpI{)?G}{--BQnUyTgP9XoMbu4h7qfCf5E_*S5u{NaLDie zh{jCzN&ABASyJ|}blR4v9M<(7e>zJxz+o=O2Zd)R%e#*W5Js--Q7Q$h zVm^~OjTPt|mi+?5vFbQabs9|drO4+5Y!=wkuP=Y#YstXdsr`;IRY%Q)OW1AI5y)7E7|Pjy%h6{g z0#R;?KUpE$lvAtT9+W*+4y60Oy5&C+ifk_E0SII1mmJ@vlkQCYghzle#u z(S7zvvL@fvpYbZRx5rU2b?Y0fzW&Ls%7HZHXBJBS^IMotSUeY`_aEkwLKyGaykqB` z%t-v=Tv6h~;6xh56Erj7R84y%h2O){`tHV6()h1p@h3K^S{m}H)gQYL5Kn3aY80;p z7Ap(WR!K=V((PN$v>Z)^Ui=2jCBlO~R^AI;i%yS}~N zO1z0L)XN*@?gpCEHTDvIr~si72$As{h{Gc_3ycq?%`4DU)03^KiKcr!a)EkMWBAm~ z=T+}H^X@=daRi>5c(6rF#o)$Am+qT%Xk6FVNfEH)R-aGf;jpzB80wJ1mQ+#yxQF*} zM`}xgFDc>E3@)-MJTUnqN1puoIYOZ>K&po{&fa4!-=wa+Au=Zk#jf=n z<);~nEgG$wRV#L+kCS$tXk_wW>cYgB`^ps4w(-)>k0eSACN&=mU46E)&3LPQem|S^ zxqWSEkseKh8QOOHLnCUgz8@e?M^= z79j-9boSGEs(qz!K7=wWTS})ljeh5WV{Vj`K3Ir$uP*=T#?N~ zWjJ^0EvWU3_bsbDIA4g zT;uYWH)!{QcH4Cq4?uv@;&nULN zlps0LwEa0NECx_3XBzGwN$rE|Xu5}rnSjh`)?>Q^-W0M~#-p!@7l_7d(N=Ex zf|=Vq#1*4gsBp_EoCE>I_Hb`AeT_Z*)ykJtJv0&jjg07tGnwZ`-r|0?ZDnFK;_|Y_ z7M6P5eNVyDE^2O?n>Ak{Kp~hZTk(3PQi29m;?)DbPSY4#`PJM-BKpuyNEqw0QxdS@ zWVkplzR>$br}hUdDy&y}bGHjql~s5MaPQrl#qKX+5KY$9ffyN=77&g2a++W`aAqs) zJ0!ciWg(iu;sX66X47O3o*zlo}-N;>OJDdS-qsXFoz;)A~=FZtBx z#u7%H7UhKhtNSM(o>!GhCfoQb?rA>XyTiC0=7Eo=cL&$wRHwpbYPw|O#ghTm2n&ho zMrX}|AxYw@#n6##5ve`FLQ1fHtC1^od;|jE(rK~`+&k}`{2h!o zgxDJBG!HBe&QtN;lh~E{s6|3wU9(D^zvaTDNLrEZS*qNHFYc#PoIu#UN+V)&go&y6 zPBZSIOf$MLW=iKb6+PJR;6{zJjmzc5ep7I33-jn3T`;Q@90C*>nOO zrmkEgmFblhu&XoXQIo_8@^R+##WqB~O>jARSAND+p|)Ln+nMjF1D8fF$33;dQ=L6a zH)I(aeQ`~bEthkt`U(GKM~W8|Bc(wzkVB&!>A_)_{8D^l+0)@?i7GbQ6bSV{o~1+N zm&fpO$0xM9FkK{=a1)=Ece=>!e)wfzWU)Q{rGK2Rq&_dwG?UXZxw8Q?@5s$VQaO9L3!#$s7lE>HLRUvEjpMu!YUEVBLU7E^STiVG3dRD1Z;`G)%Y zO$SHUukU8^c*>F9Z#)(5Cx42+ByD!* z6h=Wx@cB77&RT<~XNbw%yF6!2Z)4hFslg2SvQvEzq8km%lndxq&osB24~Itur?>RU ziMQM7EzGs$OO_K+NY+_=Sjr`dj9J0Mx@_!bvuXJBJyds!e}Z*P%d0i}j=FF*M#u~K z&wAe&EP{7e-7i;7N0`RErW0q6zxt3X>>;LZ9o#Vx=AC&xMV!dyHuLz@+q9{&s#|l! zq`2)CxGAlpx){taNuKp}X&WoT^P3MvC7Ni+I+sQLE}zKZj0({;=@4psYllZ`D~&g; zXgB9#9=c7?+UYcedFWT>ebe6PLXVDA*|%lQbXRlRjmhFC{1#?rma$^bY*!6sp9e7A zIp+`0p*?RrT4yHR@MK!6*sw}myF{{L)+tz^K9Z)T#c9Xqgv{etEWW&}xIzX(viB5i z%!CVVtiOfRc87hO7Zs99v@!g6?z-3W`5w`z)OMC&w`+^G9s=r7^Rw^vZ`Pz|Lza0T z?`y2&Ji7kny_TYlcN#-lmUhEJu$ZsFRRQlukKUTC6nA#i)95cwU@K_8Ur#z!dE0MF zi^SFv9A#IW-p*#e(`(erq|ZNoa+qeqg;VABXB z6iP?xE+7%h&+`^rg>6LQ3-!y){bv2yqvFe&@L`zsdyo7w#2b>1Y!<4(AZvdUqJs-I z?l_X!uEf_{hRc@2jjXK$iXy@`#^n-SqKuYCuTdE)~BjH>bbbW7@Xj189mA1A}*jaV|#@=shvo=aVb2Z z9u_iZw2l9+UPD~)^Ig?mvYtX8t@IbN72Uq{k1{xJ%0Fq=7IZC_y}w2Qb$k7A*%xC%m`b6crcp%V7}8?xU|Nf;fV#8L0IeeT$}p`GWPT8yH}=%1gM*A3EZcHnMP zvf8H3Xv(#`o7;6;pxnj(i(-iWsV{6iviRrpF>Pc=B4tE^Hw&}69qHo(`oo`7w3d1V zkm(<6)_Pe(yA(H=8FSP2s$T9C3^={1SHK*#CC1kc)y~`DW5I@ei$L^KsL(i9&W1uX`@h>zs_OV^|=r4Je+@2%y3j(}M~G zO%)Hef1KENtTc*0O482{!V0`6YQ|%qj-lmX>t1HT|EMWpb2um~{^IO&>ng1h;>TA9 z=KQ|AIU{;zec7ogBJa+%YIT_*qY=R@Q3G|Zc6)FG6$T~+76oXU6A*nv1zj`kT4fmc zbrn1y{{3glLmdATYV92WZgBC2Te}>){-~J?Z5yLgSs)PN%Mb|1&#Vwg9^w}G^(%&+ zS44zQ0Q}j(yy3hsH+y$}`74)Iwe|G*;Qnw_=%U7Ee;8071#mMKGSr>*&rl6DMP)60 zWpvO>YvxczutBDY2m%3=pD7O^3jU8jNva9<)hWqemPZvc&XOQSGOCE&P$2TZ6*wQM{nG)^M;eVCiS=Syb&GG~UQk?oB5P0Vy_E2~*R}ZB8 zkbjK9Z&@IWzx~KV9B3oU;|o;8-Rnb7Xr)l~SzHG#%iYTk>IJp41f3B{ zw14f?jiGDZ(V+D{f#MLR1VpMiQD{*`g4O6s=_%Z(5HC;Xf!Zm+&|<5?>vOM z-QS?za4#QQxR2LA*9oG6`6WJ7?4N`{G?-AO#j*bj*wxz087xZJ)pKQdl-6&*SDg+ z3j>25DTHbw_`xdOA2kea?SM{FYw42gD4}goydCjJ%0mbiA#rScU@mr+u28r&8p`JNK-ksT`oO_By zv2}s*3JdW;{r_jYu<_^|!^s30Sy2(A3Yfpw%P~S!1RdgcDUi+ksc}>Uy8KitG&m=K z1rY~2iEQ3qIbtD+;O^=Qc0K;dyzA_+tVsj&76=T-@mGl-DG!0|gqCIP0<%WfN$$8v z2wVkA;3rieD9RV;iWX#Z>_u8a9ncMci@k6v8Bn@8(BqIb`F!{vU|t@sXd0a<)`#MF zYzP5B;N<>Hd5E&eKfwIJumC(}G(Zm8I64d$OtaDKudta{Y-g?Fxfxiy#I;BMrTIMZ=O>S1DXN{ofX-UQ&mKZbg}kv zvvq`eF#$^lvxkBX>+kA{v+if`Yxeoxx=mDP&6cL#GuGU zAW`!Fj0$J9(UQEaeWC6iXniw}8=`o1U{aI;IxF(1kgJ29b!^Ph2$kj0{`T02Pk@R? zE?&ARdJq)M|Im>pZr$l}1C}ieC>pXOQEiQu1V7e=|8+>1A?BC9gIewcRfQ~(sViEJ zkB5u9wH+GLTKalREztY~fI0i4-M~8!k?QsblBJ!yEjrEDT#Z|aBlW6bfYFMGqz9`DApsOPsmeQi8v$zn1%imYk;Ouhcu@6k-%Sz14H@o2kjpz z4{;&^l>z3C=nBHFRQ1_Q7y^0Mh&p?Hbqg7RUT5mQ>wY8x#UKQVj9d{mZAkf{US95K zCoRv5lD>|B+^>PDJN=^s;GKuK-;PZ1heO@||0_MJ&3Mb|l5z{wWG`r9WK;g6^M4>- zZhvyJ;#;+y7eOx=2fYB<;S23WLOHm&qjM2RcMr~Wp>%2=eCAUkaG9|)fxefirgwDvADmB@c&~XT6<}? zdo?QoCK_+doIjdP^SS>^mgNzw0o+?g2-w5Y(g8et~FqkU_s6 ztcFTKJ-+G}WpNLM^4nons1($rlzvej9-vZw9jt^(K|KNI7e(YdD&^OCIH(lV6KQ@? zz93V6olk>`K;6>z3$a9k_j||r*RA?(gBvOdb^q8e(mPT#qxk`f*N!63$ccb s_z{7HDg)|Aw_gAuUL+a7)D-0toX#a2FxEjJ#^8?xxJNU5z&1ht4=WdYe*gdg literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/six-1.14.0-py2.py3-none-any.whl b/src/venv/share/python-wheels/six-1.14.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..d49a86467241a4ca19be984fd7957266299d4378 GIT binary patch literal 20256 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 oX9fWoK^BAf%=$si3Sv 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 Q=va3PWLLyOnf`eD4<%V?NB{r; literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/wheel-0.34.2-py2.py3-none-any.whl b/src/venv/share/python-wheels/wheel-0.34.2-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..772e407fb6c056ac0eeb606c5f9f5010071a0c2d GIT binary patch literal 35611 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�f``%?xk`|lba~?R#7s-f zx99+jt|Gf#Y;&G zhw_=VGi2-;-EV&a8$T)NSW>4T{aKBNNibO>rLBQrW_bPL9l#;Ad~C`5OzR)}Co;Mr;^8v!3#uUkKF5nGaG5yjnU7Y(Z%vr+F2x*^(;8IKT43rKy-2kzKTPIDs~21Y95E(FH<@`)>u zSKNhOekN;}p1G+LE`I{UGE!ZPQK!|osh!I7>&tI2&>?woR80`r({$!2w6`h)?Hz$D ze#j^80Q%c<>gr9TM9SLsOki{ez!>USYa6c2rPz>xjp{-?)L64zt)j$te52iY{N5xY z+ooyg>^xp3tbwju?prP!xyD?rg?qvsT+dw_Kjd!E-*7BrHiywA+jrQmr(|16TbAss zoU9yyZ0kojbHJTw0xP~-vzY*{4QZss3Sf{GWs1>(jktLCOiY#InVOCOw?X~gwXG<` zxchoGOA^EG>Yj$~kO)pKOP*7}%X- zo`mp|**yW|HGIfc)TuZm-tLWhglX-TkPZPIzJadiH}_zdS>y)r_&9le+&}i*x>u%| zA|1H70zfPwdU%3A)z201hplhYm~d1rtmghEDYczd zLDRbfIazsB5lq?r)fuc$Y7UVwy4c&i4_6hty})qSVuAT>ag~zhG;pV>Z;o1PiKHej z1=#W7_=s2h_xrSBNB7OCcyQLlT(jv?86yliW|_lh-Ta|Y9BG0A2Dz<;5K5|(F*g^%s-`;g46`sm8_ z%Z*!v5Nx7&Xv`z;Xi-=~fA|r>amb(#E6Wecc?+sLvMajKp7Wu@&2eblq`3&`Z3jcH z1BRWY)Z<55fch~h0vYpwfJKJQ0m)8kq8o75wvFw>=B)l}xZrRkRAX3AQ zJ5Vd;Xx$j2-FhTv3XVEVO9xB$#j2bh=g3D!W-TVa+Ty;&enBB8)^o>faNbEQ(~7X# zP9|eQq}D1~ZKQ@w{d3 z)eFM5%NpLW6XW$LT{glMs9jbseLd=9dD&v-i0#4y?-wU4aa$ZVT&GMt%$`7+(a>0$ z>X_w{0P})>PN}RE?76yF*}a+_w!CrOkaE9Q#an;IZLWX?hY5{)ZD!cbYCW-(9$5j| z8Ld5CQ&tPOM&L9}&+p3!SDzej7iT1)z|_rWh_zZ@SRb!$nuVbZVD78@!zh zUR&lWYR#fq!}=jVaX+!3*n$hfZx_}$a`KJ>{>nRL=2WT{8}sP#$@V*3 zePnwehebi<9)ZAu(RV1`e1ltsCLt`-#R@ZkC1--~l=M~_$4YY$yN8X{dit}aft)N} z4i4YC&Fo_wOe?ZrpRzd9bIicVb@D!1SRD~jaL?h1<`{;)W^gouu1gHVT6M^@pdn%n zA6>%db6dDmso5aU`YJa%5qeQ*mOBAQJ^lWV$PwM_HUn?JJ3S3+NrJ}g&lD95^^pT7 zZ``HH(}H->QX;ztd;5b=DZ&12)iJ8|S<*^Xet>KOn$i07;Q}Hcx(|*|AGexS4vRk| z91e+JXd$fI*22NiB)asPyc+S>px0-9dO^d!7a}zpPy^Q&5^cpLB6nezr zod4{S=6JJ~0kD!2(NQ4e>fdigByhCXY-=IzL&H4DNyl!#OLj!MtEb8HA+%XP_!Y9B)!4%j)%jcTSZ&ru&fh0 zrKbiD42v)T9^-#gnbpK(Th>DdhxuEQ%;~nQt^D8PO1GtZ+JzRFAROUj4&Ik@h6boj zZvT*ARBBwD;ptLDX}re9Z;_-H1{U!^m!hfn{YtJq);&@lJCJ79c!@Cs-AoMlmX_0w zk!qYz4RBU8*}8c`j%Z-%HXdq&7*9tTY?zZwyT92<^KfR*{A=1x?g`7unC?q{4-PkW zy4mS{6*f_l+)GO$C3|XWV-M8ke7NjYN=B+;%KnX>#ZI2WTUDNw84DxBhtBAu;s`y6 z3^IFh+W85~bb;Dh;Qx4!&fc)Dl5Hxg*OFZ6vcw-ZpS_}AHm+z=IH z!5ON&YLgv;kUOpQdUJJ4<%YYE)!$klmd;Z7xXdSl8bRjkTGUknu#5uXQ();0gd3e19U!yXO5XM^8DR(nn=J>zPd6m zb!oc56q#Ye)0)KVOYW2rBb)Cbju`wEFr5}}KPaZwf^|*7dq=R;Si~FIS!`^Gu**TG zHxz){H$*H548m8e&{rq#LO1)kwZ$*zwK;c!t%1BWmc3$7ZW~JraZ@VjfDG?C;Zyw>x$4X!DF376b&<~6TYjIAGEH)l zX7xA@5j~;4S&c8P=}+p<}yoGfk*k2)M^^ATR!3w((Z>L0o3GZkvHFQ2dNqG(AIgrXP* z;ASmWkp{zYGq%4z8^tWh7Mm^(((6`}5U zvESqb`kzTUJ);gasj_(gEt|tk`H`>QJT0y2cN%b86ow@iyK-~Dq+MVp*Vy{SL z8*j$V=#TYBG9q3VGjfUBqmJRe-&lzoheK{3ppcf?RUmOzHt=#3!0 zQ!7(r@rPd!NZ_sr+rRpPsxD)JDgC?@00aOa2=f2y>5-NY5|LFB`H!bZ zM@i0ZgC3>#REgWcvN+0x$EGuV2*rvZ23u)_fjGn+$^j*_!S}Np{cJ-!%Cbo?F<%7p z7H(fL8Y~p6tjn#rIu0IFEmy7tUIm}W@$ZPBRe^?w(9{iC{D?Bn8tytw7f=6i$VxVF z)JW+3$`InA{B}0h!`;8?II)`o!TVwq`F!07=mBGJoaKdo*EE79>oxn?2Ad_N?Dh0- zY7VW{A~KYdw=0qRqRWu}{A<$l_BL}MR%MZy0wp(NCj%7qtK-!X+UxceKEfM2m#T4+!+ov7!*^iXc&W3V#3_Wj|tT z)QUC<6?a4MSkTUJ9SSGe3`qhbdD;Tuy0NrCy+SZG$3&?Dty4T5YQ-JP>@&8C0@NE5 zZk~2Mb!L&RAJRkWm|^MAqU4~YDaGg{Xe?tt8b+_AK^d`;A&$_*%2l`=c{nwc`PGSS z=fNWC1;ZDy<{0;YEK<5v@aP{U%5U@zRFYVK3I#<1DU$e{3*n$FafH-IDrgnhUuzJt zvo4DF&eWtvn084ZKkOVaKY;)Kg2DVPC+2_w07@VL0Py~ASDK87vVgFFvOu!Rt?ec& z!tYFJn*m+}C~Gq5Ij6a}0uhC3p@b#z`3pnIaN@8Ep-Mu-A^Ilt)v&7=g@ZQ8C3RoP z(C7B{?a!Tiu!05Z@*Dh9KYQk2y*EjXN+3rS)sQAPWX#ccIX7CX&LVm5xB*b)%#y=a z#X+PdVbTm6MiT7$jJimhhyGcPI5z7HJw1ZLHK zV5Jd@bxgfN$&7$n*L#gJ!9xf&mP2t=^pns+*3uh5@2B5SOOO|>=aL#ooYZZ?SN3pd z*|KPgsCEXB4Ss~$A{WEs4ITBt+v7Azy@SXq{(3md?-@mqu!g5Hr)rrFVv)mo&51|x z6_Qo!R}9()wQzG8Lt`6ULxfDXl{uzhsQoF$@R`_e_V5%vdsu9n23PH%e4m0Io>8iy zYUP;9#Qx*+=%t*WZsen8u)gFVMOPoHf-Q$(TX9||fCpTy0gSMO8>ksUr;M}PQweLq za+$$`MPLiRDpr)j?UnwmwiQ&$uC3ru$S!G5*;K^Y{peNrrBijjFwC1XSFpsUXDeZ- z2jxbgyI3$eUAHA>i$}{*^H9_#k3!ZOF5`x?IR}(n_mY7OP_eW5&`hpKz^X*q?)ylVC`OP}jlE z!-48OHvWe$YAf1@;Af>M65ZGkec3Q(wB^G|@6~>{YlXio{%q zo#j7{1inekCcq;#(KE~YIqgc7jaImg+{I!%zm2$fm6}|ecnBDNfDnx>9e`% zz!`Y33Rl}OcqpAB`W}t~iAPco{K#eybzmy0s>m z75LeDrkH9Pkv4n1_lN|IMJ=#Cl@gDO#Mv#mo$F{xko8WWVfT-rTA%`a;9ElZ)T8Ph zF^m!_9r+&cQJs6?yNSCB%RjXA7Rm5A7amJz~Vss=Is>98J73ORh?H>n6 zc)#Oj=_b>&^i}#SLHlZKL_Qe%DBrO#qlv?uX^u{n(>xpn)OchK9xmX2*x*NeN~FBP znlGku5whOyzg%k+K!5Eq5n-2zG)hXXE_oywA7{=<<^2a0OOkalI#!pf@eB?{_{ICW z@)*Sw4a_5=a&jXe#)aySjj?vyk|kS&)avE%}AJXowvwA)tOwVB-F)O`GJ6c`tlA z8l=+%G2Ml05?Vtua%Bfoa%JH}3#mr|+Evn0rnORuGh%f3I+ub5gkQsZAMt^BN=1IB zbFZ{>h)aVnjR?#@4-pwTJ6 z5A(E96&t`Pn23(>w|kCDozE zlI9|yPShSdE>~L)4dgj`C1E$J{_iv8)5`Y9S4yubwcQHKw79nJ4!N0mNH@hW&fFH^J$nPfQ4&go&|z-U5f zGgyYTr)MykMsCFw4_%PYTvXK5@QIouW5xE2BCfgRaXTeY!Z%##&T^D&9mQ2FQ7jJc z7wEqQp|5mNUGJX|*!~Ob|635$#6?7;p=ZTqrsrX$XeeiA=es=IG~`Sm&7*j-V!H>E@rQS76C$B&Wxv8x+YYC}obJB&1sv$;+4* zrYC2mmSv_YgTnt13Ag>PvLz%wmrddyA?trZ_J0#Iv2}Lz(6hI*uyuC&PxT!sJ2Oi) zGb<5ICrdj)O->PWO!*(y3Uw*~i=N{g>8kDF=^onJ^AzdBB*i4@9K)XD@9pj39u)k; z68Qb@$~5AJs^ZqPwEv3@hS846zxoN_pKJmU|KDt!?dWHCe={5zt5&BX&-OpLR6PCPIGED#xYz&Q z&j5imNxubDKtP3D6fWk$zD8^U2?YY+v? zJYaEXH4g;tUf>TFWiYe&jr34eoGT*@(>?`JTyWF-j7||;Bc#$?+_(aW2Z$~x5eIaF z7kiOjG{nyOprcFnsX7<=m`+a3c)@)A1T|;VggtfDT=>DKYRSxcifHI|vKeu*)HKZz z%U-=VrR$mu(a;)VsB}cLI^K2XQzfQSAL8wW`f4K?% z?;N|DI67I_+5XEh%ai~V5CaVVypJ4Wnh3fjA`vBUj)-Mu`EUk|jOg9Vj9@A}uiszd zc1H|@dJ8uPVCiN=6vK;o^1*Ll$(AY7g{PA9W>SqctRk@^!Oh&N(Wjt^yOJ6e_wNQ5 ziZ0Wi0J*# z^*@f)Tvkq->;S^Ji{sdF$4$jyn%chtwu+S~F5;BW|0Fh8_eRE$Y{u1vLkW ziA*e-5CGcOkqt%`nKqGhS=E=Wsjm0qF!tFfoh7zhs?gsu)_@`wIUP+*yYOIT$7Gi+ zJM~qxQaSqx0pMK|&P+xX~%M+Omy65{qct=*_;5>6T z9VwMEyTvvt%2V$)t`wK&1M@|d$UH^(66IGsz9Z;-1JI!Q@@YEmz~L$K33q+%RbUS)dXK9O6qG`5%5D$?y!}b;q3_ z(4o`C9y-aP_T9A&999dqTxMUqLKqZJGFr+y5V-itx3zj(!iccT`ih%6*`bcOn$BMo z9yV8M2IgW7>Aco%#H-2%lgivya4; zZm{B#alPsrHH2NH@?Syz0JVLOeXQx`w$Z>={G+fztPJhxnc_7a==hNx=S!Na2K-){ zM?W$sde1COqgD*f#!*sT+%X3D~LwC6P9${ z`({md0f8%#<*^c&?JRu;^r1IJr;7(u(AbUf~cyZ9%_W6zg z8UTMg!b{L?I2xXy{q!X?BiYN0K6UpzJvrMWM$aZWX+Ze|<$S<3#lLps9zKBw#6iI} zC+G2$yQhn)q_h_HDJ<8T3CK2EX=*te_A@OiSo17l6`IqFF35u3e~Tkhcm!8^DCZhW zkAW99i(AjwVB4PZ5`(yPHB&Nmc=-co)T=0{LEKeq<$$BuL$$$H;Iu=1Bw$TNEB}!lXJ#wZVF-BO1>72#PYrtgATGZI#Ki4V=Hf zOcSIT$3&XJZ?}1c&-~)|Jlu`qtsTy!3q8k7Lo#yDcOU)oXtch8c{V83WO2x%gB z+eI;;#Di6Sg7LhgOb$Tm!O?_E+6vPo@OthX2TJ&_-rpe z?%>v)R8(}tYU0tK4Uz3jy47=oyZ6zzae9H2a|+91~bK3n0-y`s~Q^uPR@D# zSj`0CnGA?KiKpQXO!KGj2^&#APDixvs^Fr4X6m$pFCD~b^CVDlV;0r<-0Q~WKOWAE z`A)~9-Dt7hR@rC*Q2iyLdCd|X+*_Tf(ht>x>GY3D`!S3k?v4Pq=ypr=U~o*3gq;St zJ}*LqYop^oi>q-$@Q#&%_8G|U%)RY93}U5m3T+tEn|Hz>&zoZ>T4n}0dl$Q zIU*b9_IIatY$|q7fz*^!ZsrC>laos?-ZfW!<;2jkG_VH+ zh2`h;m-JL04x{5b?HdYOM{7C)D+HB7?vdSINW?Q;{0+&e-E8D2NX}{h=Rfbhjr`uckA-56j+|y_;OdhI(bkzK9&n1 z4n-is2aXS6Fta8D1_%o)dW%14ja)NBEjxip^(p#)#>H!S}<@F)G1M^Ju)7#_-4uy1pS{;M*yJkJ&R_iglDCBFZ;aIT3h!p*V-w2 z^@izA?oK_pZGi@{$+5L)8f*Y#Opmkit&W|r1o7Va;VOkf@T9RtUZpY3|TN8}OW zxLup4>J}OfZGul3bbp}_fy!&@nH%zGRrn^sQ3;h@M&Y4 zgI2auv}kgBuv-MGu@^n?9=&p|JDpV=&lBf>0wLA&xDEq_6$buUb^bU4So1@5MMg$s z)ocpi1@EYZ61gzYPijrwZ#_JnvWG*RIV=~wi)-tHQU!}s#|y;wvWmdU{AK6?L^;tD z;kaTtcPN!Rt~UXQS`N3=aQF5Zn4xB=eoY#>&a9~+_+9u2uGZ)}jB9R2fWC$?goadQ zNvjB!&sbf@olZMN{M1q*>w3pZ6v4#wiRGy)q2i1dq=GvLdXmyP`hEw;w}r3rhiP6s z8vb#`GegI%{HLyZV!3}lvw2*DJj!C>S1$$ZB^HHqr%k|B-RYzb4gC8^I z1tL;Ge|vw{QRw!BG~ZxRfr^W5%zy$zfi|~7_`)Jb@-T7_3*_^B6#4{%rx2-nanBIA z>E4IbtN^%eav|6UqU}W?-3pEIzuWIln=c+v*vn`wxLkw>O_=mbiP7Q zqHdbNC~kROLGAYPyeasb$pI@}8%WRBV$6(L_{8B~*_07>NT8o4;`xYu{4v_di7m%Y zOiZ)06z^u`Kxo0&1&|n(})PZv;J+k6eB;UJ=iZve4fd?&E zRD6Ir$+v9xZq`Z7n$CO6qYB@G(tZUj+9ez}$5-KK_Mx51wl^ixVh{8J`3X9ET77nC zRZ^0@3k){@_!praQ_X1DC-UWb@EKZ?N+7Dx`+S|Tj)$ADeRCsQQ!-(CxvNerdX&E3 z+x`S`UZty9>M8pKwLv1NWtrWZbCRMNVrS!l%+bQ|Z*`h2v;u|)$0nOe_6bvBl79Ba z>tD8sOE?rLA^TXznHswSb{kAxkKi=U&bSBI6CyUDL37*t4K4(F+|jIz4(@s#2maN^ zIYd6x{yFH)Me8XKFY!Jy_)02|QD=Qn`F8_3w{sn^rjM{5Q6jKrF>lpVyA!aR1ye+N zn5WV9;P4NWb&Y73XgBbW1ly_WS-qn||1HQUjEibi+P!ZV{*Sh|NNwUa0q|!+U)(&X zap^!$mm6#+skFUmH0`|Dy!c2rLx*yp`{)Z;n1K5_zB_roon)kH(Q23W5WdBhh*lQ# z68J#K5<^bn*}dIgyLmU7T7}fKI!lmx^NE7NpNvzlB~<7j6)EWeOZy^zH)Xsm{Xb60 zwnfS=i=B4uV=^K=twh(@kM2D;V7b4}4)=}6d)Qpe$1v;pk?W7)EbdWr!T71-aC47- zqOXE=B|4sT(18hRlcx$%uV9>gpj@rg4sqb(O2mR!V1BA>Ya0q~OPe5%reT_0NAhRS z^$o=tqeckh0U?5Jfom`!=&Q4GdRzJ_@W>#qU#SBki~Tc@Kf@M&A=Q|qZ@w4YWz>vo z#YfwFFaGTkKV`t8ur`n>UtH5S)WLRf>onO;(Ca>*7bB}9&h1NTbGp$utHUF0#9H8S z^nJ!qjO3hv#NRiopC_WAW{&!YFN7r=Em`YKrXgkf`^CWIrr-C+;v#RV)1b<^$94!? z3TF ze#b&&mCr6LnbR|u7tk*{ixGw^GR6MR%iU#l@^nVfA@CE@cssvl- z(eh4@1>c+Trga{mhrms)tgVbx8y=J{$(YC;ySwaa@XmJ!h=2p`h<#^}D{(6AK?O>a z16e~Q0F3p^ojuPb=-OcLNs{qgv^C;)BLKk{DmJBMpeaIHL7(CL8!Meat(LnPrm|Sl zLLuM3z@?j*>iY`_Q&;80Z1*xZ7x38Tpx-}1E(bVk5E>t8XKg;Et1w@*73gS3S>}Zk zO*OX*-jl#@8Kl0qAbkT(dTkd3(`)cmOwJyVvnE`{8oNCSWMM&LuO<(<>R+&Pgqk$6 zX6V>5chDa^$K>w&0L$DXysKi;+DCG^=j=m``~tu9>3JL~lr}aORdvhAVPa%h{AW|# zsL><{k=6=!H){}-Mp}}7BwW*lHLP#4iQsEu0ba&#aX0iH%3fahf_*&0_$4SvL2C$X zJaOv0v5VowbrIf$>HnEo&@JN9&@I*h^@^VEt(O~~jU@xyl8?m1To2AGrMB%o%<|Lj zbpN{#tWEeg26uhT!^r1Pp)ubNl(b?nvbCZ|)n|xpu!0~0vcXi`Z=)>EB{?Pse?%4= zlyq3inGk1^exv3-adUcQH_`L*S^By1uN&MaqOG&EW~CIq*N3O~jRZgT0Ph>bAR=-% z($wF(d~Z_`1i0n=ZKyuGuM$RHuu}VPAo>tXhoNI@FqJlo#mPlIzoiPI&dPqbkt>q* z=5j=j4yG=kCPigRKSRdG+$4-kD^4z^Q6OPd3Ego1(U+G)sTM%esY^0HP#Vq&E&`b z;#}M?@}@e!(;OHm007kg#z;n17XLp_tX7k?-DH62{#1v+gW41}a_W-m(@X0ThY_8|0^6?+=s zS=N+$v8r6|%P{3mmlR%PV2qN&X8TJBJ3X-iLE1Aqj%CLe#*or5I}`6b^p+O>ee$x8bh6hl%zE?rZ@ua)Z#GrEgr_}V!ESjS0IZ`|Iah-pe!zQsnH?`7>%{B z#^^P^@xmSbuU*qS5S@s&AorMSkpPIo1a4tX+4=zN@n-02;l|htU@IxM`5Z?hAeR(VN-a+;4!W?ctBnayk}0f0I%`wT=>TardA> zwueu}JJ4@H}1?ef3;9?Yy7NPHu>UOzuTw~Zd^72`6_kE)mFwI65C94qxI z;3Ko?qEG{A;<-tt0v2FG$$JY_gJQ6?*wfVMz=+~!En#yUdvq*~)?#brF0|TCZ*E8o z-?&cc*jSM+9D+57aP~GApkUWbkp;>58n5J6f5`h$;_+b8o?8Vsc^i~{RB$ZlKY3a_ zDLp8iCT2fAEz-Qj^mz#iHIs*``VgNZFNwg<@%i^Wxhij#IBu*fWjV|g@3uano8vWG zlRgAYIN87#;Zi%)u~adjw^RTIFJ_AZZ@Z-CVnXdwp(NJwmpDsJa4yj;Q6T%gTLpYB zsk(-GUeiR>@$ai!>ay5aG8xf|a(Qc4)_H}LdMChI8rDTKDB3&&0Cfdc%Hp|NO`YZD zhMUzaE(1RH^4N3r79(n*S~eZ~pJHl@riS4l#1`FgD$R`=3xZcL&li~#HCR)|w}Kj! z`P1HJM5UuWnVXY=6$HQC45b#g^zapPi7Pd~Um5bGM=JwUt)0h{+MEQVX}}Uw8Whsv z123RQ)L(98*nDEY021{6#A`~ht$y<`qqRlU*%RYgr-;)y5DIMTE)XZ3v8a3;-?_-- zCLWadtaUu&&K+PHPAt&aWB-uAKt2hvoQrlgCGBLKE*?)k@3`U}1l|)Ngm6pyS4L_B z2!Y%4nJu!QwLuUjsg)j!9k9V+Uh7RF3rm9&7b z11~&>9GaVg?Bb*^4}k&g9MQ;=tW%pf&8>_cF&*3B`s!c0?6Y9Tf{`E?H^g92&(fAh z9mC_(7TRQoxV{8qMQi8r&#Stfb=TorIwp|v^+>egwJX-L;KT<)$pwJ=9Yp@pcJO7= z0}DpeT=jvzOC3@$rH~uD~R>_vRqxb1r0+%52=i zIwi!={7jH?o0^y|3!E*9n{pOwq!G4y^^Z=_gOfX9R@=r0@rQTY%g>$(QJNov(b_qv zR1Hu*WR8_-9X6>ObeS_{O0{52o;&+lV~n7x*@jP2+PMDNZ8=$bk-Z1}h3dGVpmxgMmO{I=IeDv(pVZ2q3W=4^-H(|%Ik=%Q}G!Q<5ck}i>FPd?~wjgLF8Uk_e zpbqlA-!AuG!;PuyR(v|VfAFJimYK*j-U0sN9XMOtG+;O~gBg^`ggE^8!I@`suFHQt*w}Gp^Euz>;;2xwHzWrr&m(LIfgR@4kjv_e88EmB zOyn(rjU;uNpDSz!FvoK7zAP0hH%^DW7HRaV1 zvEr|Y$mNu9P4jHp;((GNq^?Vohipz>UP`KP$btAOyv? zbfm^IX_+&17rFqbg_|)6(Dfs=FN57r%}~~Ff$6O6WI_UVKU&MmRgV}@QP!>m)L|G> zMQpl#tt}NOlSpor`1F@2B)Q?T$EY?fUTL^Q#sDBRuaeZh8&SG_sb*HI!Tz(3X61OZ z;3Hw*2aWracz6XpnjTpl-{&25p$jT&by7qU-9cYMcZv1Ew4L!cNn-d>ZsoF|U=gup z85In8G8bHFv|G%sC;}LZav3~)z}$Y95^$}9%?Sg9i6@OGN#8J7M0O2Iws~2vrHj{q z#}Q0eGM{KVi>NY#S{DkOxiptP+hP*?O(muMYOs}oz6VI2psT9cy=Lu?9^&RmH`mz|^l;+9PnhF5=_ zDO-8r4Y3e>rW%J@y)x$8OVbna_2+maQZ#f9zVSMx`khQ}!CwrIiO_nm6D4yhyoi3O zN6jfjeZ?okes7Qn6&?UD%?#1@!yH%GY*?4f4FJgYQusnXbIoOiPC#XLB3QGqijw85 zSWz5$I)$0b4wb3XLt+lfeDoe(ZRF=$6kCqFLm+dOD8%W$h1W8~~78vSQTaUBu_ zjAS&cV6)_1Xr+u)1{~}+I<82H(zuU-&7N(?*~x5Be3CUzQm3~lx9I9i*(kfE)dX6j zx)8N8%RtjwjUD=v8wIi<40W92@UJ^-Rs8cl@n>;hlU9LhRH{7hcwqo)3bOo@E*e<@ zDs(Lq$b%FhX>et(caF=lP8U_#orFK;LSZO2PZOEUo8&h*Oi0H-uQZyf6a~y-1Q`dvKJT`_S^A1h4WS^e!~gu!37no$gk7I+@bEc zx}bwP;JR%@=NpwqbY90^xJ_U4rPDiDUicS(;4l6hlCa6DWg2-9=rszTRFR2s;y=4> z@|8Kp;yob=1MmjzhI;)i#)bAMg_HDI8S-msOe-`6!DSfbjcjBEm*etQ6C2;;3x1A2 z6^drOn5h3VQxTmr*EWN%l1IYEg4-mfwD`%Zdi}*CSlBUC#s|8fkpu~$h-|@yPX$Fxcg3g3Yi-UD|_erbuV7e?10)$ z`64-ZU#sG&B7sOLPymvY2|K4tbwkAS5>;K}>IqJD26Mi@{rNc)(!2B)P3BN3S4Pxj z7%;J>7x&uY{(=E`^SI7Qg>dJqxFW6+G^kl1nQ=%A2&&}DeY$*x5W5kFxYb%Wf|iZ| z)A>fBi>trq;HQ?F={bbur+RVLe}ENRAO{wAYV3Cq4{m@R#IE!KEz?z=t1LXx_~27k zNEk)_+;i#*@Gan_OuS}C95ChoC>*(csilY?$8DTGn>U71xsoMPZkwF;Vf5qXQRCFR zr?I-T1GUalv2lcF<1#YyI>C(8&2dShQkkzC?Busm0QJf8Cr`dRHI?(cou)7RRlA$K zcdz}7lN&4bC9Ho!P{(b`e_yXS3;AVys6pQ#PKrm4=%v(#Rqb9a5RWNxKY4)XNT zt9J)gr-xjk@!!AbNT3PjgJ*$^$}jF$pg@$z*IgJGDt`s5w&~~m_r>Y29=%_`s0Y%& zay5Q0Ae0-rJZt?LyIXHnZB$>I`vf`Dwk+r5^3mhTkcl=C zK$4&z+U_3j>_Z#Afd8|d0B!WXar?C$g#ES@|4%9OAMJ#lp^@cpFOjXLZM(^a;0jK%QnwM$*#NhWzjb`*%?wL1W7c_lQHnQ5Wm; zBApHuX)^tu4|7hV{~9U{NdNHjYv?J+={d8=txL7NcZ;e|Hono8Z>Zj{G zHV&v@Tmwup%R9MD`=9Xm3k!dx5?PpC=%!|@`mzXG<#{H7yWioRwkazD=+_!?YVu63 z0_hc&^yQGE87$xck_hM~yEYme5{I@ccgV-vZv@Qu!$ahzxM(q~R1rfGGzqA%QoayX z2#oifgtW2CQeUjD0{j$*W4E{Qy$~d-`6L1Eph`ceGmbr0JBwcyZpMfVLMd*Uhf2g|l@m%A0p}?yyye*e2^&tg2W z;9r_{EaQSeF9X28p?kAhHpn&AVxP~gM+0U8WCak4VN>Lklx31Ggjd!9BU&?68Tk4^ zGjrz+kF^x5Q9J%}=^;~8chKRyy#_!Q0m}6CT+AtfwuIAwY_;v(@&8s0 zmCGViMDZ?pMl=U-Q=uzZVeWr~qq9+C^P`)OXaB;S`0I(_B~?uzurmX?8g4UXuptT> z&4tKZ>D!#YE3h+EU}LoRJFVHW=0$s5vGWW$16QxMs#zgN(;6CBMsNkTp+j(!x7BRs z1Xj@avw*+&St*3|_|Rb*e3WR{2hGxcC{W1P9TQ$5z=|?%d_dgedTS8j(8gl*Ymqet zVJy_GP&wKN!3?~XVizFiDB7nN`$6}YhLFC2v%LE z+0)cqevHTPuM+dxk4i+6n~FX@;qEWi7w)>M$?p%&TZT(4K6U>wkwXUi7wlD~J=$+N z*fJl}a1YSbPwvP3wE{;YtwND#dN|km_*csLJn$A87MkH~;~i=rIqC%X-CzRY!-N%Y zLonR33rc$m^@8I?t#(<<;K{{}2$>8iy#YZv+b*V%xD+m)7H`F^0XkoM*(C-(vwrci z_r!1j1apHr zj*HlzyOPS4svHq|c*Rn*{0dx>$H zmkq7J;REk=18wB6I^TwGr439ZlhoahZ%wvgM-)Zh+8T46qq{!SFl6 z9gev0b1A+k;aa?$S}>>0tZ7)YfY zkD+{K;F~abw46eMpt-evEAnL@^elb<5rI&h6BAm38k)%+WegOOI21{F81rn>CJ=IF zn7eRnNY=PO=){!KNL6Aw_*DES>0yZ2y1(H@Knk&a78hZCfC_5D8}K1OL$L_l+ZQW| z4}U>kv<9^&igG3yO_<$UV|kbEP;y78@G#5|>q$>%6^3?}c@WH68(+7^ShXg)zn}Qh zHIBJjSt^iJ{FGZ`!qGirP4^L&-7xs_Y}~G@CJS93RgN}uy1GoyxotzgF^*H2TlN&1 zjchT`!B95qF+8JwEZb<5CS+V@Vk08B%{2kFyvJ^(MkWb?E!Y#ULO7p>X;HEd>D`wT zutI#(oWCruzn)1Ce*Tx(RLy36x)~Y(K#A@@1*iY1Gqg4|vUPORx3c(SYGGyady!mg zdD?EZA^zk3Kp8@#aG}rS9c7CO^ycfczaA3E!nt7SW`lj92!Ciu5fMDt*wOji=4K`# zy=b=gnr;^8^o!QD$mw;rldxb)2f0;i_>&&7T5b?O!J6tmoZyUSQSMNJddMlyo@{VW zcA6fgK{c3=nrT4lMl%5=In+((UZmMv-ZYjrg{*3d0}9fA-a#W;vk0rq`4z~0l^||g z>jM?ADuyIYat3CC8LQ%aTcnba+VRI#sW#5&`HB{J$Fas=ujqb21Mfa7*dVK_X{vU$ zL8~5tG$q;8vy&!COJz@Js>oC%r-TShc6Cp(XGTboE&yLzH7sHK!3oxdq`GrVgiPg< zB>vUP-TmR=z^T9HYIZR)l{}ROnWr{DX$y#efNv{LO?8CgI~d4@XE0_yI86S1(^?+hBncu0 zRN<2S6xx;0Y6B3x%asl26Pzcy4KiBY9ZXH5R2oly{Ig z=vQ`@P;eb(MXTz)m)X5nY=g)hQ*uET=o>JG{@3}zGd_;zZ+3{AgFQG7Nc0pSyWlYs zyb$6&tA=pflHI3dpK$XEO=A1hoUU>v8_b!qTA7mLScQ^tR~H~gZoMM|VZM+o;ry6c zI%@eC!DrNxN_l1krt+;x%M8w5vvG(;I<-VVa+nQ+rVOZXIl!vFJ+)ehhzV$WiL63l z$7zsd`UpZ=fH?b?R-VQbPl8HWMFJrSfm2;jsh<$#9A-pcyn+fA$O{%f~L4nU^0jM1+NzyAyF6vp>Vg ziH`E~CQCvOjuGg{;u2t=k%+DtNniszk;zg{ACgN60I`wrAiFlkVnqh_JIXAw5u|gL zj+%Fd96$z1BUm~=1#4mMKXz;oK*B~B^6Hx^`xrj~5Lt51gFdE>Z3Oj2CRu|VZC%+y zJrPB)Yd&1}Ppoe0fhC*az{~gO4tBdwk35AOtSpJy3__L1G5pC%B;TJAVB@`tKpMjj z3BdDERlU(w#%q(I@keJAIE*DZQ3 zjjWkhPGM!1v8cN0!pB!`#*Jd%yogz*t0t%j*;*79!a8y7Q%)fYPd9?&W7+h3DlEv) z4~dufM7D};zgaj&z1TPbl0#)YtGu})p6@3JV8E10U(Pllu!My6954)WL}@ehZ>PK6 z!il{a{9}i_>;EzLyI(N_imKA)IvGkh#q$!NOVuCG1{O!Sh&GWPh*`( zCIz_|N5<}lpM~c`YMjLHT3h^6U|~iAm^lJF2whNdQQ+|9y;1^2Ygvgg`ep@%<9zu; z=*3FJqkNg=AvyxxXgSnAQv0=O6`n5O2zVTIEq7A2_f0xzi8h88IY|uNyOdBm$TLkK zc)pCgd~t}G9_#tC-rreYwdlIR+Xu7!ub*v?R&CI_kIsqMy3YvT5?HOz*9<$4b=f%} z@O#ubAfNCVa2jCUN0mP>_}TuuuffNjpP)zlDKO*Kw*p^be-nAwgzWJLfPp2N$HbTT zoFP$Tr+!=1>#@Ch)$id3Z%Y2mzmZOLrIeRA7jAbrwsxn7)6?_$ILnvM-Sy*wG3s^) zc(nzJC79jW3;`encqCw9_f`Yw&p(U%)M5SmCyk@{0c8b=V4V;`Jg413v-))!KJN=# z&jakhtHF2Og*il*)iLl=*?5QO(n%xa^r__($L{)}0<|dd1>vshD(og7?VaXWMSQ$* zK~ZM4qRWnAn@@x6L}4oph8@R+Ps{@avd*noJXHVhVv9S=#j;^rovRksE{FgpN>LMe zX}en?*e&THfYbDg77kc;L+KOiTw z-r==Rrg*U}disxJqgTT=OSJN!7W!gh*GZDKO8+>lMQlTdO;Uyw1MUZR@l6_yKT^M1 zRiBs}aS!~bYICHACQXkqvZ_?QC9Cd!yLnPzF@87;Z&PTQnw z%qPpQx`D~Gal27|7@4)4Y@~mxkpZ5@!jN{_Qv)amU86pSl$y7+Au+3~N~raEVx<(4 zh?%p*@d#Fz?Hc%aH?f`mKE8?+I2)|Xw)lSE<(wqLX;te956s{4I7NUTMTM!rpnx94 zZ8FcfT6^~7spZMfeKkB`4FMRjqv{h;XaQOiktkr3c@dQ&5&F}v` zr?v<_^$NG4eN?j06HxQ9)*6etEpJk6U%EX2-Ry2YPi7Z>PkXQV(FEwB$nWSUSX$hN zCay~TwzdL~BpN}ao$~a(aBRA!`6?6u+x+@9MGYBGH-%@#MgdH8JJk0OBD$b=Am)Ts ziq_=^6#E5O3!u5 z9_XBx%j-~nL9K1igmlUh=b2mQX(L_}b!zRd4?PHGER-O@Y#IqbY$4MevD+gsGQ|Az zuUewee5DkvcK3W$Zl{r@eParbM>%7_**x|Xi)UwIKAKjqUjXJX8TcpiVXuXSx@lnu zuJuOQ(?`bYBp92s|Kl!(Vb$G7sbT>Az&fg_g1ET+KSZBBS;2oc>vQSA++ggtzHgUm zh54O!irgu({4XRlXOx|0;`tTvgt+{CO|-{)ULh&dE)M=ND`)%Cx_h2M2zmX&N%`e_ z-IOWP>A4x!mmEE~QKRrlV5udfE7p_eIT!We{VrI4;hr(hB6Xk8K;vV87dMV=`;S0v zdhlUJTM85CfrFm-@Sr!&KP8;h)AZQtOL@!e#B8ZY&{<4+T)KVc03zpj-Hz$ze>nVO z*R2Li-roTctvf^{{ES7OaOb_S3Ir=w_)dLh*c@Ld-_ZXjEDCg#9p(6SrxpK_qW=er ztWBH@jSZa)f8Y4g8rHwC2;q0|EJy)O!rIVMWvSRU*rMkRC6eUn;h&?+l147kFrS`Kn;n~;1rS_KO8f^T=MOCU~NKH*fbY3X}mU1ty zRay|tSu2$yEL71+#Anmxq(5Xrn+#R4Q*F`HVe~oUjFos#L`kUmdtpVSX_}7f-{ZwY z=fgu*mj7@8Qf3T0O*DiT3CKU!kAs8D7`0ZX;T}r7?y-ea+a+S2Adn>;$N3E-%kQfw zlD9c8X843F(HBgNi2{m>b)>AX#$&ryrAUXj&J(H9o6V4BuFOmTf$N0xYAe~XI2+KL zunUdh)GSG5a48<%0c{6+A3;3d=c7k*`P>9jRZ9iRIwRS^&;2y)>gJ87Iz>D8}~+jGl*VH!!FTXN7bXr#*P5 zM!pNRGX)1ElLQgLsq^}YKMpbpJd`_-J0(zc{TD2C3D2tb=5*Zx$+<+VYDe@l85ufU z%#EoSFp642!%F3L;R5NzystUV za5JL%^t?U>3kSksPrblBPOyLkvH}ufgC2jX4K}Dj5*n`rHN%(HmTOIf*PxtKoUW zWaK%_(D{0)5V^<#`A+x>(VW59Q!f@j1wVUzE;w$9TsY$Oew=G|1zVas(~pg4@1t6u zYKirUm~W)la4&>@Tlgk7Kq}@&zNNjE1)z=zD=>8ae+-}J&z1W1;C1Rg_IzWh!<2fC z!p;VDyBsjh9@r9CAc$dT3C^(98tq`9WQ#?wjGu!sPDP-0r(uU-I@Q5{5cC$~u)%CR z{#Md*cH?d+?_RdHh+D3}{M5W6ws8<3p&1~;Id%c-%+Xr809+mO+y_d82yR!_c`{Tk z^c94HBzge8ttAR@Vauh|g$M7Q_?c+rnKzo0Ik_^z`NmE`YJcVe(ij*5o-?x%g_5dD?r;`hC_X#zxTXa_@cbq=p9=&03EjBG z0z|FSgk7cL4Q@((e2GLD%a`_r#Lt-B${RRPk&_i0@a zv0{xegkrW3b_eFkN9jT?!c32k%+?bo!b6Xh_sHl|$Kq!m3Eqr`1)ZLM=del;r}`lEw}mue>z%*XG&bW$H5c#}OFT6B`9uw^QgF9ZJZ>*Mel4!-@Ee z(7=FKmvXT9Ud){f2VbhrfG0slpN)k`=fh=K z&0*Hmr#u-gfZKq4R|w;<=7It1cB+{5dhbON1o?;%`st~HW#Doe&wE2Ws2G}%$^PGTLh9S!&(t4HJm%pSCsb(Wr{V3U$;dn)c zPTBdXP|^UZ70CX8O?*at!?J`9!o~6%VwH`Epy|i9m9Jc%kqAGc9tTpO9h@3w_=e>; zE-K)cg{TXeb^|y3sCG*E_(+$u36_T+F7iW=N*58j5?d4x=bEq25+oa8#C>SrXT!hc zNXEG)I1P;WR$0ZzEbqC-fqXvOi2zNPxnUuaz22!dP^8Q1obcK;+|VYO`9aJ{O+{g> z6i`a@85O7lC@*oj4zI{cS#M>u@J^Dsh&xs8@1QsJ%*tr~hg5yl9v5j-`JYat4wH}5 z>6UZ!0-72Z+I?+Tj!jNq$j9ZpJRPQo3L4u?DNyRWUG!E_cYTCzx4lxMgT&ImG)+1& zvl`?^vG846D+!0@IuJ8>M+xfIGRLH%=_$>t?VS{tHiottq!X`)v!wI^S!(`OqDNW1kor{@GHLe_HXQ}4CKF2JVLl2`pa^RJXzP$uBx`igoCK>$in zq*mt0|8yEq9GmmF8K~b;6p=;`E zyRu-5cM8KHL?a78s5PT*Co6U1uK{73N#RlT+lwCn$Gm0p#Y>tu6_!{gEW+O7xZjLw z8yuw+Bkc9T#VRZk5{Vw!fk=(y`X?Gqyd~06!2P`kX~H7M@YpEp%0t3|V>>ek*-M`3 zC*;aHmJN|r?^X{8Km!>g}=Ib zu4gjW9cz4tKsz=|k|uTp3V{D^)C4Eo>=1SQ|YO>n!blcoFPk<-=rcKXgfHG=z@ zBry1b5BH*ex874T*jV_lHnD{Ns_48=lFA};N3vt%E4S!-(}J$rW6Yyryqg%hBhTWi+NA*&-?!Q zoxw=6@y0^=7$#H#NZ&9NA?y(Z%nk2@G{a#*+UC?g6;a$@&CVaK#X}AxK@OWIgl)0waR$pSYrAB)qz35y?}J22yI;f2NKC^68LNGDe=QD z^Iou1$;J2hqT&$%_$-HDE!QARuzfB=c-}5jj!aBAkeA{*JOi@?pSayU?2o8NHxz`K zvZC+FOUWL^x@)2t-ymP`%u<#x?d^RiMUc z4JZsF5J6IcO(%HJm(lz0sj;j;uxbeCBP}Pp6acQc?`(5O7*e}@TyY%0dMep+xn!xS z#A;YdT2^ZtD(C*f7=PpWs(N{d6vj0Xa#(X-g#l?ET)%ar;CWXNc74}=R2F#-UIElc zlLF5p$n-SNkNuY32s5Ew>cx!JW}k{1(`~ybH_6j=2xn zqnGr11~&4mE)yhZ3P_2iK0O`tMAmlK(dzICloT}s$4Y%+U~ougl+%FwQQUz2tsvFb z^!ipW{;IL3#Yc2Dagc!wKu(IsXROtK+1J$3g3L6YbLnm33C_r=r%(E=c~)_It-27e z^7vB0ukLrK>|J0z4z5y6m0Js=j$%@Tepm{VCPg@J#dSxqF-jhKjKp_Nq)OzV(q2=0YL15C zK+JJ)e8s&}TS`2777OrvSJgly<+|^D859x?797D65XgXQlVbFhw&j@s?oU{IhhD;s z1tj|jd$va)aYwmfq4OR*-LXu_%*&}8jozKa_*JyPXkwQPc2Vo(3-)!?c?5kU%IxI{ zPS0P~+b1?#8XsP6j+{-6+M`2AT!>&l>l7$zSw^`-VeWMrcYl7~z7gha{E`hIioNQ~ z;u&vc0FABWW7Y2YAu0X)%x|5HcWZdt*M?BN7csq^n|=0Tr91h*9086>)gO4^9IERK zZw?KPbg@>xbwCQZzL@#k^_n*CH#`8a&b1xYj;8w;7aPuf$X~-DtRU0l#$l%c zhL2hiN)x<=X1V;pnEq0wvunyr=%G+(;<7AXw~5-PuX8PIK()&*bU(!Bw!%N^0|(AB zXk7pW(=6M6i{29!y$)TR=Tk3lvepZnnk|xd%5Mta8%Fen_9qR`zirnUmnc8(hu+}I zV?lRGyEeE5&lpYvaB5W;^C-0dvQ{$soF?*n{V?Lys@N4siL{SN(ljul7xAJ{uQo4lK?#y*vRpgy2uNcwoTwfngZS>SiU> zPP8)7#VT%Nd6<%G9B8Z1Or?R@R;YmIl^_AEnfI4X&#^r`Z25>Bs0$Fh`eJU=(bm*B z+}EO{@;)xi9kE-{^$Z%u2yRuMH2ft1+H$Onna*2h8>{1o@5VU!kXkz~vZxUf-pz3L zgcw-RF-Q+m!-aetx(AW-K4)X_Q7D#6l(|7d5X4Vr1}*6wBia0AlWk+6QvStEpc$P5 z6bngH)@Oz%43wr)O7Vuuni#zn4y6z|jDrQrS{uUfrWC4tUk2$%PyW0 ze+1lKpJT`=5A=SqbYnBqC`q<#CL8m3gCTCT7`gKskA1v!^v{OJauM@P4yO ztBKbeGMZhP@HT&8Ma&phlx#J~ z;;ZpwV%`hwSju=y`OC)zF_$jq`{C&Mz)8#p{aCX;;pGHVL3S(SI^>Z?ifLcHyB{68 zxaco(p1HhYxlAK!Y%2Mya?V)NtU!DlRZu5=8lw7LtLR8%h*dkY&g@t*U}nwi40$5) zgA&@P<*<7PF(>ml7#~7AQ58XhNMT(R4Rw5RQP~5jxs^6a2^90bv8!e(cwG;n~aK9Y*dQEnmUEo92bD!cQR9weC zcS0Qz14;57$y|Xc@jkK!J)rOMlz$wH!+hwQ5Xx`bx&^3B6{Ez_1Mr@1A^l$G3M#p{ z>+L`02CEmCle!fJ2r@k#NYY3MHmShLM}2)>-Jw!|OE-J_pC@+)OK8;>!Ui^o!8$ff z5T|{d4lfmVJV4tMwz8K#ovK>iW%>cgTIoV0)8@VG$rlr=O{;o2r_QwS**kOdkQ zpMzWd{*;8xm|H67d{ppbQK#F7s$l)4XDi6B3;I18ov^psr%| zG1!(yc^taYrnkg{2wg0py{n_F2g8y^000%cV|~5_s%Ga!Sdl2r8un^bNf62s!*1pL z1;K(vh!+f-!9@k|6N$S;ZILq*dQ{^oT+G$vXN|kmzA(iCj1VmC7TYh{SLx*8G9Rh| z)P9Y-X^^q;?;rnuw^Y4HQ}2Wx60!f$v1jp*RwteL-3(!bg-`#D;s7CT$yV(18s`SIMx6nAqOe0lL z$C=3&)jja`hQ~w4Uic4$sz7919N?#9mGF@y%6?ga%X*y;exq5;ptOTby5`!*pr)^s=e@|kfrY-V6Fq! zi|LnRX0QI%rg+yh{p;0T4YhmV9BchwSGCqz#ZXSI*ojXfeBWdA;%miI*LF`|7_2Uc zdptE(L1Aqm&o`nKzQB41_Lf&^gnrQowcFtOXwE~B-foZvOWj72&hfw=9N`%q8v4;s zcWyv!!*@+JymH8_ivCJ3Xu065EVgm`Nd}kk0B`-vf(Itm z;uj#F*eib z6Q>X(`UaaI+wpoj>|ftG79yLV0x#4~m!f9Cn3gBmarAFXZ|oMd5ohKW{1tOg)h650 zx%4&92BPx?7Nev6qQ$q$LZ#AiOIGleHjI#FkLsLTIfj5n59Br=hf#vMo?$@xVrg({ zP5-M~7XZELzN@$0)h)TIRhb?5mjz8tv%-4_E+Ts4d&H2sg#a+_5H-JqEMbKr282$; zp%`QrBZ;#Yk38Qxw7-I#tfF4UBTom`riY!yi(RjOR#x0>r#+YsE4>#s0z__ELhVx^mjZR%5O?7kXJ?@PJM`m|SH z09{v%z@&sW69y{bADh;-ID!m$ z<=zkxHr{Y-%Y5$zBLcXzmyJ|%f%|rlp`#1RtdT||`IIGX&s2E+&o(o~I$xKNxi?+1 zIppa}6a9q?cN8zUddTm{=6U?jmLBHy;GF#Lh5I~4?>ptyNq6~+*tfM$Z;v_R>%{x*GrO^wI9d0!;Tc{qA@pZ~XKNvYOF*@tWUw*-FKy!zd` z)K>;Ct3_7M4Sp-7^I_{&1*N+W--+*iRXzQGXC(LP(yRr4Tib8VSlDoQZBK6eFYZGh zA6?cm4M+)V7S>(d9zFPjV=1hg#r{)TnempQsk@_d`L_vuUJPi(b!-di6~TPHI8?Xu(3a)0jw?j<_-@99Ie z^?jND`CH>!H)|a3@cuHjdCnrfCz>g5W#&IG`|^MFq&9VFw*KIXBbynUCo4wyAKG2+ zYH(~vn&$RdeC|6xK0J4;&@Ar5EXJ>9GtVvmaC=wAoF5I%Y+IZwZcn?O*!<03_t3>{ zR!zRocBS9?(9O2+%Z1JhJwD5ST#ml)f6z3?eOkRLfB#3>CnuXT3->RXzqx*by88EO z&mDy>_7i{oFNxgn@W1Z54+3p%$?m7uKA8CjIJ?crB*F|j8KDuG(r*tC>TdalCFvywR=tiNR?~5>M3vf*^ z4u67A`$abi{XkxXNxu3xO+r7O7u`_wb9E7h-o|Yx$|<|(CZ?jDuZu8I)d1>DFrm-| zW&+v)A?QY+A7g+pg24mX2*jZV=q8}=Ttb-O56r&cM5m9mj|p8n`i=sG_HPl$+Tr^P z&<#Le_Kq-MQWVSpj79M1hM=#gK^Rh#1~&w;z6M=8`b;T8`(xmd){rnjnKwl@0DYJT zVL*BX+yMBX54vvjQ3Zr program","S'",1,None,None,None), + ('program -> class_list','program',1,'p_program','parser.py',49), + ('class_list -> class_list class SEMIC','class_list',3,'p_class_list','parser.py',55), + ('class_list -> class SEMIC','class_list',2,'p_class_list','parser.py',56), + ('class -> CLASS TYPE LBRACE feature_opt RBRACE','class',5,'p_def_class','parser.py',62), + ('class -> CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE','class',7,'p_def_class_inherits','parser.py',69), + ('feature_list -> feature_list feature SEMIC','feature_list',3,'p_feature_list','parser.py',76), + ('feature_list -> feature SEMIC','feature_list',2,'p_feature_list','parser.py',77), + ('feature_opt -> feature_list','feature_opt',1,'p_feature_opt','parser.py',83), + ('feature_opt -> empty','feature_opt',1,'p_feature_opt','parser.py',84), + ('feature -> ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE','feature',9,'p_feature_f_class_method','parser.py',90), + ('feature -> ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE','feature',8,'p_feature_class_method','parser.py',97), + ('feature -> attr_init','feature',1,'p_feature_attr','parser.py',104), + ('attr_init -> ID COLON TYPE ASSIGN expr','attr_init',5,'p_attr_init','parser.py',110), + ('attr_init -> attr_def','attr_init',1,'p_attr_init','parser.py',111), + ('attr_def -> ID COLON TYPE','attr_def',3,'p_attr_def','parser.py',118), + ('action_list -> action_list action','action_list',2,'p_action_list','parser.py',125), + ('action_list -> action','action_list',1,'p_action_list','parser.py',126), + ('action -> ID COLON TYPE ARROW expr SEMIC','action',6,'p_action','parser.py',132), + ('let_var -> let_init','let_var',1,'p_let_var','parser.py',139), + ('let_var -> let_var COMMA let_init','let_var',3,'p_let_var','parser.py',140), + ('let_init -> ID COLON TYPE ASSIGN expr','let_init',5,'p_let_init','parser.py',146), + ('let_init -> let_def','let_init',1,'p_let_init','parser.py',147), + ('let_def -> ID COLON TYPE','let_def',3,'p_let_def','parser.py',154), + ('formal_param_list -> formal_param_list COMMA formal_param','formal_param_list',3,'p_formal_param_list','parser.py',161), + ('formal_param_list -> formal_param','formal_param_list',1,'p_formal_param_list','parser.py',162), + ('formal_param -> ID COLON TYPE','formal_param',3,'p_formal_param','parser.py',168), + ('args_list -> args_list COMMA expr','args_list',3,'p_args_list','parser.py',175), + ('args_list -> expr','args_list',1,'p_args_list','parser.py',176), + ('args_list_opt -> args_list','args_list_opt',1,'p_args_list_opt','parser.py',182), + ('args_list_opt -> empty','args_list_opt',1,'p_args_list_opt','parser.py',183), + ('expr -> expr DOT ID LPAREN args_list_opt RPAREN','expr',6,'p_expr_dynamic_call','parser.py',189), + ('expr -> expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN','expr',8,'p_expr_static_call','parser.py',196), + ('expr -> ID LPAREN args_list_opt RPAREN','expr',4,'p_expr_self_call','parser.py',203), + ('expr -> ID ASSIGN expr','expr',3,'p_expr_assign','parser.py',210), + ('expr -> IF expr THEN expr ELSE expr FI','expr',7,'p_expr_if','parser.py',217), + ('expr -> WHILE expr LOOP expr POOL','expr',5,'p_expr_while','parser.py',224), + ('block_list -> block_list expr SEMIC','block_list',3,'p_block_list','parser.py',231), + ('block_list -> expr SEMIC','block_list',2,'p_block_list','parser.py',232), + ('expr -> LBRACE block_list RBRACE','expr',3,'p_expr_block','parser.py',238), + ('expr -> let_expr','expr',1,'p_expr_simple_let','parser.py',245), + ('let_expr -> LET let_var IN expr','let_expr',4,'p_expr_let','parser.py',251), + ('expr -> CASE expr OF action_list ESAC','expr',5,'p_expr_case','parser.py',258), + ('expr -> NEW TYPE','expr',2,'p_expr_new','parser.py',265), + ('expr -> ISVOID expr','expr',2,'p_expr_isvoid','parser.py',272), + ('expr -> ID','expr',1,'p_expr_id','parser.py',279), + ('expr -> INTEGER','expr',1,'p_expr_int','parser.py',286), + ('expr -> STRING','expr',1,'p_expr_str','parser.py',293), + ('expr -> TRUE','expr',1,'p_expr_bool','parser.py',300), + ('expr -> FALSE','expr',1,'p_expr_bool','parser.py',301), + ('expr -> expr PLUS expr','expr',3,'p_expr_binary_op','parser.py',308), + ('expr -> expr MINUS expr','expr',3,'p_expr_binary_op','parser.py',309), + ('expr -> expr MULTIPLY expr','expr',3,'p_expr_binary_op','parser.py',310), + ('expr -> expr DIVIDE expr','expr',3,'p_expr_binary_op','parser.py',311), + ('expr -> expr LESS expr','expr',3,'p_expr_binary_op','parser.py',312), + ('expr -> expr LESSEQ expr','expr',3,'p_expr_binary_op','parser.py',313), + ('expr -> expr EQUAL expr','expr',3,'p_expr_binary_op','parser.py',314), + ('expr -> NOX expr','expr',2,'p_expr_unary_op','parser.py',340), + ('expr -> NOT expr','expr',2,'p_expr_unary_op','parser.py',341), + ('expr -> LPAREN expr RPAREN','expr',3,'p_expr_parenthesis','parser.py',352), + ('empty -> ','empty',0,'p_empty','parser.py',358), +] From e8a4ccc7b573d4db626f8c6cb3251562f80858e9 Mon Sep 17 00:00:00 2001 From: sheycc <78368915+sheycc@users.noreply.github.com> Date: Mon, 1 Nov 2021 09:35:08 -0400 Subject: [PATCH 2/4] Initial conflicts (#3) * Set up egg-shell * Add some basic nodes * Add LetDef and FormalParam nodes * Add new module for expression nodes, add dispatch nodes * Add more expression nodes * Add constant nodes and more * Add module for operation nodes, add atomic nodes for arithmetic and logical binary operations * Add some arithmetic and logical operation nodes * Improve node's structure for binary and unary operations * Set up ply for lexer, add lexer egg-shell * Add some basic tokens for the tokens list * Add reserved words dictionary, setup required property tokens list * Add regular expression rules for simple tokens * Add some regular expression rules with action code * Make some changes, separate builtin types from reserved keywords * Add some ignore and track line numbers rules * Add string exclusive state and starts the string recognition * Add comment exclusive state and start multiple comment recognition * Add error token class and t_error rule * Add comment and string errors * Add row and col in nodes for handling errors * Specify some regular expression rules * Make some changes to the project structure * Add initial structure for parser development * Add precedence rules * Add some basic grammar rules functions * Add more grammar rules declaration * Add more grammar rules for dispatch methods * Add more grammar rules for assignment and control flow * Add more grammar rules for expression nodes, block let and case nodes * Add more grammar rules for expression nodes, new isvoid and id nodes * Add more grammar rules for expression nodes, constant nodes like integer string and boolean nodes * Add more grammar rules for expression nodes, binary and unary operations nodes * Add more grammar rules for empty and expressions with parenthesis declarations * Add error class for syntactic errors and error production for handling errors * Linking projects scripts for start testing * Add necessary descriptions on productions * Include some args to the yacc for building * Include some args to the lex for building and fix some typos * Fix some imports bugs * Fix more typos * Make some changes in main file for testing and make some corrections * Include find_col method in parser to fix bug, and more corrections in parser * Fixmore bugs in parser * Set up final details, include some comments and clean code * Phase one done, two to go. * adding semantic structure * all semantic part * venv deleted from src Co-authored-by: LauryGirl --- .github/workflows/tests.yml | 0 .gitignore | 0 LICENSE | 0 Readme.md | 0 doc/Readme.md | 0 doc/cool-manual.pdf | Bin doc/github-git-cheat-sheet.pdf | Bin doc/team.yml | 0 img/img1.png | Bin img/img10.png | Bin img/img11.png | Bin img/img12.png | Bin img/img2.png | Bin img/img3.png | Bin img/img4.png | Bin img/img5.png | Bin img/img6.png | Bin img/img7.png | Bin img/img8.png | Bin img/img9.png | Bin requirements.txt | 1 + src/Readme.md | 0 src/main.py | 16 +- src/makefile | 0 src/nodes/ast_nodes.py | 9 - src/nodes/expr_nodes.py | 11 + src/parser/parser.py | 13 +- src/semantic/__init__.py | 1 + src/semantic/semantic_analyzer.py | 25 ++ src/semantic/tools/attribute.py | 10 + src/semantic/tools/context.py | 86 +++++ src/semantic/tools/error.py | 45 +++ src/semantic/tools/methods.py | 16 + src/semantic/tools/scope.py | 61 ++++ src/semantic/tools/type.py | 213 +++++++++++ src/semantic/tools/var.py | 13 + src/semantic/visitor/__init__.py | 4 + src/semantic/visitor/type_builder.py | 148 ++++++++ src/semantic/visitor/type_checker.py | 485 +++++++++++++++++++++++++ src/semantic/visitor/type_collector.py | 32 ++ src/semantic/visitor/visitor.py | 58 +++ src/yacctab.py | 124 +++---- tests/codegen/arith_input.txt | 0 tests/codegen/arith_output.txt | 0 tests/codegen/atoi.cl | 0 tests/codegen/atoi_input.txt | 0 tests/codegen/atoi_output.txt | 0 tests/codegen/book_list_input.txt | 0 tests/codegen/book_list_output.txt | 0 tests/codegen/cells_input.txt | 0 tests/codegen/cells_output.txt | 0 tests/codegen/complex_input.txt | 0 tests/codegen/complex_output.txt | 0 tests/codegen/fib.cl | 0 tests/codegen/fib_input.txt | 0 tests/codegen/fib_output.txt | 0 tests/codegen/graph_input.txt | 0 tests/codegen/graph_output.txt | 0 tests/codegen/hairyscary_input.txt | 0 tests/codegen/hairyscary_output.txt | 0 tests/codegen/hello_world_input.txt | 0 tests/codegen/hello_world_output.txt | 0 tests/codegen/io_input.txt | 0 tests/codegen/io_output.txt | 0 tests/codegen/life_input.txt | 0 tests/codegen/life_output.txt | 0 tests/codegen/list.cl | 0 tests/codegen/list_input.txt | 0 tests/codegen/list_output.txt | 0 tests/codegen/new_complex_input.txt | 0 tests/codegen/new_complex_output.txt | 0 tests/codegen/palindrome_input.txt | 0 tests/codegen/palindrome_output.txt | 0 tests/codegen/primes.cl | 0 tests/codegen/primes_input.txt | 0 tests/codegen/primes_output.txt | 0 tests/codegen/print-cool.cl | 0 tests/codegen/print-cool_input.txt | 0 tests/codegen/print-cool_output.txt | 0 tests/codegen/sort-list.cl | 0 tests/codegen/sort-list_input.txt | 0 tests/codegen/sort-list_output.txt | 0 tests/codegen_test.py | 0 tests/conftest.py | 0 tests/lexer/comment1.cl | 0 tests/lexer/comment1_error.txt | 0 tests/lexer/iis1.cl | 0 tests/lexer/iis1_error.txt | 0 tests/lexer/iis2.cl | 0 tests/lexer/iis2_error.txt | 0 tests/lexer/iis3.cl | 0 tests/lexer/iis3_error.txt | 0 tests/lexer/iis4.cl | 0 tests/lexer/iis4_error.txt | 0 tests/lexer/iis5.cl | 0 tests/lexer/iis5_error.txt | 0 tests/lexer/iis6.cl | 0 tests/lexer/iis6_error.txt | 0 tests/lexer/mixed1.cl | 0 tests/lexer/mixed1_error.txt | 0 tests/lexer/mixed2.cl | 0 tests/lexer/mixed2_error.txt | 0 tests/lexer/string1.cl | 0 tests/lexer/string1_error.txt | 0 tests/lexer/string2.cl | 0 tests/lexer/string2_error.txt | 0 tests/lexer/string3.cl | Bin tests/lexer/string3_error.txt | 0 tests/lexer/string4.cl | 0 tests/lexer/string4_error.txt | 0 tests/lexer_test.py | 0 tests/parser/assignment1.cl | 0 tests/parser/assignment1_error.txt | 0 tests/parser/assignment2.cl | 0 tests/parser/assignment2_error.txt | 0 tests/parser/assignment3.cl | 0 tests/parser/assignment3_error.txt | 0 tests/parser/attribute1.cl | 0 tests/parser/attribute1_error.txt | 0 tests/parser/attribute2.cl | 0 tests/parser/attribute2_error.txt | 0 tests/parser/attribute3.cl | 0 tests/parser/attribute3_error.txt | 0 tests/parser/block1.cl | 0 tests/parser/block1_error.txt | 0 tests/parser/block2.cl | 0 tests/parser/block2_error.txt | 0 tests/parser/block3.cl | 0 tests/parser/block3_error.txt | 0 tests/parser/block4.cl | 0 tests/parser/block4_error.txt | 0 tests/parser/case1.cl | 0 tests/parser/case1_error.txt | 0 tests/parser/case2.cl | 0 tests/parser/case2_error.txt | 0 tests/parser/case3.cl | 0 tests/parser/case3_error.txt | 0 tests/parser/case4.cl | 0 tests/parser/case4_error.txt | 0 tests/parser/case5.cl | 0 tests/parser/case5_error.txt | 0 tests/parser/case6.cl | 0 tests/parser/case6_error.txt | 0 tests/parser/class1.cl | 0 tests/parser/class1_error.txt | 0 tests/parser/class2.cl | 0 tests/parser/class2_error.txt | 0 tests/parser/class3.cl | 0 tests/parser/class3_error.txt | 0 tests/parser/class4.cl | 0 tests/parser/class4_error.txt | 0 tests/parser/class5.cl | 0 tests/parser/class5_error.txt | 0 tests/parser/class6.cl | 0 tests/parser/class6_error.txt | 0 tests/parser/conditional1.cl | 0 tests/parser/conditional1_error.txt | 0 tests/parser/conditional2.cl | 0 tests/parser/conditional2_error.txt | 0 tests/parser/conditional3.cl | 0 tests/parser/conditional3_error.txt | 0 tests/parser/conditional4.cl | 0 tests/parser/conditional4_error.txt | 0 tests/parser/conditional5.cl | 0 tests/parser/conditional5_error.txt | 0 tests/parser/conditional6.cl | 0 tests/parser/conditional6_error.txt | 0 tests/parser/dispatch1.cl | 0 tests/parser/dispatch1_error.txt | 0 tests/parser/dispatch2.cl | 0 tests/parser/dispatch2_error.txt | 0 tests/parser/dispatch3.cl | 0 tests/parser/dispatch3_error.txt | 0 tests/parser/dispatch4.cl | 0 tests/parser/dispatch4_error.txt | 0 tests/parser/dispatch5.cl | 0 tests/parser/dispatch5_error.txt | 0 tests/parser/dispatch6.cl | 0 tests/parser/dispatch6_error.txt | 0 tests/parser/dispatch7.cl | 0 tests/parser/dispatch7_error.txt | 0 tests/parser/dispatch8.cl | 0 tests/parser/dispatch8_error.txt | 0 tests/parser/dispatch9.cl | 0 tests/parser/dispatch9_error.txt | 0 tests/parser/let1.cl | 0 tests/parser/let1_error.txt | 0 tests/parser/let2.cl | 0 tests/parser/let2_error.txt | 0 tests/parser/let3.cl | 0 tests/parser/let3_error.txt | 0 tests/parser/let4.cl | 0 tests/parser/let4_error.txt | 0 tests/parser/let5.cl | 0 tests/parser/let5_error.txt | 0 tests/parser/let6.cl | 0 tests/parser/let6_error.txt | 0 tests/parser/let7.cl | 0 tests/parser/let7_error.txt | 0 tests/parser/loop1.cl | 0 tests/parser/loop1_error.txt | 0 tests/parser/loop2.cl | 0 tests/parser/loop2_error.txt | 0 tests/parser/loop3.cl | 0 tests/parser/loop3_error.txt | 0 tests/parser/loop4.cl | 0 tests/parser/loop4_error.txt | 0 tests/parser/method1.cl | 0 tests/parser/method1_error.txt | 0 tests/parser/method2.cl | 0 tests/parser/method2_error.txt | 0 tests/parser/method3.cl | 0 tests/parser/method3_error.txt | 0 tests/parser/method4.cl | 0 tests/parser/method4_error.txt | 0 tests/parser/method5.cl | 0 tests/parser/method5_error.txt | 0 tests/parser/method6.cl | 0 tests/parser/method6_error.txt | 0 tests/parser/mixed1.cl | 0 tests/parser/mixed1_error.txt | 0 tests/parser/mixed2.cl | 0 tests/parser/mixed2_error.txt | 0 tests/parser/mixed3.cl | 0 tests/parser/mixed3_error.txt | 0 tests/parser/mixed4.cl | 0 tests/parser/mixed4_error.txt | 0 tests/parser/mixed5.cl | 0 tests/parser/mixed5_error.txt | 0 tests/parser/mixed6.cl | 0 tests/parser/mixed6_error.txt | 0 tests/parser/operation1.cl | 0 tests/parser/operation1_error.txt | 0 tests/parser/operation2.cl | 0 tests/parser/operation2_error.txt | 0 tests/parser/operation3.cl | 0 tests/parser/operation3_error.txt | 0 tests/parser/operation4.cl | 0 tests/parser/operation4_error.txt | 0 tests/parser/program1.cl | 0 tests/parser/program1_error.txt | 0 tests/parser/program2.cl | 0 tests/parser/program2_error.txt | 0 tests/parser/program3.cl | 0 tests/parser/program3_error.txt | 0 tests/parser_test.py | 0 tests/semantic/arithmetic1.cl | 0 tests/semantic/arithmetic10.cl | 0 tests/semantic/arithmetic10_error.txt | 0 tests/semantic/arithmetic11.cl | 0 tests/semantic/arithmetic11_error.txt | 0 tests/semantic/arithmetic12.cl | 0 tests/semantic/arithmetic12_error.txt | 0 tests/semantic/arithmetic1_error.txt | 0 tests/semantic/arithmetic2.cl | 0 tests/semantic/arithmetic2_error.txt | 0 tests/semantic/arithmetic3.cl | 0 tests/semantic/arithmetic3_error.txt | 0 tests/semantic/arithmetic4.cl | 0 tests/semantic/arithmetic4_error.txt | 0 tests/semantic/arithmetic5.cl | 0 tests/semantic/arithmetic5_error.txt | 0 tests/semantic/arithmetic6.cl | 0 tests/semantic/arithmetic6_error.txt | 0 tests/semantic/arithmetic7.cl | 0 tests/semantic/arithmetic7_error.txt | 0 tests/semantic/arithmetic8.cl | 0 tests/semantic/arithmetic8_error.txt | 0 tests/semantic/arithmetic9.cl | 0 tests/semantic/arithmetic9_error.txt | 0 tests/semantic/assignment1.cl | 0 tests/semantic/assignment1_error.txt | 0 tests/semantic/assignment2.cl | 0 tests/semantic/assignment2_error.txt | 0 tests/semantic/assignment3.cl | 0 tests/semantic/assignment3_error.txt | 0 tests/semantic/attributes1.cl | 0 tests/semantic/attributes1_error.txt | 0 tests/semantic/attributes2.cl | 0 tests/semantic/attributes2_error.txt | 0 tests/semantic/attributes3.cl | 0 tests/semantic/attributes3_error.txt | 0 tests/semantic/attributes4.cl | 0 tests/semantic/attributes4_error.txt | 0 tests/semantic/basics1.cl | 0 tests/semantic/basics1_error.txt | 0 tests/semantic/basics2.cl | 0 tests/semantic/basics2_error.txt | 0 tests/semantic/basics3.cl | 0 tests/semantic/basics3_error.txt | 0 tests/semantic/basics4.cl | 0 tests/semantic/basics4_error.txt | 0 tests/semantic/basics5.cl | 0 tests/semantic/basics5_error.txt | 0 tests/semantic/basics6.cl | 0 tests/semantic/basics6_error.txt | 0 tests/semantic/basics7.cl | 0 tests/semantic/basics7_error.txt | 0 tests/semantic/basics8.cl | 0 tests/semantic/basics8_error.txt | 0 tests/semantic/blocks1.cl | 0 tests/semantic/blocks1_error.txt | 0 tests/semantic/case1.cl | 0 tests/semantic/case1_error.txt | 0 tests/semantic/case2.cl | 0 tests/semantic/case2_error.txt | 0 tests/semantic/case3.cl | 0 tests/semantic/case3_error.txt | 0 tests/semantic/class1.cl | 0 tests/semantic/class1_error.txt | 0 tests/semantic/conditionals1.cl | 0 tests/semantic/conditionals1_error.txt | 0 tests/semantic/conditionals2.cl | 0 tests/semantic/conditionals2_error.txt | 0 tests/semantic/dispatch1.cl | 0 tests/semantic/dispatch1_error.txt | 0 tests/semantic/dispatch2.cl | 0 tests/semantic/dispatch2_error.txt | 0 tests/semantic/dispatch3.cl | 0 tests/semantic/dispatch3_error.txt | 0 tests/semantic/dispatch4.cl | 0 tests/semantic/dispatch4_error.txt | 0 tests/semantic/dispatch5.cl | 0 tests/semantic/dispatch5_error.txt | 0 tests/semantic/dispatch6.cl | 0 tests/semantic/dispatch6_error.txt | 0 tests/semantic/eq1.cl | 0 tests/semantic/eq1_error.txt | 0 tests/semantic/eq2.cl | 0 tests/semantic/eq2_error.txt | 0 tests/semantic/eq3.cl | 0 tests/semantic/eq3_error.txt | 0 tests/semantic/eq4.cl | 0 tests/semantic/eq4_error.txt | 0 tests/semantic/inheritance3_error.txt | 0 tests/semantic/inheritance4_error.txt | 0 tests/semantic/inheritance5_error.txt | 0 tests/semantic/isvoid1.cl | 0 tests/semantic/isvoid1_error.txt | 0 tests/semantic/let1.cl | 0 tests/semantic/let1_error.txt | 0 tests/semantic/let2.cl | 0 tests/semantic/let2_error.txt | 0 tests/semantic/let3.cl | 0 tests/semantic/let3_error.txt | 0 tests/semantic/loops1.cl | 0 tests/semantic/loops1_error.txt | 0 tests/semantic/loops2.cl | 0 tests/semantic/loops2_error.txt | 0 tests/semantic/methods1.cl | 0 tests/semantic/methods1_error.txt | 0 tests/semantic/methods2.cl | 0 tests/semantic/methods2_error.txt | 0 tests/semantic/methods3.cl | 0 tests/semantic/methods3_error.txt | 0 tests/semantic/methods4.cl | 0 tests/semantic/methods4_error.txt | 0 tests/semantic/methods5.cl | 0 tests/semantic/methods5_error.txt | 0 tests/semantic/methods6.cl | 0 tests/semantic/methods6_error.txt | 0 tests/semantic/methods7.cl | 0 tests/semantic/methods7_error.txt | 0 tests/semantic/methods8.cl | 0 tests/semantic/methods8_error.txt | 0 tests/semantic/new1.cl | 0 tests/semantic/new1_error.txt | 0 tests/semantic/self1.cl | 0 tests/semantic/self1_error.txt | 0 tests/semantic/self2.cl | 0 tests/semantic/self2_error.txt | 0 tests/semantic/self3.cl | 0 tests/semantic/self3_error.txt | 0 tests/semantic/self4.cl | 0 tests/semantic/self4_error.txt | 0 tests/semantic_test.py | 0 tests/utils/__init__.py | 0 tests/utils/utils.py | 1 + 378 files changed, 1293 insertions(+), 79 deletions(-) mode change 100644 => 100755 .github/workflows/tests.yml mode change 100644 => 100755 .gitignore mode change 100644 => 100755 LICENSE mode change 100644 => 100755 Readme.md mode change 100644 => 100755 doc/Readme.md mode change 100644 => 100755 doc/cool-manual.pdf mode change 100644 => 100755 doc/github-git-cheat-sheet.pdf mode change 100644 => 100755 doc/team.yml mode change 100644 => 100755 img/img1.png mode change 100644 => 100755 img/img10.png mode change 100644 => 100755 img/img11.png mode change 100644 => 100755 img/img12.png mode change 100644 => 100755 img/img2.png mode change 100644 => 100755 img/img3.png mode change 100644 => 100755 img/img4.png mode change 100644 => 100755 img/img5.png mode change 100644 => 100755 img/img6.png mode change 100644 => 100755 img/img7.png mode change 100644 => 100755 img/img8.png mode change 100644 => 100755 img/img9.png mode change 100644 => 100755 requirements.txt mode change 100644 => 100755 src/Readme.md mode change 100644 => 100755 src/makefile create mode 100755 src/semantic/semantic_analyzer.py create mode 100755 src/semantic/tools/attribute.py create mode 100755 src/semantic/tools/context.py create mode 100755 src/semantic/tools/error.py create mode 100755 src/semantic/tools/methods.py create mode 100755 src/semantic/tools/scope.py create mode 100755 src/semantic/tools/type.py create mode 100755 src/semantic/tools/var.py create mode 100755 src/semantic/visitor/__init__.py create mode 100755 src/semantic/visitor/type_builder.py create mode 100755 src/semantic/visitor/type_checker.py create mode 100755 src/semantic/visitor/type_collector.py create mode 100755 src/semantic/visitor/visitor.py mode change 100644 => 100755 tests/codegen/arith_input.txt mode change 100644 => 100755 tests/codegen/arith_output.txt mode change 100644 => 100755 tests/codegen/atoi.cl mode change 100644 => 100755 tests/codegen/atoi_input.txt mode change 100644 => 100755 tests/codegen/atoi_output.txt mode change 100644 => 100755 tests/codegen/book_list_input.txt mode change 100644 => 100755 tests/codegen/book_list_output.txt mode change 100644 => 100755 tests/codegen/cells_input.txt mode change 100644 => 100755 tests/codegen/cells_output.txt mode change 100644 => 100755 tests/codegen/complex_input.txt mode change 100644 => 100755 tests/codegen/complex_output.txt mode change 100644 => 100755 tests/codegen/fib.cl mode change 100644 => 100755 tests/codegen/fib_input.txt mode change 100644 => 100755 tests/codegen/fib_output.txt mode change 100644 => 100755 tests/codegen/graph_input.txt mode change 100644 => 100755 tests/codegen/graph_output.txt mode change 100644 => 100755 tests/codegen/hairyscary_input.txt mode change 100644 => 100755 tests/codegen/hairyscary_output.txt mode change 100644 => 100755 tests/codegen/hello_world_input.txt mode change 100644 => 100755 tests/codegen/hello_world_output.txt mode change 100644 => 100755 tests/codegen/io_input.txt mode change 100644 => 100755 tests/codegen/io_output.txt mode change 100644 => 100755 tests/codegen/life_input.txt mode change 100644 => 100755 tests/codegen/life_output.txt mode change 100644 => 100755 tests/codegen/list.cl mode change 100644 => 100755 tests/codegen/list_input.txt mode change 100644 => 100755 tests/codegen/list_output.txt mode change 100644 => 100755 tests/codegen/new_complex_input.txt mode change 100644 => 100755 tests/codegen/new_complex_output.txt mode change 100644 => 100755 tests/codegen/palindrome_input.txt mode change 100644 => 100755 tests/codegen/palindrome_output.txt mode change 100644 => 100755 tests/codegen/primes.cl mode change 100644 => 100755 tests/codegen/primes_input.txt mode change 100644 => 100755 tests/codegen/primes_output.txt mode change 100644 => 100755 tests/codegen/print-cool.cl mode change 100644 => 100755 tests/codegen/print-cool_input.txt mode change 100644 => 100755 tests/codegen/print-cool_output.txt mode change 100644 => 100755 tests/codegen/sort-list.cl mode change 100644 => 100755 tests/codegen/sort-list_input.txt mode change 100644 => 100755 tests/codegen/sort-list_output.txt mode change 100644 => 100755 tests/codegen_test.py mode change 100644 => 100755 tests/conftest.py mode change 100644 => 100755 tests/lexer/comment1.cl mode change 100644 => 100755 tests/lexer/comment1_error.txt mode change 100644 => 100755 tests/lexer/iis1.cl mode change 100644 => 100755 tests/lexer/iis1_error.txt mode change 100644 => 100755 tests/lexer/iis2.cl mode change 100644 => 100755 tests/lexer/iis2_error.txt mode change 100644 => 100755 tests/lexer/iis3.cl mode change 100644 => 100755 tests/lexer/iis3_error.txt mode change 100644 => 100755 tests/lexer/iis4.cl mode change 100644 => 100755 tests/lexer/iis4_error.txt mode change 100644 => 100755 tests/lexer/iis5.cl mode change 100644 => 100755 tests/lexer/iis5_error.txt mode change 100644 => 100755 tests/lexer/iis6.cl mode change 100644 => 100755 tests/lexer/iis6_error.txt mode change 100644 => 100755 tests/lexer/mixed1.cl mode change 100644 => 100755 tests/lexer/mixed1_error.txt mode change 100644 => 100755 tests/lexer/mixed2.cl mode change 100644 => 100755 tests/lexer/mixed2_error.txt mode change 100644 => 100755 tests/lexer/string1.cl mode change 100644 => 100755 tests/lexer/string1_error.txt mode change 100644 => 100755 tests/lexer/string2.cl mode change 100644 => 100755 tests/lexer/string2_error.txt mode change 100644 => 100755 tests/lexer/string3.cl mode change 100644 => 100755 tests/lexer/string3_error.txt mode change 100644 => 100755 tests/lexer/string4.cl mode change 100644 => 100755 tests/lexer/string4_error.txt mode change 100644 => 100755 tests/lexer_test.py mode change 100644 => 100755 tests/parser/assignment1.cl mode change 100644 => 100755 tests/parser/assignment1_error.txt mode change 100644 => 100755 tests/parser/assignment2.cl mode change 100644 => 100755 tests/parser/assignment2_error.txt mode change 100644 => 100755 tests/parser/assignment3.cl mode change 100644 => 100755 tests/parser/assignment3_error.txt mode change 100644 => 100755 tests/parser/attribute1.cl mode change 100644 => 100755 tests/parser/attribute1_error.txt mode change 100644 => 100755 tests/parser/attribute2.cl mode change 100644 => 100755 tests/parser/attribute2_error.txt mode change 100644 => 100755 tests/parser/attribute3.cl mode change 100644 => 100755 tests/parser/attribute3_error.txt mode change 100644 => 100755 tests/parser/block1.cl mode change 100644 => 100755 tests/parser/block1_error.txt mode change 100644 => 100755 tests/parser/block2.cl mode change 100644 => 100755 tests/parser/block2_error.txt mode change 100644 => 100755 tests/parser/block3.cl mode change 100644 => 100755 tests/parser/block3_error.txt mode change 100644 => 100755 tests/parser/block4.cl mode change 100644 => 100755 tests/parser/block4_error.txt mode change 100644 => 100755 tests/parser/case1.cl mode change 100644 => 100755 tests/parser/case1_error.txt mode change 100644 => 100755 tests/parser/case2.cl mode change 100644 => 100755 tests/parser/case2_error.txt mode change 100644 => 100755 tests/parser/case3.cl mode change 100644 => 100755 tests/parser/case3_error.txt mode change 100644 => 100755 tests/parser/case4.cl mode change 100644 => 100755 tests/parser/case4_error.txt mode change 100644 => 100755 tests/parser/case5.cl mode change 100644 => 100755 tests/parser/case5_error.txt mode change 100644 => 100755 tests/parser/case6.cl mode change 100644 => 100755 tests/parser/case6_error.txt mode change 100644 => 100755 tests/parser/class1.cl mode change 100644 => 100755 tests/parser/class1_error.txt mode change 100644 => 100755 tests/parser/class2.cl mode change 100644 => 100755 tests/parser/class2_error.txt mode change 100644 => 100755 tests/parser/class3.cl mode change 100644 => 100755 tests/parser/class3_error.txt mode change 100644 => 100755 tests/parser/class4.cl mode change 100644 => 100755 tests/parser/class4_error.txt mode change 100644 => 100755 tests/parser/class5.cl mode change 100644 => 100755 tests/parser/class5_error.txt mode change 100644 => 100755 tests/parser/class6.cl mode change 100644 => 100755 tests/parser/class6_error.txt mode change 100644 => 100755 tests/parser/conditional1.cl mode change 100644 => 100755 tests/parser/conditional1_error.txt mode change 100644 => 100755 tests/parser/conditional2.cl mode change 100644 => 100755 tests/parser/conditional2_error.txt mode change 100644 => 100755 tests/parser/conditional3.cl mode change 100644 => 100755 tests/parser/conditional3_error.txt mode change 100644 => 100755 tests/parser/conditional4.cl mode change 100644 => 100755 tests/parser/conditional4_error.txt mode change 100644 => 100755 tests/parser/conditional5.cl mode change 100644 => 100755 tests/parser/conditional5_error.txt mode change 100644 => 100755 tests/parser/conditional6.cl mode change 100644 => 100755 tests/parser/conditional6_error.txt mode change 100644 => 100755 tests/parser/dispatch1.cl mode change 100644 => 100755 tests/parser/dispatch1_error.txt mode change 100644 => 100755 tests/parser/dispatch2.cl mode change 100644 => 100755 tests/parser/dispatch2_error.txt mode change 100644 => 100755 tests/parser/dispatch3.cl mode change 100644 => 100755 tests/parser/dispatch3_error.txt mode change 100644 => 100755 tests/parser/dispatch4.cl mode change 100644 => 100755 tests/parser/dispatch4_error.txt mode change 100644 => 100755 tests/parser/dispatch5.cl mode change 100644 => 100755 tests/parser/dispatch5_error.txt mode change 100644 => 100755 tests/parser/dispatch6.cl mode change 100644 => 100755 tests/parser/dispatch6_error.txt mode change 100644 => 100755 tests/parser/dispatch7.cl mode change 100644 => 100755 tests/parser/dispatch7_error.txt mode change 100644 => 100755 tests/parser/dispatch8.cl mode change 100644 => 100755 tests/parser/dispatch8_error.txt mode change 100644 => 100755 tests/parser/dispatch9.cl mode change 100644 => 100755 tests/parser/dispatch9_error.txt mode change 100644 => 100755 tests/parser/let1.cl mode change 100644 => 100755 tests/parser/let1_error.txt mode change 100644 => 100755 tests/parser/let2.cl mode change 100644 => 100755 tests/parser/let2_error.txt mode change 100644 => 100755 tests/parser/let3.cl mode change 100644 => 100755 tests/parser/let3_error.txt mode change 100644 => 100755 tests/parser/let4.cl mode change 100644 => 100755 tests/parser/let4_error.txt mode change 100644 => 100755 tests/parser/let5.cl mode change 100644 => 100755 tests/parser/let5_error.txt mode change 100644 => 100755 tests/parser/let6.cl mode change 100644 => 100755 tests/parser/let6_error.txt mode change 100644 => 100755 tests/parser/let7.cl mode change 100644 => 100755 tests/parser/let7_error.txt mode change 100644 => 100755 tests/parser/loop1.cl mode change 100644 => 100755 tests/parser/loop1_error.txt mode change 100644 => 100755 tests/parser/loop2.cl mode change 100644 => 100755 tests/parser/loop2_error.txt mode change 100644 => 100755 tests/parser/loop3.cl mode change 100644 => 100755 tests/parser/loop3_error.txt mode change 100644 => 100755 tests/parser/loop4.cl mode change 100644 => 100755 tests/parser/loop4_error.txt mode change 100644 => 100755 tests/parser/method1.cl mode change 100644 => 100755 tests/parser/method1_error.txt mode change 100644 => 100755 tests/parser/method2.cl mode change 100644 => 100755 tests/parser/method2_error.txt mode change 100644 => 100755 tests/parser/method3.cl mode change 100644 => 100755 tests/parser/method3_error.txt mode change 100644 => 100755 tests/parser/method4.cl mode change 100644 => 100755 tests/parser/method4_error.txt mode change 100644 => 100755 tests/parser/method5.cl mode change 100644 => 100755 tests/parser/method5_error.txt mode change 100644 => 100755 tests/parser/method6.cl mode change 100644 => 100755 tests/parser/method6_error.txt mode change 100644 => 100755 tests/parser/mixed1.cl mode change 100644 => 100755 tests/parser/mixed1_error.txt mode change 100644 => 100755 tests/parser/mixed2.cl mode change 100644 => 100755 tests/parser/mixed2_error.txt mode change 100644 => 100755 tests/parser/mixed3.cl mode change 100644 => 100755 tests/parser/mixed3_error.txt mode change 100644 => 100755 tests/parser/mixed4.cl mode change 100644 => 100755 tests/parser/mixed4_error.txt mode change 100644 => 100755 tests/parser/mixed5.cl mode change 100644 => 100755 tests/parser/mixed5_error.txt mode change 100644 => 100755 tests/parser/mixed6.cl mode change 100644 => 100755 tests/parser/mixed6_error.txt mode change 100644 => 100755 tests/parser/operation1.cl mode change 100644 => 100755 tests/parser/operation1_error.txt mode change 100644 => 100755 tests/parser/operation2.cl mode change 100644 => 100755 tests/parser/operation2_error.txt mode change 100644 => 100755 tests/parser/operation3.cl mode change 100644 => 100755 tests/parser/operation3_error.txt mode change 100644 => 100755 tests/parser/operation4.cl mode change 100644 => 100755 tests/parser/operation4_error.txt mode change 100644 => 100755 tests/parser/program1.cl mode change 100644 => 100755 tests/parser/program1_error.txt mode change 100644 => 100755 tests/parser/program2.cl mode change 100644 => 100755 tests/parser/program2_error.txt mode change 100644 => 100755 tests/parser/program3.cl mode change 100644 => 100755 tests/parser/program3_error.txt mode change 100644 => 100755 tests/parser_test.py mode change 100644 => 100755 tests/semantic/arithmetic1.cl mode change 100644 => 100755 tests/semantic/arithmetic10.cl mode change 100644 => 100755 tests/semantic/arithmetic10_error.txt mode change 100644 => 100755 tests/semantic/arithmetic11.cl mode change 100644 => 100755 tests/semantic/arithmetic11_error.txt mode change 100644 => 100755 tests/semantic/arithmetic12.cl mode change 100644 => 100755 tests/semantic/arithmetic12_error.txt mode change 100644 => 100755 tests/semantic/arithmetic1_error.txt mode change 100644 => 100755 tests/semantic/arithmetic2.cl mode change 100644 => 100755 tests/semantic/arithmetic2_error.txt mode change 100644 => 100755 tests/semantic/arithmetic3.cl mode change 100644 => 100755 tests/semantic/arithmetic3_error.txt mode change 100644 => 100755 tests/semantic/arithmetic4.cl mode change 100644 => 100755 tests/semantic/arithmetic4_error.txt mode change 100644 => 100755 tests/semantic/arithmetic5.cl mode change 100644 => 100755 tests/semantic/arithmetic5_error.txt mode change 100644 => 100755 tests/semantic/arithmetic6.cl mode change 100644 => 100755 tests/semantic/arithmetic6_error.txt mode change 100644 => 100755 tests/semantic/arithmetic7.cl mode change 100644 => 100755 tests/semantic/arithmetic7_error.txt mode change 100644 => 100755 tests/semantic/arithmetic8.cl mode change 100644 => 100755 tests/semantic/arithmetic8_error.txt mode change 100644 => 100755 tests/semantic/arithmetic9.cl mode change 100644 => 100755 tests/semantic/arithmetic9_error.txt mode change 100644 => 100755 tests/semantic/assignment1.cl mode change 100644 => 100755 tests/semantic/assignment1_error.txt mode change 100644 => 100755 tests/semantic/assignment2.cl mode change 100644 => 100755 tests/semantic/assignment2_error.txt mode change 100644 => 100755 tests/semantic/assignment3.cl mode change 100644 => 100755 tests/semantic/assignment3_error.txt mode change 100644 => 100755 tests/semantic/attributes1.cl mode change 100644 => 100755 tests/semantic/attributes1_error.txt mode change 100644 => 100755 tests/semantic/attributes2.cl mode change 100644 => 100755 tests/semantic/attributes2_error.txt mode change 100644 => 100755 tests/semantic/attributes3.cl mode change 100644 => 100755 tests/semantic/attributes3_error.txt mode change 100644 => 100755 tests/semantic/attributes4.cl mode change 100644 => 100755 tests/semantic/attributes4_error.txt mode change 100644 => 100755 tests/semantic/basics1.cl mode change 100644 => 100755 tests/semantic/basics1_error.txt mode change 100644 => 100755 tests/semantic/basics2.cl mode change 100644 => 100755 tests/semantic/basics2_error.txt mode change 100644 => 100755 tests/semantic/basics3.cl mode change 100644 => 100755 tests/semantic/basics3_error.txt mode change 100644 => 100755 tests/semantic/basics4.cl mode change 100644 => 100755 tests/semantic/basics4_error.txt mode change 100644 => 100755 tests/semantic/basics5.cl mode change 100644 => 100755 tests/semantic/basics5_error.txt mode change 100644 => 100755 tests/semantic/basics6.cl mode change 100644 => 100755 tests/semantic/basics6_error.txt mode change 100644 => 100755 tests/semantic/basics7.cl mode change 100644 => 100755 tests/semantic/basics7_error.txt mode change 100644 => 100755 tests/semantic/basics8.cl mode change 100644 => 100755 tests/semantic/basics8_error.txt mode change 100644 => 100755 tests/semantic/blocks1.cl mode change 100644 => 100755 tests/semantic/blocks1_error.txt mode change 100644 => 100755 tests/semantic/case1.cl mode change 100644 => 100755 tests/semantic/case1_error.txt mode change 100644 => 100755 tests/semantic/case2.cl mode change 100644 => 100755 tests/semantic/case2_error.txt mode change 100644 => 100755 tests/semantic/case3.cl mode change 100644 => 100755 tests/semantic/case3_error.txt mode change 100644 => 100755 tests/semantic/class1.cl mode change 100644 => 100755 tests/semantic/class1_error.txt mode change 100644 => 100755 tests/semantic/conditionals1.cl mode change 100644 => 100755 tests/semantic/conditionals1_error.txt mode change 100644 => 100755 tests/semantic/conditionals2.cl mode change 100644 => 100755 tests/semantic/conditionals2_error.txt mode change 100644 => 100755 tests/semantic/dispatch1.cl mode change 100644 => 100755 tests/semantic/dispatch1_error.txt mode change 100644 => 100755 tests/semantic/dispatch2.cl mode change 100644 => 100755 tests/semantic/dispatch2_error.txt mode change 100644 => 100755 tests/semantic/dispatch3.cl mode change 100644 => 100755 tests/semantic/dispatch3_error.txt mode change 100644 => 100755 tests/semantic/dispatch4.cl mode change 100644 => 100755 tests/semantic/dispatch4_error.txt mode change 100644 => 100755 tests/semantic/dispatch5.cl mode change 100644 => 100755 tests/semantic/dispatch5_error.txt mode change 100644 => 100755 tests/semantic/dispatch6.cl mode change 100644 => 100755 tests/semantic/dispatch6_error.txt mode change 100644 => 100755 tests/semantic/eq1.cl mode change 100644 => 100755 tests/semantic/eq1_error.txt mode change 100644 => 100755 tests/semantic/eq2.cl mode change 100644 => 100755 tests/semantic/eq2_error.txt mode change 100644 => 100755 tests/semantic/eq3.cl mode change 100644 => 100755 tests/semantic/eq3_error.txt mode change 100644 => 100755 tests/semantic/eq4.cl mode change 100644 => 100755 tests/semantic/eq4_error.txt mode change 100644 => 100755 tests/semantic/inheritance3_error.txt mode change 100644 => 100755 tests/semantic/inheritance4_error.txt mode change 100644 => 100755 tests/semantic/inheritance5_error.txt mode change 100644 => 100755 tests/semantic/isvoid1.cl mode change 100644 => 100755 tests/semantic/isvoid1_error.txt mode change 100644 => 100755 tests/semantic/let1.cl mode change 100644 => 100755 tests/semantic/let1_error.txt mode change 100644 => 100755 tests/semantic/let2.cl mode change 100644 => 100755 tests/semantic/let2_error.txt mode change 100644 => 100755 tests/semantic/let3.cl mode change 100644 => 100755 tests/semantic/let3_error.txt mode change 100644 => 100755 tests/semantic/loops1.cl mode change 100644 => 100755 tests/semantic/loops1_error.txt mode change 100644 => 100755 tests/semantic/loops2.cl mode change 100644 => 100755 tests/semantic/loops2_error.txt mode change 100644 => 100755 tests/semantic/methods1.cl mode change 100644 => 100755 tests/semantic/methods1_error.txt mode change 100644 => 100755 tests/semantic/methods2.cl mode change 100644 => 100755 tests/semantic/methods2_error.txt mode change 100644 => 100755 tests/semantic/methods3.cl mode change 100644 => 100755 tests/semantic/methods3_error.txt mode change 100644 => 100755 tests/semantic/methods4.cl mode change 100644 => 100755 tests/semantic/methods4_error.txt mode change 100644 => 100755 tests/semantic/methods5.cl mode change 100644 => 100755 tests/semantic/methods5_error.txt mode change 100644 => 100755 tests/semantic/methods6.cl mode change 100644 => 100755 tests/semantic/methods6_error.txt mode change 100644 => 100755 tests/semantic/methods7.cl mode change 100644 => 100755 tests/semantic/methods7_error.txt mode change 100644 => 100755 tests/semantic/methods8.cl mode change 100644 => 100755 tests/semantic/methods8_error.txt mode change 100644 => 100755 tests/semantic/new1.cl mode change 100644 => 100755 tests/semantic/new1_error.txt mode change 100644 => 100755 tests/semantic/self1.cl mode change 100644 => 100755 tests/semantic/self1_error.txt mode change 100644 => 100755 tests/semantic/self2.cl mode change 100644 => 100755 tests/semantic/self2_error.txt mode change 100644 => 100755 tests/semantic/self3.cl mode change 100644 => 100755 tests/semantic/self3_error.txt mode change 100644 => 100755 tests/semantic/self4.cl mode change 100644 => 100755 tests/semantic/self4_error.txt mode change 100644 => 100755 tests/semantic_test.py mode change 100644 => 100755 tests/utils/__init__.py mode change 100644 => 100755 tests/utils/utils.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/Readme.md b/Readme.md old mode 100644 new mode 100755 diff --git a/doc/Readme.md b/doc/Readme.md old mode 100644 new mode 100755 diff --git a/doc/cool-manual.pdf b/doc/cool-manual.pdf old mode 100644 new mode 100755 diff --git a/doc/github-git-cheat-sheet.pdf b/doc/github-git-cheat-sheet.pdf old mode 100644 new mode 100755 diff --git a/doc/team.yml b/doc/team.yml old mode 100644 new mode 100755 diff --git a/img/img1.png b/img/img1.png old mode 100644 new mode 100755 diff --git a/img/img10.png b/img/img10.png old mode 100644 new mode 100755 diff --git a/img/img11.png b/img/img11.png old mode 100644 new mode 100755 diff --git a/img/img12.png b/img/img12.png old mode 100644 new mode 100755 diff --git a/img/img2.png b/img/img2.png old mode 100644 new mode 100755 diff --git a/img/img3.png b/img/img3.png old mode 100644 new mode 100755 diff --git a/img/img4.png b/img/img4.png old mode 100644 new mode 100755 diff --git a/img/img5.png b/img/img5.png old mode 100644 new mode 100755 diff --git a/img/img6.png b/img/img6.png old mode 100644 new mode 100755 diff --git a/img/img7.png b/img/img7.png old mode 100644 new mode 100755 diff --git a/img/img8.png b/img/img8.png old mode 100644 new mode 100755 diff --git a/img/img9.png b/img/img9.png old mode 100644 new mode 100755 diff --git a/requirements.txt b/requirements.txt old mode 100644 new mode 100755 index 9eb0cad1a..cba16ee2f --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ pytest pytest-ordering +ply diff --git a/src/Readme.md b/src/Readme.md old mode 100644 new mode 100755 diff --git a/src/main.py b/src/main.py index 85c7b48ea..9cdfb166f 100644 --- a/src/main.py +++ b/src/main.py @@ -1,5 +1,9 @@ from lexer import MyLexer from parser import MyParser +<<<<<<< HEAD +======= +from semantic import MySemanticAnalyzer +>>>>>>> 0b274c6c24fe59c4c9e10f37064ddd91ebd507d7 import sys if __name__ == "__main__": @@ -19,7 +23,7 @@ print(_mylexer.errors[0]) exit(1) try: - _myparse_result = _myparser.parse(_cool_program) + myAst = _myparser.parse(_cool_program) except: pass @@ -28,4 +32,12 @@ exit(1) # SemanticTODO - # CodeGenTODO \ No newline at end of file + semantic_analyzer = MySemanticAnalyzer(myAst) + semantic_analyzer.analyze() + + for e in semantic_analyzer.errors: + print(e) + exit(1) + + + # CodeGenTODO diff --git a/src/makefile b/src/makefile old mode 100644 new mode 100755 diff --git a/src/nodes/ast_nodes.py b/src/nodes/ast_nodes.py index 90d94680a..c07728de6 100644 --- a/src/nodes/ast_nodes.py +++ b/src/nodes/ast_nodes.py @@ -43,15 +43,6 @@ def __init__(self, name, attr_type, row , col): self.row = row self.col = col -class ActionNode(AST): - def __init__(self, name, act_type, body, row , col): - super(ActionNode, self).__init__() - self.name = name - self.act_type = act_type - self.body = body - self.row = row - self.col = col - class LetInitNode(AST): def __init__(self, name, let_type, expression, row , col): super(LetInitNode, self).__init__() diff --git a/src/nodes/expr_nodes.py b/src/nodes/expr_nodes.py index 46fadbd23..ed5f42c60 100644 --- a/src/nodes/expr_nodes.py +++ b/src/nodes/expr_nodes.py @@ -5,6 +5,15 @@ def __init__(self): super(ExpressionNode, self).__init__() self.expr_type = None +class ActionNode(ExpressionNode): + def __init__(self, name, act_type, body, row , col): + super(ActionNode, self).__init__() + self.name = name + self.act_type = act_type + self.body = body + self.row = row + self.col = col + class DynamicCallNode(ExpressionNode): def __init__(self, obj, method, args, row , col): super(DynamicCallNode, self).__init__() @@ -88,6 +97,8 @@ class IdNode(ExpressionNode): def __init__(self, name, row, col): super(IdNode, self).__init__() self.name = name + self.row = row + self.col = col class EqualsNode(ExpressionNode): def __init__(self, left, right, row, col): diff --git a/src/parser/parser.py b/src/parser/parser.py index 9cf7861c2..838af6ce3 100644 --- a/src/parser/parser.py +++ b/src/parser/parser.py @@ -130,12 +130,6 @@ def p_action_list(self, p): ''' p[0] = (p[1],) if len(p) == 2 else tuple(p[1]) + (p[2],) - def p_action(self, p): - ''' - action : ID COLON TYPE ARROW expr SEMIC - ''' - p[0] = ActionNode( - name=p[1], act_type=p[3], body=p[5], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) def p_let_var(self, p): ''' @@ -187,6 +181,13 @@ def p_args_list_opt(self, p): ''' p[0] = tuple() if p.slice[1].type == "empty" else p[1] + def p_action(self, p): + ''' + action : ID COLON TYPE ARROW expr SEMIC + ''' + p[0] = ActionNode( + name=p[1], act_type=p[3], body=p[5], row=p.lineno(1), col=self.find_col(p.lexer.lexdata, p.lexpos(1))) + def p_expr_dynamic_call(self, p): ''' expr : expr DOT ID LPAREN args_list_opt RPAREN diff --git a/src/semantic/__init__.py b/src/semantic/__init__.py index e69de29bb..88fb8925f 100644 --- a/src/semantic/__init__.py +++ b/src/semantic/__init__.py @@ -0,0 +1 @@ +from .semantic_analyzer import MySemanticAnalyzer \ No newline at end of file diff --git a/src/semantic/semantic_analyzer.py b/src/semantic/semantic_analyzer.py new file mode 100755 index 000000000..81d05675c --- /dev/null +++ b/src/semantic/semantic_analyzer.py @@ -0,0 +1,25 @@ +from .visitor import * + +class MySemanticAnalyzer: + def __init__(self, ast): + self.ast = ast + self.errors = [] + + def analyze(self): + + type_collector = TypeCollector(self.errors) + type_collector.visit(self.ast) + context = type_collector.context + + #building types + type_builder = TypeBuilder(context, self.errors) + type_builder.visit(self.ast) + + if len(self.errors) > 0: + return context, None + + #checking types + type_checker = TypeChecker(context, self.errors) + scope = type_checker.visit(self.ast) + + return context, scope \ No newline at end of file diff --git a/src/semantic/tools/attribute.py b/src/semantic/tools/attribute.py new file mode 100755 index 000000000..5b96c73d6 --- /dev/null +++ b/src/semantic/tools/attribute.py @@ -0,0 +1,10 @@ +class Attribute: + def __init__(self, name, typex): + self.name = name + self.type = typex + + def __str__(self): + return f'[attrib] {self.name} : {self.type.name};' + + def __repr__(self): + return str(self) diff --git a/src/semantic/tools/context.py b/src/semantic/tools/context.py new file mode 100755 index 000000000..d66a3c92c --- /dev/null +++ b/src/semantic/tools/context.py @@ -0,0 +1,86 @@ +from .type import * +from .error import SemanticException + +class Context: + def __init__(self): + self.types = {} + self.graph = {} + self.classes = {} + self.types['ErrorType'] = Error_Type() + + def create_builtin_types(self): + self.types['SELF_TYPE'] = Type('SELF_TYPE') + + self.types['Object'] = Object_Type() + self.types['IO'] = IO_Type() + self.types['String'] = String_Type() + self.types['Int'] = Int_Type() + self.types['Bool'] = Bool_Type() + self.graph['Object'] = ['IO', 'String', 'Bool', 'Int'] + self.graph['IO'] = [] + self.graph['String'] = [] + self.graph['Int'] = [] + self.graph['Bool'] = [] + + self.types['IO'].set_parent(self.types['Object']) + self.types['String'].set_parent(self.types['Object']) + self.types['Int'].set_parent(self.types['Object']) + self.types['Bool'].set_parent(self.types['Object']) + + self.types['Object'].define_method('abort', [], [], self.types['Object']) + self.types['Object'].define_method('type_name', [], [], self.types['String']) + self.types['Object'].define_method('copy', [], [], self.types['SELF_TYPE']) + + self.types['IO'].define_method('out_string', ['x'], [self.types['String']], self.types['SELF_TYPE']) + self.types['IO'].define_method('out_int', ['x'], [self.types['Int']], self.types['SELF_TYPE']) + self.types['IO'].define_method('in_string', [], [], self.types['String']) + self.types['IO'].define_method('in_int', [], [], self.types['Int']) + + self.types['String'].define_method('length', [], [], self.types['Int']) + self.types['String'].define_method('concat', ['s'], [self.types['String']], self.types['String']) + self.types['String'].define_method('substr', ['i', 'l'], [self.types['Int'], self.types['Int']], self.types['String']) + + + + def create_type(self, node): + if node.name in self.types: + raise SemanticException( + f'Type with the same name ({node.name}) already in context.') + typex = self.types[node.name] = Type(node.name) + self.classes[node.name] = node + if not self.graph.__contains__(node.name): + self.graph[node.name] = [] + if self.graph.__contains__(node.parent): + self.graph[node.parent].append(node.name) + else: + self.graph[node.parent] = [node.name] + return typex + + def get_type(self, name: str): + try: + return self.types[name] + except KeyError: + raise SemanticException(f'Type "{name}" is not defined.') + + def set_type_tags(self, node='Object', tag=0): + self.types[node].tag = tag + for i,t in enumerate(self.graph[node]): + self.set_type_tags(t, tag + i + 1) + + def set_type_max_tags(self, node='Object'): + if not self.graph[node]: + self.types[node].max_tag = self.types[node].tag + else: + for t in self.graph[node]: + self.set_type_max_tags(t) + maximum = 0 + for t in self.graph[node]: + maximum = max(maximum, self.types[t].max_tag) + self.types[node].max_tag = maximum + + + def __str__(self): + return '{\n\t' + '\n\t'.join(y for x in self.types.values() for y in str(x).split('\n')) + '\n}' + + def __repr__(self): + return str(self) diff --git a/src/semantic/tools/error.py b/src/semantic/tools/error.py new file mode 100755 index 000000000..90b4d30a0 --- /dev/null +++ b/src/semantic/tools/error.py @@ -0,0 +1,45 @@ +#errors +wrong_signature_ = 'Method "%s" already defined in "%s" with a different signature.' +param_wrong_signature = 'Parameter "%s" is already defined in method "%s".' +param_not_exist_ = 'The type of param "%s" in method "%s" not exist, in the class "%s".' +wrong_type_ = 'Type %s expected.' +read_only_ = 'Variable "self" is read-only.' +local_already_defined_ = 'Variable "%s" is already defined in method "%s".' +incompatible_types_ = 'Cannot convert "%s" into "%s".' +var_not_defined_ = 'Variable "%s" is not defined.' +invalid_op_ = 'Operation is not defined between "%s" and "%s".' +incorrect_type_ = 'Incorrect type "%s" waiting "%s".' +autotype_ = 'Cannot infer the type of "%s".' +used_before_assignment_ = 'Variable "%s" used before being assigned.' +circular_dependency_ = 'Circular dependency in "%s".' +b_op_not_defined_ = '%s operations are not defined between "%s" and "%s".' +u_op_not_defined_ = '%s operations are not defined for "%s".' +incorrect_count_params_ = 'Method "%s" of "%s" only accepts "%s" argument(s).' +invalid_SELFTYPE = 'Invalid use of SELF_TYPE.' +self_name = "self cannot be the name of a formal parameter." +self_let_ = "'self' cannot be bound in a 'let' expression." +other_branch_declared_ = 'The type "%s" is declared in another branch.' +attr_not_exist_ = 'The type of attr "%s" in class "%s" not exist.' +invalid_return_type_ = 'The return type "%s" in method "%s" not exist, in the class "%s".' +inherits_builtin_type = 'Type "%s" inherits from a builint type.' +main_method_not_exist_ = 'The main method is not defined in class Main.' +Main_not_defined_ = "The class Main is not defined." + +class SemanticException(Exception): + @property + def text(self): + return self.args[0] + +class SemanticError(): + def __init__(self,message, line, column, type = 'SemanticError'): + self.type = type + self.value = message + self.line = line + self.column = column + self.text = f'({self.line}, {self.column}) - {self.type}: {self.value}' + + def __str__(self): + return f'({self.line}, {self.column}) - {self.type}: {self.value}' + + def __repr__(self): + return str(self) diff --git a/src/semantic/tools/methods.py b/src/semantic/tools/methods.py new file mode 100755 index 000000000..f15909839 --- /dev/null +++ b/src/semantic/tools/methods.py @@ -0,0 +1,16 @@ +class Method: + def __init__(self, name, param_names, params_types, return_type): + self.name = name + self.param_names = param_names + self.param_types = params_types + self.return_type = return_type + + def __str__(self): + params = ', '.join(f'{n}:{t.name}' for n, t in zip( + self.param_names, self.param_types)) + return f'[method] {self.name}({params}): {self.return_type.name};' + + def __eq__(self, other): + return other.name == self.name and \ + other.return_type == self.return_type and \ + other.param_types == self.param_types \ No newline at end of file diff --git a/src/semantic/tools/scope.py b/src/semantic/tools/scope.py new file mode 100755 index 000000000..4b08ebbd9 --- /dev/null +++ b/src/semantic/tools/scope.py @@ -0,0 +1,61 @@ +import itertools as itt +from .var import VariableInfo + +class Scope: + def __init__(self, parent=None): + self.locals = [] + self.cil_locals = {} + self.parent = parent + self.children = [] + self.index = 0 if parent is None else len(parent) + + def __len__(self): + return len(self.locals) + + def create_child(self): + child = Scope(self) + self.children.append(child) + return child + + def define_variable(self, vname, vtype): + info = VariableInfo(vname, vtype) + self.locals.append(info) + return info + + def define_cil_local(self, vname, cilname, vtype = None): + self.define_variable(vname, vtype) + self.cil_locals[vname] = cilname + + + def get_cil_local(self, vname): + if self.cil_locals.__contains__(vname): + return self.cil_locals[vname] + else: + return None + + def find_cil_local(self, vname, index=None): + locals = self.cil_locals.items() if index is None else itt.islice(self.cil_locals.items(), index) + try: + return next(cil_name for name, cil_name in locals if name == vname) + except StopIteration: + return self.parent.find_cil_local(vname, self.index) if (self.parent is not None) else None + + def find_variable(self, vname, index=None): + locals = self.locals if index is None else itt.islice( + self.locals, index) + try: + return next(x for x in locals if x.name == vname) + except StopIteration: + return self.parent.find_variable(vname, self.index) if (self.parent is not None) else None + + def is_defined(self, vname): + return self.find_variable(vname) is not None + + def is_defined_cil_local(self, vname): + return self.find_cil_local(vname ) is not None + + def is_local(self, vname): + return any(True for x in self.locals if x.name == vname) + + def remove_local(self, vname): + self.locals = [local for local in self.locals if local.name != vname] diff --git a/src/semantic/tools/type.py b/src/semantic/tools/type.py new file mode 100755 index 000000000..c47961aba --- /dev/null +++ b/src/semantic/tools/type.py @@ -0,0 +1,213 @@ +import itertools as itt +from .error import SemanticException +from .attribute import Attribute +from .methods import Method + +class Type: + def __init__(self, name: str): + self.name = name + self.sealed = False # indicates if this type is restricted for inheritance + self.attributes = [] + self.methods = {} + self.parent = None + self.tag = None + self.max_tag = None # biggest tag reachable in dfs from this type + + def set_parent(self, parent): + if self.parent is not None: + raise SemanticException(f'Parent type is already set for {self.name}.') + self.parent = parent + + def has_attr(self, name: str): + try: + attr_name = self.get_attribute(name) + except: + return False + else: + return True + + def get_attribute(self, name: str): + try: + return next(attr for attr in self.attributes if attr.name == name) + except StopIteration: + if self.parent is None: + raise SemanticException( + f'Attribute "{name}" is not defined in {self.name}.') + try: + return self.parent.get_attribute(name) + except SemanticException: + raise SemanticException( + f'Attribute "{name}" is not defined in {self.name}.') + + def define_attribute(self, name: str, typex): + if name == 'self': + raise SemanticException( + "'self' cannot be the name of an attribute") + try: + self.get_attribute(name) + except SemanticException: + attribute = Attribute(name, typex) + self.attributes.append(attribute) + return attribute + else: + raise SemanticException( + f'Attribute "{name}" is already defined in {self.name}.') + + def get_method(self, name: str): + try: + return self.methods[name] + except KeyError: + if self.parent is None: + raise SemanticException( + f'Method "{name}" is not defined in {self.name}.') + try: + return self.parent.get_method(name) + except SemanticException: + raise SemanticException( + f'Method "{name}" is not defined in {self.name}.') + + + def define_method(self, name: str, param_names: list, param_types: list, return_type): + try: + method = self.get_method(name) + except SemanticException: + method = self.methods[name] = Method( + name, param_names, param_types, return_type) + return method + else: + try: + self.methods[name] + except KeyError: + if method.return_type != return_type or method.param_types != param_types: + raise SemanticException( + f'Method "{name}" is already defined in {self.name} with a different signature') + else: + self.methods[name] = Method(name, param_names, param_types, return_type) + else: + raise SemanticException( + f'Method "{name}" is already defined in {self.name}') + + return method + + def get_all_attributes(self): + all_attributes = self.parent and self.parent.get_all_attributes() or [] + all_attributes += [(self.name, attr) for attr in self.attributes] + return all_attributes + + def get_all_methods(self): + all_methods = self.parent and self.parent.get_all_methods() or [] + all_methods += [(self.name, method) for method in self.methods] + return all_methods + + def conforms_to(self, other): + return other.bypass() or self == other or self.parent is not None and self.parent.conforms_to(other) + + def bypass(self): + return False + + def ancestors_path(self): + l = [] + l.append(self) + current_parent = self.parent + while (current_parent is not None): + l.append(current_parent) + current_parent = current_parent.parent + return l + + def join(self, other): + if self.name == other.name: + return self + + other_path = other.ancestors_path() + for p in self.ancestors_path(): + for o in other_path: + if o.name == p.name: + return p + return other + + def multiple_join(self, args): + least_type = self + + for t in args: + if isinstance(least_type, Error_Type) or isinstance(t, Error_Type): + least_type = Error_Type() + return least_type + least_type = least_type.join(t) + + return least_type + + def __str__(self): + output = f'type {self.name}' + parent = '' if self.parent is None else f' : {self.parent.name}' + output += parent + output += ' {' + output += '\n\t' if self.attributes or self.methods else '' + output += '\n\t'.join(str(x) for x in self.attributes) + output += '\n\t' if self.attributes else '' + output += '\n\t'.join(str(x) for x in self.methods.values()) + output += '\n' if self.methods else '' + output += '}\n' + return output + + def __repr__(self): + return str(self) + + +class Error_Type(Type): + def __init__(self): + Type.__init__(self, '') + + def conforms_to(self, other): + return True + + def bypass(self): + return True + + def __eq__(self, other): + return isinstance(other, Type) + + +class Object_Type(Type): + def __init__(self): + Type.__init__(self, 'Object') + + def bypass(self): + return True + + def __eq__(self, other): + return other.name == self.name or isinstance(other, Object_Type) + + +class IO_Type(Type): + def __init__(self): + Type.__init__(self, 'IO') + + def __eq__(self, other): + return other.name == self.name or isinstance(other, IO_Type) + + +class String_Type(Type): + def __init__(self): + Type.__init__(self, 'String') + self.sealed = True + + def __eq__(self, other): + return other.name == self.name or isinstance(other, String_Type) + + +class Int_Type(Type): + def __init__(self): + Type.__init__(self, 'Int') + self.sealed = True + + def __eq__(self, other): + return other.name == self.name or isinstance(other, Int_Type) + + +class Bool_Type(Type): + def __init__(self): + Type.__init__(self, 'Bool') + self.sealed = True + + def __eq__(self, other): + return other.name == self.name or isinstance(other, Bool_Type) diff --git a/src/semantic/tools/var.py b/src/semantic/tools/var.py new file mode 100755 index 000000000..8c72d63f8 --- /dev/null +++ b/src/semantic/tools/var.py @@ -0,0 +1,13 @@ +import itertools as itt + + +class VariableInfo: + def __init__(self, name, vtype): + self.name = name + self.type = vtype + + def __str__(self): + return f'{self.name} : {self.type.name}' + + def __repr__(self): + return str(self) \ No newline at end of file diff --git a/src/semantic/visitor/__init__.py b/src/semantic/visitor/__init__.py new file mode 100755 index 000000000..6da6a8b6f --- /dev/null +++ b/src/semantic/visitor/__init__.py @@ -0,0 +1,4 @@ +from .type_collector import TypeCollector +from .type_builder import TypeBuilder +from .type_checker import TypeChecker +#from .s import * \ No newline at end of file diff --git a/src/semantic/visitor/type_builder.py b/src/semantic/visitor/type_builder.py new file mode 100755 index 000000000..008e397b4 --- /dev/null +++ b/src/semantic/visitor/type_builder.py @@ -0,0 +1,148 @@ +from semantic.tools.error import SemanticError, SemanticException, circular_dependency_, attr_not_exist_, invalid_return_type_, param_not_exist_, inherits_builtin_type, main_method_not_exist_, Main_not_defined_ +from semantic.tools.type import Error_Type +from nodes import ProgramNode, ClassNode, ClassMethodNode, AttrInitNode, AttrDefNode +from semantic.visitor import visitor + + +class TypeBuilder: + def __init__(self, context, errors=[]): + self.context = context + self.current_type = None + self.errors = errors + self.sort = [] # topologic sort for types + self.visited = {key: False for key in self.context.graph.keys()} # types visited by dfs + + @visitor.on('node') + def visit(self, node): + pass + + @visitor.when(ProgramNode) + def visit(self, node): + self.topological_sort() + for t in self.sort: + if t not in ['Object', 'Int', 'String', 'Bool', 'IO']: + try: + class_node = self.context.classes[t] + except KeyError: + pass + else: + self.visit(class_node) + if not self.context.types.__contains__('Main'): + error = SemanticError(Main_not_defined_, 0, 0,'TypeError') + self.errors.append(error) + else: + if not self.context.types['Main'].methods.__contains__('main'): + main_node = self.context.classes['Main'] + error = SemanticError(main_method_not_exist_, main_node.row, main_node.col,'AttributeError') + self.errors.append(error) + + + @visitor.when(ClassNode) + def visit(self, node): + try: + self.current_type = self.context.get_type(node.name) + if node.parent: + try: + parent = self.context.get_type(node.parent) + except SemanticException as e: + error = SemanticError(e.text, node.row, node.col, 'TypeError') + self.errors.append(error) + parent = Error_Type() + self.current_type.set_parent(parent) + else: + if parent.name in ['Int', 'String', 'Bool']: + parent = Error_Type() + error = SemanticError(inherits_builtin_type.replace("%s", node.name, 1), node.row, node.col) + self.errors.append(error) + self.current_type.set_parent(parent) + + except SemanticException as e: + error = SemanticError(e.text, node.row, node.col, 'TypeError') + self.errors.append(error) + + for f in node.features: + self.visit(f) + + @visitor.when(ClassMethodNode) + def visit(self, node): + try: + param_names = [] + param_types = [] + for p in node.params: + param_names.append(p.name) + try: + param_type = self.context.get_type(p.param_type) + except SemanticException: + param_type = Error_Type() + error = SemanticError(param_not_exist_.replace("%s", p.name, 1).replace("%s", node.name, 1).replace("%s", self.current_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + param_types.append(param_type) + + try: + return_type = self.context.get_type(node.return_type) + except SemanticException: + return_type = Error_Type() + error = SemanticError(invalid_return_type_.replace( "%s", node.return_type, 1).replace("%s", node.name, 1).replace("%s", self.current_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + self.current_type.define_method( + node.name, param_names, param_types, return_type) + except SemanticException as e: + error = SemanticError(e.text, node.row, node.col) + self.errors.append(error) + + @visitor.when(AttrInitNode) + def visit(self, node): + try: + attr_type = self.context.get_type(node.attr_type) + except SemanticException: + attr_type = Error_Type() + error = SemanticError(attr_not_exist_.replace( "%s", node.name, 1).replace("%s", self.current_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + try: + self.current_type.define_attribute(node.name, attr_type) + except SemanticException as e: + error = SemanticError(e.text, node.row, node.col) + self.errors.append(error) + + @visitor.when(AttrDefNode) + def visit(self, node): + try: + attr_type = self.context.get_type(node.attr_type) + except SemanticException: + attr_type = Error_Type() + error = SemanticError(attr_not_exist_.replace( "%s", node.name, 1).replace("%s", self.current_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + try: + self.current_type.define_attribute(node.name, attr_type) + except SemanticException as e: + error = SemanticError(e.text, node.row, node.col) + self.errors.append(error) + + + def dfs(self, actual_type): + self.sort.append(actual_type) + self.visited[actual_type] = True + for children in self.context.graph[actual_type]: + self.dfs(children) + + def topological_sort(self): + indeg = {key: 0 for key in self.context.graph.keys()} + for u in self.context.graph.keys(): + for v in self.context.graph[u]: + indeg[v] += 1 + + roots = [key for key in indeg.keys() if indeg[key] == 0] + + for v in roots: + self.dfs(v) + + visited = [x for x in self.visited] + visited.reverse() + for t in visited: + if not self.visited[t] and not t in ['Object', 'Int', 'String', 'Bool', 'IO']: + class_node = self.context.classes[t] + error = SemanticError(circular_dependency_.replace('%s', t, 1), class_node.row, class_node.col) + self.errors.append(error) + break diff --git a/src/semantic/visitor/type_checker.py b/src/semantic/visitor/type_checker.py new file mode 100755 index 000000000..1258681fe --- /dev/null +++ b/src/semantic/visitor/type_checker.py @@ -0,0 +1,485 @@ +from semantic.tools.error import incompatible_types_, param_wrong_signature, invalid_SELFTYPE, self_name, incorrect_count_params_, read_only_, var_not_defined_, other_branch_declared_, wrong_type_, self_let_, SemanticError, SemanticException +from semantic.tools.type import Error_Type +from semantic.tools.scope import Scope +from nodes import * +from semantic.visitor import visitor + + +class TypeChecker: + def __init__(self, context, errors=[]): + self.context = context + self.current_type = None + self.current_method = None + self.errors = errors + + @visitor.on('node') + def visit(self, node, scope): + pass + + @visitor.when(ProgramNode) + def visit(self, node, scope=None): + scope = Scope() + for c in node.classes: + self.visit(c, scope.create_child()) + return scope + + @visitor.when(ClassNode) + def visit(self, node, scope): + self.current_type = self.context.get_type(node.name) + scope.define_variable('self', self.current_type) + + attributes = self.current_type.get_all_attributes() + for _, attr in attributes: + if attr.type.name == 'SELF_TYPE': + scope.define_variable(attr.name, self.current_type) + else: + scope.define_variable(attr.name, attr.type) + + for feature in node.features: + self.visit(feature, scope) + + @visitor.when(AttrInitNode) + def visit(self, node, scope): + try: + node_type = self.current_type.get_attribute(node.name).type + except SemanticException as ex: + node_type = Error_Type() + error = SemanticError(ex.text, node.row, node.col, 'AttributeError') + self.errors.append(error) + + self.visit(node.expression, scope) + expr_type = node.expression.expr_type + + if not expr_type.conforms_to(node_type): + error = SemanticError(incompatible_types_.replace( + '%s', expr_type.name, 1).replace('%s', node_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + @visitor.when(AttrDefNode) + def visit(self, node, scope): + try: + self.current_type.get_attribute(node.name) + except SemanticException as ex: + error = SemanticError(ex.text, node.row, node.col, 'AttributeError') + self.errors.append(error) + + @visitor.when(ClassMethodNode) + def visit(self, node, scope): + try: + self.current_method = self.current_type.get_method(node.name) + except SemanticException as ex: + error = SemanticError(ex.text, node.row, node.col, 'AttributeError') + self.errors.append(error) + + method_scope = scope.create_child() + + for param in node.params: + self.visit(param, method_scope) + + self.visit(node.expression, method_scope) + + expr_type = node.expression.expr_type + + return_type = self.current_method.return_type + + if expr_type.name == 'SELF_TYPE': + if not self.current_type.conforms_to(return_type): + error = SemanticError(incompatible_types_.replace( + '%s', expr_type.name, 1).replace('%s', self.current_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + elif not expr_type.conforms_to(return_type): + error = SemanticError(incompatible_types_.replace( + '%s', expr_type.name, 1).replace('%s', return_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + + @visitor.when(FormalParamNode) + def visit(self, node, scope): + try: + node_type = self.context.get_type(node.param_type) + if node_type.name == 'SELF_TYPE': + node_type = Error_Type() + error = SemanticError(invalid_SELFTYPE, node.row, node.col) + self.errors.append(error) + + except SemanticException as ex: + node_type = Error_Type() + error = SemanticError(ex.text, node.row, node.col, 'TypeError') + self.errors.append(error) + + if node.name == 'self': + error = SemanticError(self_name, node.row, node.col) + self.errors.append(error) + elif not scope.is_local(node.name): + scope.define_variable(node.name, node_type) + else: + error = SemanticError(param_wrong_signature.replace( + '%s', node.name, 1).replace('%s', self.current_method.name, 1), node.row, node.col) + self.errors.append(error) + + @visitor.when(DynamicCallNode) + def visit(self, node, scope): + self.visit(node.obj, scope) + instance_type = node.obj.expr_type + + if instance_type.name == 'SELF_TYPE': + instance_type = scope.find_variable('self').type + try: + instance_method = instance_type.get_method(node.method) + + if len(node.args) == len(instance_method.param_types): + for arg, param_type in zip(node.args, instance_method.param_types): + self.visit(arg, scope) + arg_type = arg.expr_type + + if not arg_type.conforms_to(param_type): + error = SemanticError(incompatible_types_.replace( + '%s', arg_type.name, 1).replace('%s', param_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + else: + error = SemanticError(incorrect_count_params_.replace("%s", instance_method.name, 1).replace("%s", instance_type.name, 1).replace("%s", str(len(instance_method.param_types)), 1), node.row, node.col) + self.errors.append(error) + + if instance_method.return_type.name == 'SELF_TYPE': + node_type = instance_type + else: + node_type = instance_method.return_type + + except SemanticException as ex: + node_type = Error_Type() + error = SemanticError(ex.text, node.row, node.col, 'AttributeError') + self.errors.append(error) + + node.expr_type = node_type + + @visitor.when(StaticCallNode) + def visit(self, node, scope): + self.visit(node.obj, scope) + instance_type = node.obj.expr_type + + try: + static_type = self.context.get_type(node.static_type) + except SemanticException as ex: + static_type = Error_Type() + error = SemanticError(ex.text, node.row, node.col, 'TypeError') + self.errors.append(error) + + if not instance_type.conforms_to(static_type): + error = SemanticError(incompatible_types_.replace( + '%s', instance_type.name, 1).replace('%s', static_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + try: + method = static_type.get_method(node.method) + + if len(node.args) == len(method.param_types): + for arg, param_type in zip(node.args, method.param_types): + self.visit(arg, scope) + arg_type = arg.expr_type + + if not arg_type.conforms_to(param_type): + error = SemanticError(incompatible_types_.replace( + '%s', arg_type.name, 1).replace('%s', param_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + else: + error = SemanticError( incorrect_count_params_.replace('%s', method.name, 1).replace('%s', static_type.name, 1).replace('%s', str(len(method.param_types)), 1), node.row, node.col) + self.errors.append(error) + + if method.return_type.name == 'SELF_TYPE': + node_type = instance_type + node_type = method.return_type + + except SemanticException as ex: + error = SemanticError(ex.text, node.row, node.col, 'AttributeError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(AssignNode) + def visit(self, node, scope): + self.visit(node.expression, scope) + node_type = node.expression.expr_type + + if scope.is_defined(node.name): + var = scope.find_variable(node.name) + + if var.name == 'self': + error = SemanticError(read_only_, node.row, node.col) + self.errors.append(error) + node_type = Error_Type() + elif not node_type.conforms_to(var.type): + error = SemanticError(incompatible_types_.replace( + '%s', node_type.name, 1).replace('%s', var.type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + else: + error = SemanticError(var_not_defined_.replace( + '%s', node.name, 1), node.row, node.col, 'NameError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(CaseNode) + def visit(self, node, scope): + self.visit(node.expression, scope) + action_expr_types = [] + var_declared = [] + + for action in node.act_list: + var_type = action.act_type + if not var_type in var_declared: + var_declared.append(var_type) + else: + error = SemanticError(other_branch_declared_.replace("%s", var_type, 1), action.row, action.col) + self.errors.append(error) + self.visit(action, scope.create_child()) + action_expr_types.append(action.expr_type) + + t_0 = action_expr_types.pop(0) + node_type = t_0.multiple_join(action_expr_types) + + node.expr_type = node_type + + @visitor.when(ActionNode) + def visit(self, node, scope): + try: + action_type = self.context.get_type(node.act_type) + except SemanticException as ex: + error = SemanticError(ex.text, node.row, node.col , 'TypeError') + self.errors.append(error) + action_type = Error_Type() + + scope.define_variable(node.name, action_type) + + self.visit(node.body, scope) + node.expr_type = node.body.expr_type + + @visitor.when(IfNode) + def visit(self, node, scope): + self.visit(node.predicate, scope) + predicate_type = node.predicate.expr_type + + if predicate_type.name != 'Bool': + error = SemanticError(wrong_type_.replace('%s', 'Bool', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + self.visit(node.then_expr, scope) + then_type = node.then_expr.expr_type + self.visit(node.else_expr, scope) + else_type = node.else_expr.expr_type + + node.expr_type = then_type.join(else_type) + + + @visitor.when(WhileNode) + def visit(self, node, scope): + self.visit(node.predicate, scope) + predicate_type = node.predicate.expr_type + + if predicate_type.name != 'Bool': + error = SemanticError(wrong_type_.replace('%s', 'Bool', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + self.visit(node.expression, scope) + + node.expr_type = self.context.get_type('Object') + + @visitor.when(BlockNode) + def visit(self, node, scope): + for expr in node.expr_list: + self.visit(expr, scope) + + node.expr_type = node.expr_list[-1].expr_type + + @visitor.when(LetNode) + def visit(self, node, scope): + let_scope = scope.create_child() + + for var in node.init_list: + self.visit(var, let_scope) + + self.visit(node.body, let_scope) + + node.expr_type = node.body.expr_type + + @visitor.when(LetInitNode) + def visit(self, node, scope): + try: + node_type = self.context.get_type(node.let_type) + if node_type.name == 'SELF_TYPE': + node_type = scope.find_variable('self').type + except SemanticException as ex: + error = SemanticError(ex.text, node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = ErrorType() + + self.visit(node.expression, scope) + expr_type = node.expression.expr_type + + if not expr_type.conforms_to(node_type): + error = SemanticError(incompatible_types_.replace( + '%s', expr_type.name, 1).replace('%s', node_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + + if node.name == 'self': + error = SemanticError(self_let_, node.row, node.col) + self.errors.append(error) + else: + if scope.is_local(node.name): + scope.remove_local(node.name) + + scope.define_variable(node.name, node_type) + + @visitor.when(LetDefNode) + def visit(self, node, scope): + try: + node_type = self.context.get_type(node.let_type) + if node_type.name == 'SELF_TYPE': + node_type = scope.find_variable('self').type + except SemanticException as ex: + error = SemanticError(ex.text, node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + if node.name == 'self': + error = SemanticError(self_let_, node.row, node.col) + self.errors.append(error) + else: + if scope.is_local(node.name): + scope.remove_local(node.name) + + scope.define_variable(node.name, node_type) + + @visitor.when(NewNode) + def visit(self, node, scope): + try: + node_type = self.context.get_type(node.new_type) + if node_type.name == 'SELF_TYPE': + node_type = scope.find_variable('self').type + except SemanticException as ex: + error = SemanticError(ex.text, node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(IsVoidNode) + def visit(self, node, scope): + self.visit(node.expression, scope) + node.expr_type = self.context.get_type('Bool') + + @visitor.when(ArithBinOpNode) + def visit(self, node, scope): + node_type = self.context.get_type('Int') + + self.visit(node.left, scope) + left_type = node.left.expr_type + + if left_type.name != 'Int': + error = SemanticError(wrong_type_.replace('%s', 'Int', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + self.visit(node.right, scope) + right_type = node.right.expr_type + + if right_type.name != 'Int': + error = SemanticError(wrong_type_.replace('%s', 'Int', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(LogicBinOpNode) + def visit(self, node, scope): + node_type = self.context.get_type('Bool') + + self.visit(node.left, scope) + left_type = node.left.expr_type + + if left_type.name != 'Int': + error = SemanticError(wrong_type_.replace('%s', 'Int', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + self.visit(node.right, scope) + right_type = node.right.expr_type + + if right_type.name != 'Int': + error = SemanticError(wrong_type_.replace('%s', 'Int', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(NotNode) + def visit(self, node, scope): + node_type = self.context.get_type('Bool') + + self.visit(node.expression, scope) + expr_type = node.expression.expr_type + + if expr_type.name != 'Bool': + error = SemanticError(wrong_type_.replace('%s', 'Bool', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(LogicNotNode) + def visit(self, node, scope): + node_type = self.context.get_type('Int') + + self.visit(node.expression, scope) + expr_type = node.expression.expr_type + + if expr_type.name != 'Int': + error = SemanticError(wrong_type_.replace('%s', 'Int', 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(EqualsNode) + def visit(self, node, scope): + node_type = self.context.get_type('Bool') + + self.visit(node.left, scope) + left_type = node.left.expr_type + + self.visit(node.right, scope) + right_type = node.right.expr_type + + if (left_type.name in ['Int', 'Bool', 'String'] or right_type.name in ['Int', 'Bool', 'String']) and left_type.name != right_type.name: + error = SemanticError(wrong_type_.replace('%s', left_type.name, 1), node.row, node.col, 'TypeError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + + @visitor.when(IdNode) + def visit(self, node, scope): + if scope.is_defined(node.name): + node_type = scope.find_variable(node.name).type + else: + error = SemanticError(var_not_defined_.replace( + '%s', node.name, 1), node.row, node.col, 'NameError') + self.errors.append(error) + node_type = Error_Type() + + node.expr_type = node_type + + @visitor.when(IntegerNode) + def visit(self, node, scope): + node.expr_type = self.context.get_type('Int') + + @visitor.when(StringNode) + def visit(self, node, scope): + node.expr_type = self.context.get_type('String') + + @visitor.when(BooleanNode) + def visit(self, node, scope): + node.expr_type = self.context.get_type('Bool') diff --git a/src/semantic/visitor/type_collector.py b/src/semantic/visitor/type_collector.py new file mode 100755 index 000000000..cef246914 --- /dev/null +++ b/src/semantic/visitor/type_collector.py @@ -0,0 +1,32 @@ +from semantic.tools.context import Context +from semantic.tools.error import SemanticError, SemanticException +from nodes import ProgramNode, ClassNode +from semantic.visitor import visitor + +class TypeCollector(object): + def __init__(self, errors=[]): + self.context = None + self.errors = errors + + @visitor.on('node') + def visit(self, node): + pass + + @visitor.when(ProgramNode) + def visit(self, node): + self.context = Context() + self.context.create_builtin_types() + for dec in node.classes: + if dec.name in ['Object', 'Int', 'String', 'Bool', 'IO']: + error = SemanticError("Is an error redefine a builint type", dec.row, dec.col) + self.errors.append(error) + else: + self.visit(dec) + + @visitor.when(ClassNode) + def visit(self, node): + try: + self.context.create_type(node) + except SemanticException as e: + error = SemanticError(e.text, node.row, node.col) + self.errors.append(error) diff --git a/src/semantic/visitor/visitor.py b/src/semantic/visitor/visitor.py new file mode 100755 index 000000000..f3acbd02b --- /dev/null +++ b/src/semantic/visitor/visitor.py @@ -0,0 +1,58 @@ +import inspect + +__all__ = ['on', 'when'] + +def on(param_name): + def f(fn): + dispatcher = Dispatcher(param_name, fn) + return dispatcher + return f + + +def when(param_type): + def f(fn): + frame = inspect.currentframe().f_back + func_name = fn.func_name if 'func_name' in dir(fn) else fn.__name__ + dispatcher = frame.f_locals[func_name] + if not isinstance(dispatcher, Dispatcher): + dispatcher = dispatcher.dispatcher + dispatcher.add_target(param_type, fn) + def ff(*args, **kw): + return dispatcher(*args, **kw) + ff.dispatcher = dispatcher + return ff + return f + + +class Dispatcher(object): + def __init__(self, param_name, fn): + frame = inspect.currentframe().f_back.f_back + top_level = frame.f_locals == frame.f_globals + self.param_index = self.__argspec(fn).args.index(param_name) + self.param_name = param_name + self.targets = {} + + def __call__(self, *args, **kw): + typ = args[self.param_index].__class__ + d = self.targets.get(typ) + if d is not None: + return d(*args, **kw) + else: + issub = issubclass + t = self.targets + ks = t.keys() + ans = [t[k](*args, **kw) for k in ks if issub(typ, k)] + if len(ans) == 1: + return ans.pop() + return ans + + def add_target(self, typ, target): + self.targets[typ] = target + + @staticmethod + def __argspec(fn): + # Support for Python 3 type hints requires inspect.getfullargspec + if hasattr(inspect, 'getfullargspec'): + return inspect.getfullargspec(fn) + else: + return inspect.getargspec(fn) diff --git a/src/yacctab.py b/src/yacctab.py index b5ca3c714..fd9124707 100644 --- a/src/yacctab.py +++ b/src/yacctab.py @@ -6,9 +6,9 @@ _lr_method = 'LALR' -_lr_signature = 'rightASSIGNrightNOTnonassocLESSLESSEQEQUALleftPLUSMINUSleftMULTIPLYDIVIDErightISVOIDrightNOXrightARROBArightDOTARROBA ARROW ASSIGN BOOLEAN BOOL_TYPE CASE CLASS COLON COMMA DIVIDE DOT ELSE EQUAL ESAC FALSE FI ID IF IN INHERITS INTEGER INT_TYPE IO_TYPE ISVOID LBRACE LESS LESSEQ LET LOOP LPAREN LexicographicError MAIN_TYPE MINUS MULTIPLY NEW NOT NOX OBJECT_TYPE OF PLUS POOL RBRACE RPAREN SELF_TYPE SEMIC STRING STRING_TYPE THEN TRUE TYPE WHILE\n program : class_list\n \n class_list : class_list class SEMIC\n | class SEMIC\n \n class : CLASS TYPE LBRACE feature_opt RBRACE\n \n class : CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE\n \n feature_list : feature_list feature SEMIC\n | feature SEMIC\n \n feature_opt : feature_list\n | empty\n \n feature : ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE\n \n feature : ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE\n \n feature : attr_init\n \n attr_init : ID COLON TYPE ASSIGN expr \n | attr_def\n \n attr_def : ID COLON TYPE\n \n action_list : action_list action\n | action\n \n action : ID COLON TYPE ARROW expr SEMIC\n \n let_var : let_init\n | let_var COMMA let_init\n \n let_init : ID COLON TYPE ASSIGN expr \n | let_def\n \n let_def : ID COLON TYPE\n \n formal_param_list : formal_param_list COMMA formal_param\n | formal_param\n \n formal_param : ID COLON TYPE\n \n args_list : args_list COMMA expr\n | expr\n \n args_list_opt : args_list\n | empty\n \n expr : expr DOT ID LPAREN args_list_opt RPAREN\n \n expr : expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN\n \n expr : ID LPAREN args_list_opt RPAREN\n \n expr : ID ASSIGN expr\n \n expr : IF expr THEN expr ELSE expr FI\n \n expr : WHILE expr LOOP expr POOL\n \n block_list : block_list expr SEMIC\n | expr SEMIC\n \n expr : LBRACE block_list RBRACE\n \n expr : let_expr\n \n let_expr : LET let_var IN expr\n \n expr : CASE expr OF action_list ESAC\n \n expr : NEW TYPE\n \n expr : ISVOID expr\n \n expr : ID\n \n expr : INTEGER\n \n expr : STRING\n \n expr : TRUE \n | FALSE\n \n expr : expr PLUS expr\n | expr MINUS expr\n | expr MULTIPLY expr\n | expr DIVIDE expr\n | expr LESS expr\n | expr LESSEQ expr\n | expr EQUAL expr\n \n expr : NOX expr\n | NOT expr\n \n expr : LPAREN expr RPAREN\n \n empty :\n ' +_lr_signature = 'rightASSIGNrightNOTnonassocLESSLESSEQEQUALleftPLUSMINUSleftMULTIPLYDIVIDErightISVOIDrightNOXrightARROBArightDOTARROBA ARROW ASSIGN BOOLEAN BOOL_TYPE CASE CLASS COLON COMMA DIVIDE DOT ELSE EQUAL ESAC FALSE FI ID IF IN INHERITS INTEGER INT_TYPE IO_TYPE ISVOID LBRACE LESS LESSEQ LET LOOP LPAREN LexicographicError MAIN_TYPE MINUS MULTIPLY NEW NOT NOX OBJECT_TYPE OF PLUS POOL RBRACE RPAREN SELF_TYPE SEMIC STRING STRING_TYPE THEN TRUE TYPE WHILE\n program : class_list\n \n class_list : class_list class SEMIC\n | class SEMIC\n \n class : CLASS TYPE LBRACE feature_opt RBRACE\n \n class : CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE\n \n feature_list : feature_list feature SEMIC\n | feature SEMIC\n \n feature_opt : feature_list\n | empty\n \n feature : ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE\n \n feature : ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE\n \n feature : attr_init\n \n attr_init : ID COLON TYPE ASSIGN expr \n | attr_def\n \n attr_def : ID COLON TYPE\n \n action_list : action_list action\n | action\n \n let_var : let_init\n | let_var COMMA let_init\n \n let_init : ID COLON TYPE ASSIGN expr \n | let_def\n \n let_def : ID COLON TYPE\n \n formal_param_list : formal_param_list COMMA formal_param\n | formal_param\n \n formal_param : ID COLON TYPE\n \n args_list : args_list COMMA expr\n | expr\n \n args_list_opt : args_list\n | empty\n \n action : ID COLON TYPE ARROW expr SEMIC\n \n expr : expr DOT ID LPAREN args_list_opt RPAREN\n \n expr : expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN\n \n expr : ID LPAREN args_list_opt RPAREN\n \n expr : ID ASSIGN expr\n \n expr : IF expr THEN expr ELSE expr FI\n \n expr : WHILE expr LOOP expr POOL\n \n block_list : block_list expr SEMIC\n | expr SEMIC\n \n expr : LBRACE block_list RBRACE\n \n expr : let_expr\n \n let_expr : LET let_var IN expr\n \n expr : CASE expr OF action_list ESAC\n \n expr : NEW TYPE\n \n expr : ISVOID expr\n \n expr : ID\n \n expr : INTEGER\n \n expr : STRING\n \n expr : TRUE \n | FALSE\n \n expr : expr PLUS expr\n | expr MINUS expr\n | expr MULTIPLY expr\n | expr DIVIDE expr\n | expr LESS expr\n | expr LESSEQ expr\n | expr EQUAL expr\n \n expr : NOX expr\n | NOT expr\n \n expr : LPAREN expr RPAREN\n \n empty :\n ' -_lr_action_items = {'CLASS':([0,2,6,8,],[4,4,-3,-2,]),'$end':([1,2,6,8,],[0,-1,-3,-2,]),'SEMIC':([3,5,14,16,17,19,20,30,37,42,43,48,52,53,54,55,76,78,79,80,81,92,95,96,97,98,99,100,101,102,105,106,113,114,124,127,132,133,137,143,145,146,],[6,8,21,-12,-14,-4,25,-15,-5,-45,-13,-40,-46,-47,-48,-49,107,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,120,-11,-33,-41,-10,-36,-42,-31,-35,-32,147,]),'TYPE':([4,10,23,32,35,39,50,64,111,135,],[7,18,30,38,41,59,78,94,126,140,]),'LBRACE':([7,18,36,41,44,45,46,47,49,51,56,57,59,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[9,24,47,60,47,47,47,47,47,47,47,47,86,47,47,47,47,47,47,47,47,47,47,47,47,47,47,-38,47,47,47,-37,47,47,47,47,]),'INHERITS':([7,],[10,]),'RBRACE':([9,11,12,13,21,24,25,31,42,48,52,53,54,55,75,78,79,80,81,87,92,95,96,97,98,99,100,101,102,105,107,112,114,120,124,132,133,137,143,145,],[-60,19,-8,-9,-7,-60,-6,37,-45,-40,-46,-47,-48,-49,105,-43,-44,-57,-58,113,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-38,127,-33,-37,-41,-36,-42,-31,-35,-32,]),'ID':([9,12,21,22,24,25,34,36,44,45,46,47,49,51,56,57,58,60,61,62,63,65,66,67,68,69,70,71,75,86,103,104,107,108,109,110,115,116,117,120,121,122,131,134,136,138,144,147,],[15,15,-7,26,15,-6,26,42,42,42,42,42,42,42,42,42,84,42,42,42,93,42,42,42,42,42,42,42,42,42,42,42,-38,123,42,84,42,42,130,-37,123,-17,42,-16,42,42,42,-18,]),'LPAREN':([15,36,42,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,93,103,104,107,109,115,116,120,130,131,136,138,144,],[22,44,61,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,116,44,44,-38,44,44,44,-37,138,44,44,44,44,]),'COLON':([15,26,28,33,84,123,],[23,32,35,39,111,135,]),'RPAREN':([22,27,29,38,40,42,48,52,53,54,55,61,72,78,79,80,81,88,89,90,91,92,95,96,97,98,99,100,101,102,105,114,116,124,128,129,132,133,137,138,142,143,145,],[28,33,-25,-26,-24,-45,-40,-46,-47,-48,-49,-60,102,-43,-44,-57,-58,114,-29,-30,-28,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-60,-41,-27,137,-36,-42,-31,-60,145,-35,-32,]),'COMMA':([27,29,38,40,42,48,52,53,54,55,78,79,80,81,82,83,85,89,91,92,95,96,97,98,99,100,101,102,105,114,124,125,126,128,132,133,137,141,143,145,],[34,-25,-26,-24,-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,110,-19,-22,115,-28,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-20,-23,-27,-36,-42,-31,-21,-35,-32,]),'ASSIGN':([30,42,126,],[36,62,136,]),'IF':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-38,45,45,45,-37,45,45,45,45,]),'WHILE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,-38,46,46,46,-37,46,46,46,46,]),'CASE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,-38,49,49,49,-37,49,49,49,49,]),'NEW':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,-38,50,50,50,-37,50,50,50,50,]),'ISVOID':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,-38,51,51,51,-37,51,51,51,51,]),'INTEGER':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,-38,52,52,52,-37,52,52,52,52,]),'STRING':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,-38,53,53,53,-37,53,53,53,53,]),'TRUE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,-38,54,54,54,-37,54,54,54,54,]),'FALSE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,-38,55,55,55,-37,55,55,55,55,]),'NOX':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,-38,56,56,56,-37,56,56,56,56,]),'NOT':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,-38,57,57,57,-37,57,57,57,57,]),'LET':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,-38,58,58,58,-37,58,58,58,58,]),'DOT':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,94,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,63,-40,-46,-47,-48,-49,63,63,63,63,63,-43,63,63,63,63,63,63,117,63,63,63,63,63,63,63,-59,-39,63,63,-33,63,63,63,63,-36,-42,-31,63,63,-35,-32,63,]),'ARROBA':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,64,-40,-46,-47,-48,-49,64,64,64,64,64,-43,64,64,64,64,64,64,64,64,64,64,64,64,64,-59,-39,64,64,-33,64,64,64,64,-36,-42,-31,64,64,-35,-32,64,]),'PLUS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,65,-40,-46,-47,-48,-49,65,65,65,65,65,-43,-44,-57,65,65,65,65,-50,-51,-52,-53,65,65,65,-59,-39,65,65,-33,65,65,65,65,-36,-42,-31,65,65,-35,-32,65,]),'MINUS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,66,-40,-46,-47,-48,-49,66,66,66,66,66,-43,-44,-57,66,66,66,66,-50,-51,-52,-53,66,66,66,-59,-39,66,66,-33,66,66,66,66,-36,-42,-31,66,66,-35,-32,66,]),'MULTIPLY':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,67,-40,-46,-47,-48,-49,67,67,67,67,67,-43,-44,-57,67,67,67,67,67,67,-52,-53,67,67,67,-59,-39,67,67,-33,67,67,67,67,-36,-42,-31,67,67,-35,-32,67,]),'DIVIDE':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,68,-40,-46,-47,-48,-49,68,68,68,68,68,-43,-44,-57,68,68,68,68,68,68,-52,-53,68,68,68,-59,-39,68,68,-33,68,68,68,68,-36,-42,-31,68,68,-35,-32,68,]),'LESS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,69,-40,-46,-47,-48,-49,69,69,69,69,69,-43,-44,-57,69,69,69,69,-50,-51,-52,-53,None,None,None,-59,-39,69,69,-33,69,69,69,69,-36,-42,-31,69,69,-35,-32,69,]),'LESSEQ':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,70,-40,-46,-47,-48,-49,70,70,70,70,70,-43,-44,-57,70,70,70,70,-50,-51,-52,-53,None,None,None,-59,-39,70,70,-33,70,70,70,70,-36,-42,-31,70,70,-35,-32,70,]),'EQUAL':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,71,-40,-46,-47,-48,-49,71,71,71,71,71,-43,-44,-57,71,71,71,71,-50,-51,-52,-53,None,None,None,-59,-39,71,71,-33,71,71,71,71,-36,-42,-31,71,71,-35,-32,71,]),'THEN':([42,48,52,53,54,55,73,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,103,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'LOOP':([42,48,52,53,54,55,74,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,104,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'OF':([42,48,52,53,54,55,77,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,108,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'ELSE':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,118,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,131,-41,-36,-42,-31,-35,-32,]),'POOL':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,119,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,132,-41,-36,-42,-31,-35,-32,]),'FI':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,139,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,143,-35,-32,]),'IN':([42,48,52,53,54,55,78,79,80,81,82,83,85,92,95,96,97,98,99,100,101,102,105,114,124,125,126,132,133,137,141,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,109,-19,-22,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-20,-23,-36,-42,-31,-21,-35,-32,]),'ESAC':([121,122,134,147,],[133,-17,-16,-18,]),'ARROW':([140,],[144,]),} +_lr_action_items = {'CLASS':([0,2,6,8,],[4,4,-3,-2,]),'$end':([1,2,6,8,],[0,-1,-3,-2,]),'SEMIC':([3,5,14,16,17,19,20,30,37,42,43,48,52,53,54,55,76,78,79,80,81,92,95,96,97,98,99,100,101,102,105,106,113,114,124,127,132,133,137,143,145,146,],[6,8,21,-12,-14,-4,25,-15,-5,-45,-13,-40,-46,-47,-48,-49,107,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,120,-11,-33,-41,-10,-36,-42,-31,-35,-32,147,]),'TYPE':([4,10,23,32,35,39,50,64,111,135,],[7,18,30,38,41,59,78,94,126,140,]),'LBRACE':([7,18,36,41,44,45,46,47,49,51,56,57,59,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[9,24,47,60,47,47,47,47,47,47,47,47,86,47,47,47,47,47,47,47,47,47,47,47,47,47,47,-38,47,47,47,-37,47,47,47,47,]),'INHERITS':([7,],[10,]),'RBRACE':([9,11,12,13,21,24,25,31,42,48,52,53,54,55,75,78,79,80,81,87,92,95,96,97,98,99,100,101,102,105,107,112,114,120,124,132,133,137,143,145,],[-60,19,-8,-9,-7,-60,-6,37,-45,-40,-46,-47,-48,-49,105,-43,-44,-57,-58,113,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-38,127,-33,-37,-41,-36,-42,-31,-35,-32,]),'ID':([9,12,21,22,24,25,34,36,44,45,46,47,49,51,56,57,58,60,61,62,63,65,66,67,68,69,70,71,75,86,103,104,107,108,109,110,115,116,117,120,121,122,131,134,136,138,144,147,],[15,15,-7,26,15,-6,26,42,42,42,42,42,42,42,42,42,84,42,42,42,93,42,42,42,42,42,42,42,42,42,42,42,-38,123,42,84,42,42,130,-37,123,-17,42,-16,42,42,42,-30,]),'LPAREN':([15,36,42,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,93,103,104,107,109,115,116,120,130,131,136,138,144,],[22,44,61,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,116,44,44,-38,44,44,44,-37,138,44,44,44,44,]),'COLON':([15,26,28,33,84,123,],[23,32,35,39,111,135,]),'RPAREN':([22,27,29,38,40,42,48,52,53,54,55,61,72,78,79,80,81,88,89,90,91,92,95,96,97,98,99,100,101,102,105,114,116,124,128,129,132,133,137,138,142,143,145,],[28,33,-24,-25,-23,-45,-40,-46,-47,-48,-49,-60,102,-43,-44,-57,-58,114,-28,-29,-27,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-60,-41,-26,137,-36,-42,-31,-60,145,-35,-32,]),'COMMA':([27,29,38,40,42,48,52,53,54,55,78,79,80,81,82,83,85,89,91,92,95,96,97,98,99,100,101,102,105,114,124,125,126,128,132,133,137,141,143,145,],[34,-24,-25,-23,-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,110,-18,-21,115,-27,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-19,-22,-26,-36,-42,-31,-20,-35,-32,]),'ASSIGN':([30,42,126,],[36,62,136,]),'IF':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-38,45,45,45,-37,45,45,45,45,]),'WHILE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,-38,46,46,46,-37,46,46,46,46,]),'CASE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,-38,49,49,49,-37,49,49,49,49,]),'NEW':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,-38,50,50,50,-37,50,50,50,50,]),'ISVOID':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,-38,51,51,51,-37,51,51,51,51,]),'INTEGER':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,-38,52,52,52,-37,52,52,52,52,]),'STRING':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,-38,53,53,53,-37,53,53,53,53,]),'TRUE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,-38,54,54,54,-37,54,54,54,54,]),'FALSE':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,-38,55,55,55,-37,55,55,55,55,]),'NOX':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,-38,56,56,56,-37,56,56,56,56,]),'NOT':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,-38,57,57,57,-37,57,57,57,57,]),'LET':([36,44,45,46,47,49,51,56,57,60,61,62,65,66,67,68,69,70,71,75,86,103,104,107,109,115,116,120,131,136,138,144,],[58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,-38,58,58,58,-37,58,58,58,58,]),'DOT':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,94,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,63,-40,-46,-47,-48,-49,63,63,63,63,63,-43,63,63,63,63,63,63,117,63,63,63,63,63,63,63,-59,-39,63,63,-33,63,63,63,63,-36,-42,-31,63,63,-35,-32,63,]),'ARROBA':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,64,-40,-46,-47,-48,-49,64,64,64,64,64,-43,64,64,64,64,64,64,64,64,64,64,64,64,64,-59,-39,64,64,-33,64,64,64,64,-36,-42,-31,64,64,-35,-32,64,]),'PLUS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,65,-40,-46,-47,-48,-49,65,65,65,65,65,-43,-44,-57,65,65,65,65,-50,-51,-52,-53,65,65,65,-59,-39,65,65,-33,65,65,65,65,-36,-42,-31,65,65,-35,-32,65,]),'MINUS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,66,-40,-46,-47,-48,-49,66,66,66,66,66,-43,-44,-57,66,66,66,66,-50,-51,-52,-53,66,66,66,-59,-39,66,66,-33,66,66,66,66,-36,-42,-31,66,66,-35,-32,66,]),'MULTIPLY':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,67,-40,-46,-47,-48,-49,67,67,67,67,67,-43,-44,-57,67,67,67,67,67,67,-52,-53,67,67,67,-59,-39,67,67,-33,67,67,67,67,-36,-42,-31,67,67,-35,-32,67,]),'DIVIDE':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,68,-40,-46,-47,-48,-49,68,68,68,68,68,-43,-44,-57,68,68,68,68,68,68,-52,-53,68,68,68,-59,-39,68,68,-33,68,68,68,68,-36,-42,-31,68,68,-35,-32,68,]),'LESS':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,69,-40,-46,-47,-48,-49,69,69,69,69,69,-43,-44,-57,69,69,69,69,-50,-51,-52,-53,None,None,None,-59,-39,69,69,-33,69,69,69,69,-36,-42,-31,69,69,-35,-32,69,]),'LESSEQ':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,70,-40,-46,-47,-48,-49,70,70,70,70,70,-43,-44,-57,70,70,70,70,-50,-51,-52,-53,None,None,None,-59,-39,70,70,-33,70,70,70,70,-36,-42,-31,70,70,-35,-32,70,]),'EQUAL':([42,43,48,52,53,54,55,72,73,74,76,77,78,79,80,81,87,91,92,95,96,97,98,99,100,101,102,105,106,112,114,118,119,124,128,132,133,137,139,141,143,145,146,],[-45,71,-40,-46,-47,-48,-49,71,71,71,71,71,-43,-44,-57,71,71,71,71,-50,-51,-52,-53,None,None,None,-59,-39,71,71,-33,71,71,71,71,-36,-42,-31,71,71,-35,-32,71,]),'THEN':([42,48,52,53,54,55,73,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,103,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'LOOP':([42,48,52,53,54,55,74,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,104,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'OF':([42,48,52,53,54,55,77,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,108,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,-35,-32,]),'ELSE':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,118,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,131,-41,-36,-42,-31,-35,-32,]),'POOL':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,119,124,132,133,137,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,132,-41,-36,-42,-31,-35,-32,]),'FI':([42,48,52,53,54,55,78,79,80,81,92,95,96,97,98,99,100,101,102,105,114,124,132,133,137,139,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-36,-42,-31,143,-35,-32,]),'IN':([42,48,52,53,54,55,78,79,80,81,82,83,85,92,95,96,97,98,99,100,101,102,105,114,124,125,126,132,133,137,141,143,145,],[-45,-40,-46,-47,-48,-49,-43,-44,-57,-58,109,-18,-21,-34,-50,-51,-52,-53,-54,-55,-56,-59,-39,-33,-41,-19,-22,-36,-42,-31,-20,-35,-32,]),'ESAC':([121,122,134,147,],[133,-17,-16,-30,]),'ARROW':([140,],[144,]),} _lr_action = {} for _k, _v in _lr_action_items.items(): @@ -27,64 +27,64 @@ del _lr_goto_items _lr_productions = [ ("S' -> program","S'",1,None,None,None), - ('program -> class_list','program',1,'p_program','parser.py',49), - ('class_list -> class_list class SEMIC','class_list',3,'p_class_list','parser.py',55), - ('class_list -> class SEMIC','class_list',2,'p_class_list','parser.py',56), - ('class -> CLASS TYPE LBRACE feature_opt RBRACE','class',5,'p_def_class','parser.py',62), - ('class -> CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE','class',7,'p_def_class_inherits','parser.py',69), - ('feature_list -> feature_list feature SEMIC','feature_list',3,'p_feature_list','parser.py',76), - ('feature_list -> feature SEMIC','feature_list',2,'p_feature_list','parser.py',77), - ('feature_opt -> feature_list','feature_opt',1,'p_feature_opt','parser.py',83), - ('feature_opt -> empty','feature_opt',1,'p_feature_opt','parser.py',84), - ('feature -> ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE','feature',9,'p_feature_f_class_method','parser.py',90), - ('feature -> ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE','feature',8,'p_feature_class_method','parser.py',97), - ('feature -> attr_init','feature',1,'p_feature_attr','parser.py',104), - ('attr_init -> ID COLON TYPE ASSIGN expr','attr_init',5,'p_attr_init','parser.py',110), - ('attr_init -> attr_def','attr_init',1,'p_attr_init','parser.py',111), - ('attr_def -> ID COLON TYPE','attr_def',3,'p_attr_def','parser.py',118), - ('action_list -> action_list action','action_list',2,'p_action_list','parser.py',125), - ('action_list -> action','action_list',1,'p_action_list','parser.py',126), - ('action -> ID COLON TYPE ARROW expr SEMIC','action',6,'p_action','parser.py',132), - ('let_var -> let_init','let_var',1,'p_let_var','parser.py',139), - ('let_var -> let_var COMMA let_init','let_var',3,'p_let_var','parser.py',140), - ('let_init -> ID COLON TYPE ASSIGN expr','let_init',5,'p_let_init','parser.py',146), - ('let_init -> let_def','let_init',1,'p_let_init','parser.py',147), - ('let_def -> ID COLON TYPE','let_def',3,'p_let_def','parser.py',154), - ('formal_param_list -> formal_param_list COMMA formal_param','formal_param_list',3,'p_formal_param_list','parser.py',161), - ('formal_param_list -> formal_param','formal_param_list',1,'p_formal_param_list','parser.py',162), - ('formal_param -> ID COLON TYPE','formal_param',3,'p_formal_param','parser.py',168), - ('args_list -> args_list COMMA expr','args_list',3,'p_args_list','parser.py',175), - ('args_list -> expr','args_list',1,'p_args_list','parser.py',176), - ('args_list_opt -> args_list','args_list_opt',1,'p_args_list_opt','parser.py',182), - ('args_list_opt -> empty','args_list_opt',1,'p_args_list_opt','parser.py',183), - ('expr -> expr DOT ID LPAREN args_list_opt RPAREN','expr',6,'p_expr_dynamic_call','parser.py',189), - ('expr -> expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN','expr',8,'p_expr_static_call','parser.py',196), - ('expr -> ID LPAREN args_list_opt RPAREN','expr',4,'p_expr_self_call','parser.py',203), - ('expr -> ID ASSIGN expr','expr',3,'p_expr_assign','parser.py',210), - ('expr -> IF expr THEN expr ELSE expr FI','expr',7,'p_expr_if','parser.py',217), - ('expr -> WHILE expr LOOP expr POOL','expr',5,'p_expr_while','parser.py',224), - ('block_list -> block_list expr SEMIC','block_list',3,'p_block_list','parser.py',231), - ('block_list -> expr SEMIC','block_list',2,'p_block_list','parser.py',232), - ('expr -> LBRACE block_list RBRACE','expr',3,'p_expr_block','parser.py',238), - ('expr -> let_expr','expr',1,'p_expr_simple_let','parser.py',245), - ('let_expr -> LET let_var IN expr','let_expr',4,'p_expr_let','parser.py',251), - ('expr -> CASE expr OF action_list ESAC','expr',5,'p_expr_case','parser.py',258), - ('expr -> NEW TYPE','expr',2,'p_expr_new','parser.py',265), - ('expr -> ISVOID expr','expr',2,'p_expr_isvoid','parser.py',272), - ('expr -> ID','expr',1,'p_expr_id','parser.py',279), - ('expr -> INTEGER','expr',1,'p_expr_int','parser.py',286), - ('expr -> STRING','expr',1,'p_expr_str','parser.py',293), - ('expr -> TRUE','expr',1,'p_expr_bool','parser.py',300), - ('expr -> FALSE','expr',1,'p_expr_bool','parser.py',301), - ('expr -> expr PLUS expr','expr',3,'p_expr_binary_op','parser.py',308), - ('expr -> expr MINUS expr','expr',3,'p_expr_binary_op','parser.py',309), - ('expr -> expr MULTIPLY expr','expr',3,'p_expr_binary_op','parser.py',310), - ('expr -> expr DIVIDE expr','expr',3,'p_expr_binary_op','parser.py',311), - ('expr -> expr LESS expr','expr',3,'p_expr_binary_op','parser.py',312), - ('expr -> expr LESSEQ expr','expr',3,'p_expr_binary_op','parser.py',313), - ('expr -> expr EQUAL expr','expr',3,'p_expr_binary_op','parser.py',314), - ('expr -> NOX expr','expr',2,'p_expr_unary_op','parser.py',340), - ('expr -> NOT expr','expr',2,'p_expr_unary_op','parser.py',341), - ('expr -> LPAREN expr RPAREN','expr',3,'p_expr_parenthesis','parser.py',352), - ('empty -> ','empty',0,'p_empty','parser.py',358), + ('program -> class_list','program',1,'p_program','parser.py',52), + ('class_list -> class_list class SEMIC','class_list',3,'p_class_list','parser.py',58), + ('class_list -> class SEMIC','class_list',2,'p_class_list','parser.py',59), + ('class -> CLASS TYPE LBRACE feature_opt RBRACE','class',5,'p_def_class','parser.py',65), + ('class -> CLASS TYPE INHERITS TYPE LBRACE feature_opt RBRACE','class',7,'p_def_class_inherits','parser.py',72), + ('feature_list -> feature_list feature SEMIC','feature_list',3,'p_feature_list','parser.py',79), + ('feature_list -> feature SEMIC','feature_list',2,'p_feature_list','parser.py',80), + ('feature_opt -> feature_list','feature_opt',1,'p_feature_opt','parser.py',86), + ('feature_opt -> empty','feature_opt',1,'p_feature_opt','parser.py',87), + ('feature -> ID LPAREN formal_param_list RPAREN COLON TYPE LBRACE expr RBRACE','feature',9,'p_feature_f_class_method','parser.py',93), + ('feature -> ID LPAREN RPAREN COLON TYPE LBRACE expr RBRACE','feature',8,'p_feature_class_method','parser.py',100), + ('feature -> attr_init','feature',1,'p_feature_attr','parser.py',107), + ('attr_init -> ID COLON TYPE ASSIGN expr','attr_init',5,'p_attr_init','parser.py',113), + ('attr_init -> attr_def','attr_init',1,'p_attr_init','parser.py',114), + ('attr_def -> ID COLON TYPE','attr_def',3,'p_attr_def','parser.py',121), + ('action_list -> action_list action','action_list',2,'p_action_list','parser.py',128), + ('action_list -> action','action_list',1,'p_action_list','parser.py',129), + ('let_var -> let_init','let_var',1,'p_let_var','parser.py',136), + ('let_var -> let_var COMMA let_init','let_var',3,'p_let_var','parser.py',137), + ('let_init -> ID COLON TYPE ASSIGN expr','let_init',5,'p_let_init','parser.py',143), + ('let_init -> let_def','let_init',1,'p_let_init','parser.py',144), + ('let_def -> ID COLON TYPE','let_def',3,'p_let_def','parser.py',151), + ('formal_param_list -> formal_param_list COMMA formal_param','formal_param_list',3,'p_formal_param_list','parser.py',158), + ('formal_param_list -> formal_param','formal_param_list',1,'p_formal_param_list','parser.py',159), + ('formal_param -> ID COLON TYPE','formal_param',3,'p_formal_param','parser.py',165), + ('args_list -> args_list COMMA expr','args_list',3,'p_args_list','parser.py',172), + ('args_list -> expr','args_list',1,'p_args_list','parser.py',173), + ('args_list_opt -> args_list','args_list_opt',1,'p_args_list_opt','parser.py',179), + ('args_list_opt -> empty','args_list_opt',1,'p_args_list_opt','parser.py',180), + ('action -> ID COLON TYPE ARROW expr SEMIC','action',6,'p_action','parser.py',186), + ('expr -> expr DOT ID LPAREN args_list_opt RPAREN','expr',6,'p_expr_dynamic_call','parser.py',193), + ('expr -> expr ARROBA TYPE DOT ID LPAREN args_list_opt RPAREN','expr',8,'p_expr_static_call','parser.py',200), + ('expr -> ID LPAREN args_list_opt RPAREN','expr',4,'p_expr_self_call','parser.py',207), + ('expr -> ID ASSIGN expr','expr',3,'p_expr_assign','parser.py',214), + ('expr -> IF expr THEN expr ELSE expr FI','expr',7,'p_expr_if','parser.py',221), + ('expr -> WHILE expr LOOP expr POOL','expr',5,'p_expr_while','parser.py',228), + ('block_list -> block_list expr SEMIC','block_list',3,'p_block_list','parser.py',235), + ('block_list -> expr SEMIC','block_list',2,'p_block_list','parser.py',236), + ('expr -> LBRACE block_list RBRACE','expr',3,'p_expr_block','parser.py',242), + ('expr -> let_expr','expr',1,'p_expr_simple_let','parser.py',249), + ('let_expr -> LET let_var IN expr','let_expr',4,'p_expr_let','parser.py',255), + ('expr -> CASE expr OF action_list ESAC','expr',5,'p_expr_case','parser.py',262), + ('expr -> NEW TYPE','expr',2,'p_expr_new','parser.py',269), + ('expr -> ISVOID expr','expr',2,'p_expr_isvoid','parser.py',276), + ('expr -> ID','expr',1,'p_expr_id','parser.py',283), + ('expr -> INTEGER','expr',1,'p_expr_int','parser.py',290), + ('expr -> STRING','expr',1,'p_expr_str','parser.py',297), + ('expr -> TRUE','expr',1,'p_expr_bool','parser.py',304), + ('expr -> FALSE','expr',1,'p_expr_bool','parser.py',305), + ('expr -> expr PLUS expr','expr',3,'p_expr_binary_op','parser.py',312), + ('expr -> expr MINUS expr','expr',3,'p_expr_binary_op','parser.py',313), + ('expr -> expr MULTIPLY expr','expr',3,'p_expr_binary_op','parser.py',314), + ('expr -> expr DIVIDE expr','expr',3,'p_expr_binary_op','parser.py',315), + ('expr -> expr LESS expr','expr',3,'p_expr_binary_op','parser.py',316), + ('expr -> expr LESSEQ expr','expr',3,'p_expr_binary_op','parser.py',317), + ('expr -> expr EQUAL expr','expr',3,'p_expr_binary_op','parser.py',318), + ('expr -> NOX expr','expr',2,'p_expr_unary_op','parser.py',344), + ('expr -> NOT expr','expr',2,'p_expr_unary_op','parser.py',345), + ('expr -> LPAREN expr RPAREN','expr',3,'p_expr_parenthesis','parser.py',356), + ('empty -> ','empty',0,'p_empty','parser.py',362), ] diff --git a/tests/codegen/arith_input.txt b/tests/codegen/arith_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/arith_output.txt b/tests/codegen/arith_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/atoi.cl b/tests/codegen/atoi.cl old mode 100644 new mode 100755 diff --git a/tests/codegen/atoi_input.txt b/tests/codegen/atoi_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/atoi_output.txt b/tests/codegen/atoi_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/book_list_input.txt b/tests/codegen/book_list_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/book_list_output.txt b/tests/codegen/book_list_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/cells_input.txt b/tests/codegen/cells_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/cells_output.txt b/tests/codegen/cells_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/complex_input.txt b/tests/codegen/complex_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/complex_output.txt b/tests/codegen/complex_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/fib.cl b/tests/codegen/fib.cl old mode 100644 new mode 100755 diff --git a/tests/codegen/fib_input.txt b/tests/codegen/fib_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/fib_output.txt b/tests/codegen/fib_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/graph_input.txt b/tests/codegen/graph_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/graph_output.txt b/tests/codegen/graph_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/hairyscary_input.txt b/tests/codegen/hairyscary_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/hairyscary_output.txt b/tests/codegen/hairyscary_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/hello_world_input.txt b/tests/codegen/hello_world_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/hello_world_output.txt b/tests/codegen/hello_world_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/io_input.txt b/tests/codegen/io_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/io_output.txt b/tests/codegen/io_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/life_input.txt b/tests/codegen/life_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/life_output.txt b/tests/codegen/life_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/list.cl b/tests/codegen/list.cl old mode 100644 new mode 100755 diff --git a/tests/codegen/list_input.txt b/tests/codegen/list_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/list_output.txt b/tests/codegen/list_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/new_complex_input.txt b/tests/codegen/new_complex_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/new_complex_output.txt b/tests/codegen/new_complex_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/palindrome_input.txt b/tests/codegen/palindrome_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/palindrome_output.txt b/tests/codegen/palindrome_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/primes.cl b/tests/codegen/primes.cl old mode 100644 new mode 100755 diff --git a/tests/codegen/primes_input.txt b/tests/codegen/primes_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/primes_output.txt b/tests/codegen/primes_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/print-cool.cl b/tests/codegen/print-cool.cl old mode 100644 new mode 100755 diff --git a/tests/codegen/print-cool_input.txt b/tests/codegen/print-cool_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/print-cool_output.txt b/tests/codegen/print-cool_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/sort-list.cl b/tests/codegen/sort-list.cl old mode 100644 new mode 100755 diff --git a/tests/codegen/sort-list_input.txt b/tests/codegen/sort-list_input.txt old mode 100644 new mode 100755 diff --git a/tests/codegen/sort-list_output.txt b/tests/codegen/sort-list_output.txt old mode 100644 new mode 100755 diff --git a/tests/codegen_test.py b/tests/codegen_test.py old mode 100644 new mode 100755 diff --git a/tests/conftest.py b/tests/conftest.py old mode 100644 new mode 100755 diff --git a/tests/lexer/comment1.cl b/tests/lexer/comment1.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/comment1_error.txt b/tests/lexer/comment1_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/iis1.cl b/tests/lexer/iis1.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/iis1_error.txt b/tests/lexer/iis1_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/iis2.cl b/tests/lexer/iis2.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/iis2_error.txt b/tests/lexer/iis2_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/iis3.cl b/tests/lexer/iis3.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/iis3_error.txt b/tests/lexer/iis3_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/iis4.cl b/tests/lexer/iis4.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/iis4_error.txt b/tests/lexer/iis4_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/iis5.cl b/tests/lexer/iis5.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/iis5_error.txt b/tests/lexer/iis5_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/iis6.cl b/tests/lexer/iis6.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/iis6_error.txt b/tests/lexer/iis6_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/mixed1.cl b/tests/lexer/mixed1.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/mixed1_error.txt b/tests/lexer/mixed1_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/mixed2.cl b/tests/lexer/mixed2.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/mixed2_error.txt b/tests/lexer/mixed2_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/string1.cl b/tests/lexer/string1.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/string1_error.txt b/tests/lexer/string1_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/string2.cl b/tests/lexer/string2.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/string2_error.txt b/tests/lexer/string2_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/string3.cl b/tests/lexer/string3.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/string3_error.txt b/tests/lexer/string3_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer/string4.cl b/tests/lexer/string4.cl old mode 100644 new mode 100755 diff --git a/tests/lexer/string4_error.txt b/tests/lexer/string4_error.txt old mode 100644 new mode 100755 diff --git a/tests/lexer_test.py b/tests/lexer_test.py old mode 100644 new mode 100755 diff --git a/tests/parser/assignment1.cl b/tests/parser/assignment1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/assignment1_error.txt b/tests/parser/assignment1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/assignment2.cl b/tests/parser/assignment2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/assignment2_error.txt b/tests/parser/assignment2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/assignment3.cl b/tests/parser/assignment3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/assignment3_error.txt b/tests/parser/assignment3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/attribute1.cl b/tests/parser/attribute1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/attribute1_error.txt b/tests/parser/attribute1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/attribute2.cl b/tests/parser/attribute2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/attribute2_error.txt b/tests/parser/attribute2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/attribute3.cl b/tests/parser/attribute3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/attribute3_error.txt b/tests/parser/attribute3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/block1.cl b/tests/parser/block1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/block1_error.txt b/tests/parser/block1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/block2.cl b/tests/parser/block2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/block2_error.txt b/tests/parser/block2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/block3.cl b/tests/parser/block3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/block3_error.txt b/tests/parser/block3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/block4.cl b/tests/parser/block4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/block4_error.txt b/tests/parser/block4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/case1.cl b/tests/parser/case1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/case1_error.txt b/tests/parser/case1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/case2.cl b/tests/parser/case2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/case2_error.txt b/tests/parser/case2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/case3.cl b/tests/parser/case3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/case3_error.txt b/tests/parser/case3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/case4.cl b/tests/parser/case4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/case4_error.txt b/tests/parser/case4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/case5.cl b/tests/parser/case5.cl old mode 100644 new mode 100755 diff --git a/tests/parser/case5_error.txt b/tests/parser/case5_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/case6.cl b/tests/parser/case6.cl old mode 100644 new mode 100755 diff --git a/tests/parser/case6_error.txt b/tests/parser/case6_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/class1.cl b/tests/parser/class1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/class1_error.txt b/tests/parser/class1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/class2.cl b/tests/parser/class2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/class2_error.txt b/tests/parser/class2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/class3.cl b/tests/parser/class3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/class3_error.txt b/tests/parser/class3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/class4.cl b/tests/parser/class4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/class4_error.txt b/tests/parser/class4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/class5.cl b/tests/parser/class5.cl old mode 100644 new mode 100755 diff --git a/tests/parser/class5_error.txt b/tests/parser/class5_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/class6.cl b/tests/parser/class6.cl old mode 100644 new mode 100755 diff --git a/tests/parser/class6_error.txt b/tests/parser/class6_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/conditional1.cl b/tests/parser/conditional1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/conditional1_error.txt b/tests/parser/conditional1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/conditional2.cl b/tests/parser/conditional2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/conditional2_error.txt b/tests/parser/conditional2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/conditional3.cl b/tests/parser/conditional3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/conditional3_error.txt b/tests/parser/conditional3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/conditional4.cl b/tests/parser/conditional4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/conditional4_error.txt b/tests/parser/conditional4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/conditional5.cl b/tests/parser/conditional5.cl old mode 100644 new mode 100755 diff --git a/tests/parser/conditional5_error.txt b/tests/parser/conditional5_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/conditional6.cl b/tests/parser/conditional6.cl old mode 100644 new mode 100755 diff --git a/tests/parser/conditional6_error.txt b/tests/parser/conditional6_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch1.cl b/tests/parser/dispatch1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch1_error.txt b/tests/parser/dispatch1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch2.cl b/tests/parser/dispatch2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch2_error.txt b/tests/parser/dispatch2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch3.cl b/tests/parser/dispatch3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch3_error.txt b/tests/parser/dispatch3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch4.cl b/tests/parser/dispatch4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch4_error.txt b/tests/parser/dispatch4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch5.cl b/tests/parser/dispatch5.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch5_error.txt b/tests/parser/dispatch5_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch6.cl b/tests/parser/dispatch6.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch6_error.txt b/tests/parser/dispatch6_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch7.cl b/tests/parser/dispatch7.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch7_error.txt b/tests/parser/dispatch7_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch8.cl b/tests/parser/dispatch8.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch8_error.txt b/tests/parser/dispatch8_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch9.cl b/tests/parser/dispatch9.cl old mode 100644 new mode 100755 diff --git a/tests/parser/dispatch9_error.txt b/tests/parser/dispatch9_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/let1.cl b/tests/parser/let1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/let1_error.txt b/tests/parser/let1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/let2.cl b/tests/parser/let2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/let2_error.txt b/tests/parser/let2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/let3.cl b/tests/parser/let3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/let3_error.txt b/tests/parser/let3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/let4.cl b/tests/parser/let4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/let4_error.txt b/tests/parser/let4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/let5.cl b/tests/parser/let5.cl old mode 100644 new mode 100755 diff --git a/tests/parser/let5_error.txt b/tests/parser/let5_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/let6.cl b/tests/parser/let6.cl old mode 100644 new mode 100755 diff --git a/tests/parser/let6_error.txt b/tests/parser/let6_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/let7.cl b/tests/parser/let7.cl old mode 100644 new mode 100755 diff --git a/tests/parser/let7_error.txt b/tests/parser/let7_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/loop1.cl b/tests/parser/loop1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/loop1_error.txt b/tests/parser/loop1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/loop2.cl b/tests/parser/loop2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/loop2_error.txt b/tests/parser/loop2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/loop3.cl b/tests/parser/loop3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/loop3_error.txt b/tests/parser/loop3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/loop4.cl b/tests/parser/loop4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/loop4_error.txt b/tests/parser/loop4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/method1.cl b/tests/parser/method1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/method1_error.txt b/tests/parser/method1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/method2.cl b/tests/parser/method2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/method2_error.txt b/tests/parser/method2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/method3.cl b/tests/parser/method3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/method3_error.txt b/tests/parser/method3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/method4.cl b/tests/parser/method4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/method4_error.txt b/tests/parser/method4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/method5.cl b/tests/parser/method5.cl old mode 100644 new mode 100755 diff --git a/tests/parser/method5_error.txt b/tests/parser/method5_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/method6.cl b/tests/parser/method6.cl old mode 100644 new mode 100755 diff --git a/tests/parser/method6_error.txt b/tests/parser/method6_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/mixed1.cl b/tests/parser/mixed1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/mixed1_error.txt b/tests/parser/mixed1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/mixed2.cl b/tests/parser/mixed2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/mixed2_error.txt b/tests/parser/mixed2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/mixed3.cl b/tests/parser/mixed3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/mixed3_error.txt b/tests/parser/mixed3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/mixed4.cl b/tests/parser/mixed4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/mixed4_error.txt b/tests/parser/mixed4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/mixed5.cl b/tests/parser/mixed5.cl old mode 100644 new mode 100755 diff --git a/tests/parser/mixed5_error.txt b/tests/parser/mixed5_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/mixed6.cl b/tests/parser/mixed6.cl old mode 100644 new mode 100755 diff --git a/tests/parser/mixed6_error.txt b/tests/parser/mixed6_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/operation1.cl b/tests/parser/operation1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/operation1_error.txt b/tests/parser/operation1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/operation2.cl b/tests/parser/operation2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/operation2_error.txt b/tests/parser/operation2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/operation3.cl b/tests/parser/operation3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/operation3_error.txt b/tests/parser/operation3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/operation4.cl b/tests/parser/operation4.cl old mode 100644 new mode 100755 diff --git a/tests/parser/operation4_error.txt b/tests/parser/operation4_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/program1.cl b/tests/parser/program1.cl old mode 100644 new mode 100755 diff --git a/tests/parser/program1_error.txt b/tests/parser/program1_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/program2.cl b/tests/parser/program2.cl old mode 100644 new mode 100755 diff --git a/tests/parser/program2_error.txt b/tests/parser/program2_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser/program3.cl b/tests/parser/program3.cl old mode 100644 new mode 100755 diff --git a/tests/parser/program3_error.txt b/tests/parser/program3_error.txt old mode 100644 new mode 100755 diff --git a/tests/parser_test.py b/tests/parser_test.py old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic1.cl b/tests/semantic/arithmetic1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic10.cl b/tests/semantic/arithmetic10.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic10_error.txt b/tests/semantic/arithmetic10_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic11.cl b/tests/semantic/arithmetic11.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic11_error.txt b/tests/semantic/arithmetic11_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic12.cl b/tests/semantic/arithmetic12.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic12_error.txt b/tests/semantic/arithmetic12_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic1_error.txt b/tests/semantic/arithmetic1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic2.cl b/tests/semantic/arithmetic2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic2_error.txt b/tests/semantic/arithmetic2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic3.cl b/tests/semantic/arithmetic3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic3_error.txt b/tests/semantic/arithmetic3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic4.cl b/tests/semantic/arithmetic4.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic4_error.txt b/tests/semantic/arithmetic4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic5.cl b/tests/semantic/arithmetic5.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic5_error.txt b/tests/semantic/arithmetic5_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic6.cl b/tests/semantic/arithmetic6.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic6_error.txt b/tests/semantic/arithmetic6_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic7.cl b/tests/semantic/arithmetic7.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic7_error.txt b/tests/semantic/arithmetic7_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic8.cl b/tests/semantic/arithmetic8.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic8_error.txt b/tests/semantic/arithmetic8_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic9.cl b/tests/semantic/arithmetic9.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/arithmetic9_error.txt b/tests/semantic/arithmetic9_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/assignment1.cl b/tests/semantic/assignment1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/assignment1_error.txt b/tests/semantic/assignment1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/assignment2.cl b/tests/semantic/assignment2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/assignment2_error.txt b/tests/semantic/assignment2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/assignment3.cl b/tests/semantic/assignment3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/assignment3_error.txt b/tests/semantic/assignment3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes1.cl b/tests/semantic/attributes1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes1_error.txt b/tests/semantic/attributes1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes2.cl b/tests/semantic/attributes2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes2_error.txt b/tests/semantic/attributes2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes3.cl b/tests/semantic/attributes3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes3_error.txt b/tests/semantic/attributes3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes4.cl b/tests/semantic/attributes4.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/attributes4_error.txt b/tests/semantic/attributes4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics1.cl b/tests/semantic/basics1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics1_error.txt b/tests/semantic/basics1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics2.cl b/tests/semantic/basics2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics2_error.txt b/tests/semantic/basics2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics3.cl b/tests/semantic/basics3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics3_error.txt b/tests/semantic/basics3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics4.cl b/tests/semantic/basics4.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics4_error.txt b/tests/semantic/basics4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics5.cl b/tests/semantic/basics5.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics5_error.txt b/tests/semantic/basics5_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics6.cl b/tests/semantic/basics6.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics6_error.txt b/tests/semantic/basics6_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics7.cl b/tests/semantic/basics7.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics7_error.txt b/tests/semantic/basics7_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/basics8.cl b/tests/semantic/basics8.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/basics8_error.txt b/tests/semantic/basics8_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/blocks1.cl b/tests/semantic/blocks1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/blocks1_error.txt b/tests/semantic/blocks1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/case1.cl b/tests/semantic/case1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/case1_error.txt b/tests/semantic/case1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/case2.cl b/tests/semantic/case2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/case2_error.txt b/tests/semantic/case2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/case3.cl b/tests/semantic/case3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/case3_error.txt b/tests/semantic/case3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/class1.cl b/tests/semantic/class1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/class1_error.txt b/tests/semantic/class1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/conditionals1.cl b/tests/semantic/conditionals1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/conditionals1_error.txt b/tests/semantic/conditionals1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/conditionals2.cl b/tests/semantic/conditionals2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/conditionals2_error.txt b/tests/semantic/conditionals2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch1.cl b/tests/semantic/dispatch1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch1_error.txt b/tests/semantic/dispatch1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch2.cl b/tests/semantic/dispatch2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch2_error.txt b/tests/semantic/dispatch2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch3.cl b/tests/semantic/dispatch3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch3_error.txt b/tests/semantic/dispatch3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch4.cl b/tests/semantic/dispatch4.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch4_error.txt b/tests/semantic/dispatch4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch5.cl b/tests/semantic/dispatch5.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch5_error.txt b/tests/semantic/dispatch5_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch6.cl b/tests/semantic/dispatch6.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/dispatch6_error.txt b/tests/semantic/dispatch6_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/eq1.cl b/tests/semantic/eq1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/eq1_error.txt b/tests/semantic/eq1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/eq2.cl b/tests/semantic/eq2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/eq2_error.txt b/tests/semantic/eq2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/eq3.cl b/tests/semantic/eq3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/eq3_error.txt b/tests/semantic/eq3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/eq4.cl b/tests/semantic/eq4.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/eq4_error.txt b/tests/semantic/eq4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/inheritance3_error.txt b/tests/semantic/inheritance3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/inheritance4_error.txt b/tests/semantic/inheritance4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/inheritance5_error.txt b/tests/semantic/inheritance5_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/isvoid1.cl b/tests/semantic/isvoid1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/isvoid1_error.txt b/tests/semantic/isvoid1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/let1.cl b/tests/semantic/let1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/let1_error.txt b/tests/semantic/let1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/let2.cl b/tests/semantic/let2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/let2_error.txt b/tests/semantic/let2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/let3.cl b/tests/semantic/let3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/let3_error.txt b/tests/semantic/let3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/loops1.cl b/tests/semantic/loops1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/loops1_error.txt b/tests/semantic/loops1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/loops2.cl b/tests/semantic/loops2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/loops2_error.txt b/tests/semantic/loops2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods1.cl b/tests/semantic/methods1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods1_error.txt b/tests/semantic/methods1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods2.cl b/tests/semantic/methods2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods2_error.txt b/tests/semantic/methods2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods3.cl b/tests/semantic/methods3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods3_error.txt b/tests/semantic/methods3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods4.cl b/tests/semantic/methods4.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods4_error.txt b/tests/semantic/methods4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods5.cl b/tests/semantic/methods5.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods5_error.txt b/tests/semantic/methods5_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods6.cl b/tests/semantic/methods6.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods6_error.txt b/tests/semantic/methods6_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods7.cl b/tests/semantic/methods7.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods7_error.txt b/tests/semantic/methods7_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/methods8.cl b/tests/semantic/methods8.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/methods8_error.txt b/tests/semantic/methods8_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/new1.cl b/tests/semantic/new1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/new1_error.txt b/tests/semantic/new1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/self1.cl b/tests/semantic/self1.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/self1_error.txt b/tests/semantic/self1_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/self2.cl b/tests/semantic/self2.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/self2_error.txt b/tests/semantic/self2_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/self3.cl b/tests/semantic/self3.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/self3_error.txt b/tests/semantic/self3_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic/self4.cl b/tests/semantic/self4.cl old mode 100644 new mode 100755 diff --git a/tests/semantic/self4_error.txt b/tests/semantic/self4_error.txt old mode 100644 new mode 100755 diff --git a/tests/semantic_test.py b/tests/semantic_test.py old mode 100644 new mode 100755 diff --git a/tests/utils/__init__.py b/tests/utils/__init__.py old mode 100644 new mode 100755 diff --git a/tests/utils/utils.py b/tests/utils/utils.py old mode 100644 new mode 100755 index 961cf7cbc..151753ac1 --- a/tests/utils/utils.py +++ b/tests/utils/utils.py @@ -14,6 +14,7 @@ ERROR_FORMAT = r'^\s*\(\s*(\d+)\s*,\s*(\d+)\s*\)\s*-\s*(\w+)\s*:(.*)$' def parse_error(error: str): + print('*****************', error) merror = re.fullmatch(ERROR_FORMAT, error) assert merror, BAD_ERROR_FORMAT % error From c2387fe588ebba1c4fde5ee9984fda0ab9532d77 Mon Sep 17 00:00:00 2001 From: sheycc Date: Tue, 2 Nov 2021 10:20:37 -0400 Subject: [PATCH 3/4] Fix some pendent conflicts --- src/main.py | 3 --- tests/utils/utils.py | 1 - 2 files changed, 4 deletions(-) diff --git a/src/main.py b/src/main.py index 9cdfb166f..d7d97092c 100644 --- a/src/main.py +++ b/src/main.py @@ -1,9 +1,6 @@ from lexer import MyLexer from parser import MyParser -<<<<<<< HEAD -======= from semantic import MySemanticAnalyzer ->>>>>>> 0b274c6c24fe59c4c9e10f37064ddd91ebd507d7 import sys if __name__ == "__main__": diff --git a/tests/utils/utils.py b/tests/utils/utils.py index 151753ac1..961cf7cbc 100755 --- a/tests/utils/utils.py +++ b/tests/utils/utils.py @@ -14,7 +14,6 @@ ERROR_FORMAT = r'^\s*\(\s*(\d+)\s*,\s*(\d+)\s*\)\s*-\s*(\w+)\s*:(.*)$' def parse_error(error: str): - print('*****************', error) merror = re.fullmatch(ERROR_FORMAT, error) assert merror, BAD_ERROR_FORMAT % error From cdb64b274bd23e73de88c056d2b1d5057ad87cba Mon Sep 17 00:00:00 2001 From: huertaariel1 Date: Sat, 26 Feb 2022 04:05:42 +0100 Subject: [PATCH 4/4] Adding report --- doc/Readme.md | 49 +- doc/Report.pdf | Bin 0 -> 143858 bytes doc/Report.pdf:Zone.Identifier | Bin 0 -> 27 bytes doc/team.yml | 18 +- src/code_generation/__init__.py | 1 + src/code_generation/cil_to_mips.py | 793 ++ src/code_generation/code_generation.py | 13 + src/code_generation/cool_to_cil.py | 895 ++ src/coolc.sh | 2 +- src/main.py | 8 +- src/nodes/cil_ast_nodes.py | 25 + src/nodes/cil_expr_nodes.py | 223 + src/semantic/tools/context.py | 5 +- src/semantic/visitor/type_builder.py | 2 +- src/semantic/visitor/type_checker.py | 7 +- src/semantic/visitor/type_collector.py | 2 +- tests/codegen/arith.mips | 12572 ++++++++++++++++++++++ tests/codegen/atoi.mips | 5430 ++++++++++ tests/codegen/book_list.mips | 2310 ++++ tests/codegen/cells.mips | 2827 +++++ tests/codegen/complex.mips | 1819 ++++ tests/codegen/fib.mips | 1201 +++ tests/codegen/graph.mips | 6582 ++++++++++++ tests/codegen/hairyscary.mips | 2042 ++++ tests/codegen/hello_world.mips | 754 ++ tests/codegen/io.mips | 1267 +++ tests/codegen/life.mips | 12958 +++++++++++++++++++++++ tests/codegen/list.mips | 1612 +++ tests/codegen/new_complex.mips | 2246 ++++ tests/codegen/palindrome.mips | 1720 +++ tests/codegen/primes.mips | 1922 ++++ tests/codegen/print-cool.mips | 1031 ++ tests/codegen/sort-list.mips | 2242 ++++ 33 files changed, 62537 insertions(+), 41 deletions(-) create mode 100644 doc/Report.pdf create mode 100644 doc/Report.pdf:Zone.Identifier create mode 100644 src/code_generation/cil_to_mips.py create mode 100644 src/code_generation/code_generation.py create mode 100644 src/code_generation/cool_to_cil.py create mode 100644 src/nodes/cil_ast_nodes.py create mode 100644 src/nodes/cil_expr_nodes.py create mode 100644 tests/codegen/arith.mips create mode 100644 tests/codegen/atoi.mips create mode 100644 tests/codegen/book_list.mips create mode 100644 tests/codegen/cells.mips create mode 100644 tests/codegen/complex.mips create mode 100644 tests/codegen/fib.mips create mode 100644 tests/codegen/graph.mips create mode 100644 tests/codegen/hairyscary.mips create mode 100644 tests/codegen/hello_world.mips create mode 100644 tests/codegen/io.mips create mode 100644 tests/codegen/life.mips create mode 100644 tests/codegen/list.mips create mode 100644 tests/codegen/new_complex.mips create mode 100644 tests/codegen/palindrome.mips create mode 100644 tests/codegen/primes.mips create mode 100644 tests/codegen/print-cool.mips create mode 100644 tests/codegen/sort-list.mips diff --git a/doc/Readme.md b/doc/Readme.md index 3b2569f5c..a30716ee9 100755 --- a/doc/Readme.md +++ b/doc/Readme.md @@ -1,33 +1,40 @@ # Documentación -## Readme +**Nombre** | **Grupo** | **Github** +--|--|-- +Laura Brito Guerrero | C412 | [@LauryGirl](https://github.com/LauryGirl) +Sheyla Cruz Castro | C412 | [@sheycc](https://github.com/sheycc) +Ariel Antonio Huerta Martín | C412 | [@huertaariel1](https://github.com/huertaariel1) -Modifique el contenido de este documento para documentar de forma clara y concisa los siguientes aspectos: +# Uso del compilador -- Cómo ejecutar (y compilar si es necesario) su compilador. -- Requisitos adicionales, dependencias, configuración, etc. -- Opciones adicionales que tenga su compilador. +Para utilizar el compilador es necesario instalar todas las dependencias utilizadas por este como +son los paquetes `ply` para la generación del lexer y el parser, y para la ejecución de los tests, `pytest` +y `pytest-ordering`, todo esto se logra ejecutando el fichero `requirements.txt` de la forma: -## Sobre los Equipos de Desarrollo +```bash +pip install -r requirements.txt +``` -Para desarrollar el compilador del lenguaje COOL se trabajará en equipos de 2 o 3 integrantes. El proyecto de Compilación será recogido y evaluado únicamente a través de Github. Es imprescindible tener una cuenta de Github para cada participante, y que su proyecto esté correctamente hosteado en esta plataforma. +Para ejecutar el compilador es necesario correr el archivo ```cool.sh``` ubicado en `/src/` dando como entrada la dirección del archivo a compilar de la siguiente forma: -**⚠️ NOTA**: Debe completar el archivo `team.yml` con los datos correctos de cada miembro de su equipo. +```bash +cd src/ +./cool.sh '../tests/codegen/arith.cl' +``` -## Sobre los Materiales a Entregar +El archivo principal del compilador es `main.py`, módulo que contiene toda la lógica del compilador, si desea ejecutarlo debe pasar como argumento el `path` del fichero **.cl** con código fuente de COOL que se desea compilar, de la siguiente forma: -Para la evaluación del proyecto Ud. debe entregar un informe en formato PDF (`report.pdf`) en esta carpeta, que resuma de manera organizada y comprensible la arquitectura e implementación de su compilador. -El documento no tiene límite de extensión. -En él explicará en más detalle su solución a los problemas que, durante la implementación de cada una de las fases del proceso de compilación, hayan requerido de Ud. especial atención. +```bash +python3 main.py '../tests/codegen/arith.cl' +``` -## Estructura del reporte +Un archivo en el mismo path del código fuente será creado, con el mismo nombre, pero con extensión **.mips** que puede ser ejecutado con **spim**. -Usted es libre de estructurar su reporte escrito como más conveniente le parezca. A continuación le sugerimos algunas secciones que no deberían faltar, aunque puede mezclar, renombrar y organizarlas de la manera que mejor le parezca: +Para ejecutar las pruebas localmente, debe tener instalado `Python 3.7`, `pip` y `make` que normalmente viene incluido en Linux, para hacerlo ejecute los siguientes comandos: -- **Uso del compilador**: detalles sobre las opciones de líneas de comando, si tiene opciones adicionales (e.j., `--ast` genera un AST en JSON, etc.). Básicamente lo mismo que pondrá en este Readme. -- **Arquitectura del compilador**: una explicación general de la arquitectura, en cuántos módulos se divide el proyecto, cuantas fases tiene, qué tipo de gramática se utiliza, y en general, como se organiza el proyecto. Una buena imagen siempre ayuda. -- **Problemas técnicos**: detalles sobre cualquier problema teórico o técnico interesante que haya necesitado resolver de forma particular. - -## Sobre la Fecha de Entrega - -Se realizarán recogidas parciales del proyecto a lo largo del curso. En el Canal de Telegram se anunciará la fecha y requisitos de cada entrega. +```bash +cd src/ +make clean +make test +``` \ No newline at end of file diff --git a/doc/Report.pdf b/doc/Report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d004544a0b41c1c423fa69ac9a99adb560db2032 GIT binary patch literal 143858 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

    <~YduTnD{R7~K{c*WLrN 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 literal 0 HcmV?d00001 diff --git a/doc/Report.pdf:Zone.Identifier b/doc/Report.pdf:Zone.Identifier new file mode 100644 index 0000000000000000000000000000000000000000..be537eb44ca1e347e7a761c14b4f312c3e8c9543 GIT binary patch literal 27 fcma!!%Fjy;DN4*MPD?F{<>dl#JyUFrdAS$>i985_ literal 0 HcmV?d00001 diff --git a/doc/team.yml b/doc/team.yml index c16162532..60f1f5bf5 100755 --- a/doc/team.yml +++ b/doc/team.yml @@ -1,10 +1,10 @@ members: - - name: Nombre Apellido1 Apellido2 - github: github_id - group: CXXX - - name: Nombre Apellido1 Apellido2 - github: github_id - group: CXXX - - name: Nombre Apellido1 Apellido2 - github: github_id - group: CXXX + - name: Laura Brito Guerrero + github: LauryGirl + group: C412 + - name: Sheyla Cruz Castro + github: sheycc + group: C412 + - name: Ariel Antonio Huerta Martín + github: huertaariel1 + group: C412 diff --git a/src/code_generation/__init__.py b/src/code_generation/__init__.py index e69de29bb..1b459b01b 100644 --- a/src/code_generation/__init__.py +++ b/src/code_generation/__init__.py @@ -0,0 +1 @@ +from .code_generation import MyCodeGenerator \ No newline at end of file diff --git a/src/code_generation/cil_to_mips.py b/src/code_generation/cil_to_mips.py new file mode 100644 index 000000000..b5da9fcff --- /dev/null +++ b/src/code_generation/cil_to_mips.py @@ -0,0 +1,793 @@ +from semantic.visitor import visitor +from nodes import cil_ast_nodes as CilAST +from nodes import cil_expr_nodes as CilExpr + +class CilToMipsVisitor: + def __init__(self): + self.text = '' + self.data = '' + self.mips_op = { + '+' : 'add', + '-' : 'sub', + '*' : 'mul', + '/' : 'div', + '<' : 'slt', + '<=': 'sle', + '=' : 'seq' + } + self.types = None + self.current_function = None + #Dictionaries for easy handlling of offset + self.attributes_offset = {} + self.methods_offset = {} + self.variables_offset = {} + + #This method adds a line of code to the section of .data + def add_data_code_line(self, line): + self.data += f'{line}\n' + + #This method adds a line of code to the section of .text + def add_text_code_line(self,line): + self.text += f'{line}\n' + + #----------------------------------------Visitor--------------------------------------------# + @visitor.on('node') + def visit(self, node): + pass + + @visitor.when(CilAST.ProgramNode) + def visit(self, node): + self.types = node.types + + #Generate and register runtime error + runtime_errors = { + 'div_zero' : 'Runtime Error: Division by zero', + 'dispatch_void' : 'Runtime Error: A dispatch with void', + 'case_void' : 'Runtime Error: A case with void', + 'case_no_match' : 'Runtime Error: Execution of a case statement without a matching branch', + 'heap' : 'Runtime Error: Heap overflow', + 'substr' : 'Runtime Error: Index for substring out of range', + } + for error in runtime_errors: + #Save error message string in data + self.add_data_code_line(f'{error}: .asciiz "{runtime_errors[error]}"') + #Label for error + self.add_text_code_line(f'{error}_error:') + #Print error and stop execution + self.add_text_code_line(f'la $a0, {error}') + self.add_text_code_line('li $v0, 4') + self.add_text_code_line('syscall') + self.add_text_code_line('li $v0, 10') + self.add_text_code_line('syscall') + + #Allocate space for a auxiliar variable to receive the input string + self.add_data_code_line('input_str: .space 2048') + #Store void + self.add_data_code_line('void: .word 0') + + #Visiting all types + for node_type in node.types.values(): + self.visit(node_type) + #Adding all data + for node_data in node.data.keys(): + self.add_data_code_line(f'{node_data}: .asciiz "{node.data[node_data]}"') + #Visiting all functions + for node_code in node.code: + self.visit(node_code) + + #Code mips = .data + .text + mips_code = '.data\n' + self.data + '.text\n' + self.text + return mips_code.strip() + + @visitor.when(CilAST.TypeNode) + def visit(self, node): + #Adding Type name and methods to data + self.add_data_code_line(f'{node.name}_name: .asciiz "{node.name}"') + self.add_data_code_line(f'{node.name}_methods:') + for method in node.methods.values(): + self.add_data_code_line(f'.word {method}') + + #Storing attributes offset for later use + id = 0 + self.attributes_offset.__setitem__(node.name, {}) + for attribute in node.attributes: + self.attributes_offset[node.name][attribute] = 4*id + 16 + id = id + 1 + + #Storing methods offset for later use + id = 0 + self.methods_offset.__setitem__(node.name, {}) + for method in node.methods: + self.methods_offset[node.name][method] = 4*id + id = id + 1 + + @visitor.when(CilAST.FunctionNode) + def visit(self, node): + self.current_function = node + + #Saving function variables offset + self.variables_offset.__setitem__(self.current_function.name, {}) + for id, variable in enumerate(self.current_function.local_vars + self.current_function.params): + self.variables_offset[self.current_function.name][variable.name] = (id + 1) * 4 + + self.add_text_code_line(f'{node.name}:') + #Saving space in the stack for local variables + self.add_text_code_line(f'addi $sp, $sp, {-4 * len(node.local_vars)}') + #Saving return address + self.add_text_code_line('addi $sp, $sp, -4') + self.add_text_code_line('sw $ra, 0($sp)') + + #Visiting all instructions of current function + for instruction in node.instructions: + self.visit(instruction) + + #Recovering return address + self.add_text_code_line('lw $ra, 0($sp)') + #Pop local variables, parameters and return address from the stack + total = 4 * len(node.local_vars) + 4 * len(node.params) + 4 + self.add_text_code_line(f'addi $sp, $sp, {total}') + self.add_text_code_line('jr $ra') + + @visitor.when(CilExpr.ParamDeclarationNode) + def visit(self, node): + pass + + @visitor.when(CilExpr.LocalVariableDeclarationNode) + def visit(self, node): + pass + + @visitor.when(CilExpr.AssignNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#AssignNode {node.dest} = {node.expression}') + + #Get offset of the destination variable + offset = self.variables_offset[self.current_function.name][node.dest] + if node.expression: + if isinstance(node.expression,int): + self.add_text_code_line(f'li $t1, {node.expression}') + else: + #Get offset of expression + expr_offset = self.variables_offset[self.current_function.name][node.expression] + self.add_text_code_line(f'lw $t1, {expr_offset}($sp)') + else: + self.add_text_code_line('la $t1, void') + + self.add_text_code_line(f'sw $t1, {offset}($sp)') + + @visitor.when(CilExpr.UnaryOperatorNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#UnaryOperator {node.op} {node.expr_value}') + + #Get offset of expression value + expr_value_offset = self.variables_offset[self.current_function.name][node.expr_value]\ + + self.add_text_code_line(f'lw $t1, {expr_value_offset}($sp)') + if node.op == '~': + self.add_text_code_line('neg $a0, $t1') + else: + self.add_text_code_line('xor $a0, $t1, 1') + + #Get offset of destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $a0, {offset}($sp)') + + @visitor.when(CilExpr.BinaryOperatorNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#BinaryOperator {node.left} {node.op} {node.right}') + + #Get equivalent instruction in mips for operator in Cil + mips_op = self.mips_op[node.op] + #Get offset of left and right locals variable + left_offset = self.variables_offset[self.current_function.name][node.left] + right_offset = self.variables_offset[self.current_function.name][node.right] + + self.add_text_code_line(f'lw $a0, {left_offset}($sp)') + self.add_text_code_line(f'lw $t1, {right_offset}($sp)') + if node.op == "/": + #Adding jump to error if a div by zero error happens + self.add_text_code_line('beq $t1, 0, div_zero_error') + self.add_text_code_line(f'{mips_op} $a0, $a0, $t1') + #Get offset of destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $a0, {offset}($sp)') + + @visitor.when(CilExpr.GetAttrNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#GetAttr {node.variable} = {node.type}.{node.attr}') + #Getting self address + self_offset = self.variables_offset[self.current_function.name][node.instance] + self.add_text_code_line(f'lw $t0, {self_offset}($sp)') + #Getting attribute + attribute_offset = self.attributes_offset[node.type][node.attr] + self.add_text_code_line(f'lw $t1, {attribute_offset}($t0)') + #Storing attribute in local variable + offset = self.variables_offset[self.current_function.name][node.variable] + self.add_text_code_line(f'sw $t1, {offset}($sp)') + + @visitor.when(CilExpr.SetAttrNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#SetAttr {node.type}{node.attr} = {node.value if node.value else "void"}') + #Getting self address + self_offset = self.variables_offset[self.current_function.name][node.instance] + self.add_text_code_line(f'lw $t0, {self_offset}($sp)') + + if node.value: + value_offset = self.variables_offset[self.current_function.name][node.value] + self.add_text_code_line(f'lw $t1, {value_offset}($sp)') + else: + # attribute not initialized + self.add_text_code_line('la $t1, void') + + #Set attribute in instance + offset = self.attributes_offset[node.type][node.attr] + self.add_text_code_line(f'sw $t1, {offset}($t0)') + + @visitor.when(CilExpr.AllocateNode) + def visit(self, node): + total = len(self.types[node.type].attributes) + 4 + #Comment + self.add_text_code_line(f'#Allocate {node.tag}:tag {node.type}:Class_name {total}:Class_size') + + #Allocate space for Object + self.add_text_code_line(f'li $a0, {total * 4}') + self.add_text_code_line('li $v0, 9') + self.add_text_code_line('syscall') + #If heap error jump to error + self.add_text_code_line('bge $v0, $sp, heap_error') + self.add_text_code_line('move $t0, $v0') + + #Initializing Object layout + #Class tag + self.add_text_code_line(f'li $t1, {node.tag}') + self.add_text_code_line('sw $t1, 0($t0)') + #Class name + self.add_text_code_line(f'la $t1, {node.type}_name') + self.add_text_code_line('sw $t1, 4($t0)') + #Class size + self.add_text_code_line(f'li $t1, {total}') + self.add_text_code_line('sw $t1, 8($t0)') + #Class methods pointer + self.add_text_code_line(f'la $t1, {node.type}_methods') + self.add_text_code_line('sw $t1, 12($t0)') + #Store instance address in destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $t0, {offset}($sp)') + + @visitor.when(CilExpr.TypeOfNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#TypeOf {node.variable}') + #Get offset of variable + obj_offset = self.variables_offset[self.current_function.name][node.variable] + #Getting object address + self.add_text_code_line(f'lw $t0, {obj_offset}($sp)') + #Getting type name from the second position in object layout + self.add_text_code_line('lw $t1, 4($t0)') + #Get offset of destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $t1, {offset}($sp)') + + @visitor.when(CilExpr.CallNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#CallNode {node.method_name}') + + self.add_text_code_line('move $t0, $sp') + #Visit all parameters + for param in node.params: + self.visit(param) + #Jump to the function + self.add_text_code_line(f'jal {node.method_name}') + #Store result in destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $a1, {offset}($sp)') + + @visitor.when(CilExpr.VCallNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#VCall {node.method_name}') + + self.add_text_code_line('move $t0, $sp') + #Visit all parameters + for param in node.params: + self.visit(param) + + #Getting instance address + i_offset = self.variables_offset[self.current_function.name][node.instance] + self.add_text_code_line(f'lw $t1, {i_offset}($t0)') + #Adding jump to error in case of instance is void + self.add_text_code_line('la $t0, void') + self.add_text_code_line('beq $t1, $t0, dispatch_void_error') + #Getting dispatch table address + self.add_text_code_line(f'lw $t2, 12($t1)') + #Getting method address + method_offset = self.methods_offset[node.type][node.method_name] + self.add_text_code_line(f'lw $t3, {method_offset}($t2)') + #Jump to the function + self.add_text_code_line('jal $t3') + #Store result in destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $a1, {offset}($sp)') + + @visitor.when(CilExpr.ArgNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'# Arg {node.arg_name}') + #Get offset of arg + offset = self.variables_offset[self.current_function.name][node.arg_name] + #Save arg in stack + self.add_text_code_line(f'lw $t1, {offset}($t0)') + self.add_text_code_line('addi $sp, $sp, -4') + self.add_text_code_line('sw $t1, 0($sp)') + + @visitor.when(CilExpr.IfGotoNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'# IFGoto {node.variable} -> {node.label}') + #Get variable offset + offset = self.variables_offset[self.current_function.name][node.variable] + self.add_text_code_line(f'lw $t0, {offset}($sp)') + #If condition is true jump to label + self.add_text_code_line('lw $a0, 16($t0)') + self.add_text_code_line(f'bnez $a0, {node.label}') + + @visitor.when(CilExpr.LabelNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#LabelNode {node.label}') + #Declare label + self.add_text_code_line(f'{node.label}:') + + @visitor.when(CilExpr.GotoNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Goto {node.label}') + #Unconditionally branch to the instruction at the label + self.add_text_code_line(f'b {node.label}') + + @visitor.when(CilExpr.ReturnNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Return {node.return_value}') + #If function has return value, put it in $a1 + if node.return_value: + offset = self.variables_offset[self.current_function.name][node.return_value] + self.add_text_code_line(f'lw $a1, {offset}($sp)') + #If not, put 0 in $a1 + else: + self.add_text_code_line('move $a1, $zero') + + @visitor.when(CilExpr.LoadIntNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#LoadInt {node.num}') + #Load integer + self.add_text_code_line(f'li $t0, {node.num}') + #Store result in destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $t0, {offset}($sp)') + + @visitor.when(CilExpr.LoadStrNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#LoadStr {node.msg}') + #Load string + self.add_text_code_line(f'la $t0, {node.msg}') + #Store result in destination local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $t0, {offset}($sp)') + + @visitor.when(CilExpr.LengthNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Length of {node.variable}') + #Get address of variable + offset = self.variables_offset[self.current_function.name][node.variable] + self.add_text_code_line(f'lw $t0, {offset}($sp)') + self.add_text_code_line('lw $t0, 16($t0)') + self.add_text_code_line('li $a0, 0') + #Start loop count + self.add_text_code_line('count:') + #Load current char + self.add_text_code_line('lb $t1, 0($t0)') + #Finish if zero was found + self.add_text_code_line('beqz $t1, end') + #Next char + self.add_text_code_line('addi $t0, $t0, 1') + #Length count + 1 + self.add_text_code_line('addi $a0, $a0, 1') + #Next iteration + self.add_text_code_line('j count') + #End label + self.add_text_code_line('end:') + #Store length count address in variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $a0, {offset}($sp)') + + @visitor.when(CilExpr.ConcatNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Concat {node.str1} {node.str2}') + + #Get offsets of str1, str2, len1, len2 + str1_offset = self.variables_offset[self.current_function.name][node.str1] + str2_offset = self.variables_offset[self.current_function.name][node.str2] + len1_offset = self.variables_offset[self.current_function.name][node.len1] + len2_offset = self.variables_offset[self.current_function.name][node.len2] + + #Reserve space for concatanation + self.add_text_code_line(f'lw $a0, {len1_offset}($sp)') + self.add_text_code_line(f'lw $t0, {len2_offset}($sp)') + self.add_text_code_line('add $a0, $a0, $t0') + #Adding one space more for '\0' + self.add_text_code_line('addi $a0, $a0, 1') + #The beginning of the new reserved address is in $v0 and saved in $t3 + self.add_text_code_line('li $v0, 9') + self.add_text_code_line('syscall') + self.add_text_code_line('bge $v0, $sp, heap_error') + self.add_text_code_line('move $t3, $v0') + #Loading beginning of str1 and str2 address in $t0 and $t1 respectively + self.add_text_code_line(f'lw $t0, {str1_offset}($sp)') + self.add_text_code_line(f'lw $t1, {str2_offset}($sp)') + + #Copy string 1 starting in $t0 to $v0 + self.add_text_code_line('copy_str:') + #Loading current char in str1 + self.add_text_code_line('lb $t2, 0($t0)') + #Storing current char in result + self.add_text_code_line('sb $t2, 0($v0)') + #Jump to concat if zero is found + self.add_text_code_line('beqz $t2, concat_str') + #Next char + self.add_text_code_line('addi $t0, $t0, 1') + #Next availabe byte + self.add_text_code_line('addi $v0, $v0, 1') + #Next iteration + self.add_text_code_line('j copy_str') + + #Concat string 2 starting in $t1 to $v0 + self.add_text_code_line('concat_str:') + #Loading current char in str1 + self.add_text_code_line('lb $t2, 0($t1)') + #Storing current char in result + self.add_text_code_line('sb $t2, 0($v0)') + #Jump to end if zero is found + self.add_text_code_line('beqz $t2, end_concat_str') + #Next char + self.add_text_code_line('addi $t1, $t1, 1') + #Next availabe byte + self.add_text_code_line('addi $v0, $v0, 1') + #Next iteration + self.add_text_code_line('j concat_str') + #End of loop + self.add_text_code_line('end_concat_str:') + #Putting '\0' at the end + self.add_text_code_line('sb $0, ($v0)') + + #Store result string address in local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $t3, {offset}($sp)') + + @visitor.when(CilExpr.SubStrNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Substr {node.str}:string {node.index}:index {node.len}:length') + + #Get offsets of index, str and len + index_offset = self.variables_offset[self.current_function.name][node.index] + str_offset = self.variables_offset[self.current_function.name][node.str] + len_offset = self.variables_offset[self.current_function.name][node.len] + + #Reserve space for substring + self.add_text_code_line(f'lw $a0, {len_offset}($sp)') + #Adding one space more for '\0' + self.add_text_code_line('addi $a0, $a0, 1') + #The beginning of the new reserved address is in $v0 + self.add_text_code_line('li $v0, 9') + self.add_text_code_line('syscall') + self.add_text_code_line('bge $v0, $sp, heap_error') + + #Load str, index, len + self.add_text_code_line(f'lw $t0, {index_offset}($sp)') + self.add_text_code_line(f'lw $t1, {len_offset}($sp)') + self.add_text_code_line(f'lw $t4, {str_offset}($sp)') + self.add_text_code_line('lw $t2, 16($t4)') + + #If index is not valid, jump to error + self.add_text_code_line('bltz $t0, substr_error') + #Reset $a0 + self.add_text_code_line('li $a0, 0') + #Skip first index chars + self.add_text_code_line('skip_char:') + #If we are at char with pos == index, jump to end of loop + self.add_text_code_line('beq $a0, $t0, end_skip') + #Count of char + self.add_text_code_line('addi $a0, $a0, 1') + #Next char + self.add_text_code_line('addi $t2, $t2, 1') + #End of string < index, error + self.add_text_code_line('beq $t2, $zero, substr_error') + #Next iteration + self.add_text_code_line('j skip_char') + #End of loop + self.add_text_code_line('end_skip:') + #Reset $a0 + self.add_text_code_line('li $a0, 0') + #Saving start of substring + self.add_text_code_line('move $t3, $v0') + + #Copy char from string $t2 until length stored in $t1 with initial index $t0 + self.add_text_code_line('substr_copy:') + #If count of char equal length jump to end of loop + self.add_text_code_line('beq $a0, $t1, end_substr_copy') + #Reset $t0 + self.add_text_code_line('li $t0, 0') + #Loading current char in str + self.add_text_code_line('lb $t0, 0($t2)') + #Storing current char in result + self.add_text_code_line('sb $t0, 0($v0)') + #Next char + self.add_text_code_line('addi $t2, $t2, 1') + #End of string < index, error + self.add_text_code_line('beq $t2, $zero, substr_error') + #Next availabe byte + self.add_text_code_line('addi $v0, $v0, 1') + #Char count + 1 + self.add_text_code_line('addi $a0, $a0, 1') + #Next iteration + self.add_text_code_line('j substr_copy') + #End of loop + self.add_text_code_line('end_substr_copy:') + #Putting '\0' at the end + self.add_text_code_line('sb $0, ($v0)') + + #Store result substring address in local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $t3, {offset}($sp)') + + @visitor.when(CilExpr.ReadIntegerNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#ReadInteger {node.line}') + #Read integer + self.add_text_code_line('li $v0, 5') + self.add_text_code_line('syscall') + #Store integer address in local variable + offset = self.variables_offset[self.current_function.name][node.line] + self.add_text_code_line(f'sw $v0, {offset}($sp)') + + @visitor.when(CilExpr.ReadStringNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#ReadString {node.line}') + #Read string + self.add_text_code_line('la $a0, input_str') + self.add_text_code_line('li $a1, 2048') + self.add_text_code_line('li $v0, 8') + self.add_text_code_line('syscall') + + self.add_text_code_line('move $t0, $a0') + #Read char by char until the end of the string + self.add_text_code_line('read_char:') + #Reset $t1 + self.add_text_code_line('li $t1, 0') + #Load current char + self.add_text_code_line('lb $t1, 0($t0)') + #If string final char found jump to the other loop + self.add_text_code_line('beqz $t1, remove_characters_str_end') + #Next char + self.add_text_code_line('addi $t0, $t0, 1') + #Next iteration + self.add_text_code_line('j read_char') + + #Remove last characters if they are '\n' or '\r\n' + self.add_text_code_line('remove_characters_str_end:') + #Move to char at length - 1 + self.add_text_code_line('addi $t0, $t0, -1') + #Reset $t1 + self.add_text_code_line('li $t1, 0') + #Load current char + self.add_text_code_line('lb $t1, 0($t0)') + #Remove char only if it is '\n' + self.add_text_code_line('bne $t1, 10, rcs_end') + #Trying to remove '\r\n' + self.add_text_code_line('sb $0, 0($t0)') + #Move to char at length - 2 + self.add_text_code_line('addi $t0, $t0, -1') + #Reset $t1 + self.add_text_code_line('lb $t1, 0($t0)') + #Load current char + self.add_text_code_line('bne $t1, 13, rcs_end') + #Remove '\r\n' + self.add_text_code_line('sb $0, 0($t0)') + #Next iteration + self.add_text_code_line('j remove_characters_str_end') + #End of loop + self.add_text_code_line('rcs_end:') + + #Store string address in local variable + offset = self.variables_offset[self.current_function.name][node.line] + self.add_text_code_line(f'sw $a0, {offset}($sp)') + + @visitor.when(CilExpr.PrintIntegerNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#PrintInteger {node.line}') + #Print + self.add_text_code_line('li $v0, 1') + #If line it is a value + if isinstance(node.line, int): + self.add_text_code_line(f'li $a0, {node.line}') + #If line it is a variable + else: + #Get offset of variable + offset = self.variables_offset[self.current_function.name][node.line] + self.add_text_code_line(f'lw $a0, {offset}($sp)') + self.add_text_code_line('syscall') + + @visitor.when(CilExpr.PrintStringNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#PrintString {node.line}') + #Get offset of string + offset = self.variables_offset[self.current_function.name][node.line] + self.add_text_code_line(f'lw $a0, {offset}($sp)') + #Print string + self.add_text_code_line('li $v0, 4') + self.add_text_code_line('syscall') + + @visitor.when(CilExpr.AbortNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Abort') + #Abort + self.add_text_code_line('li $v0, 10') + self.add_text_code_line('syscall') + + @visitor.when(CilExpr.CaseNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Case {node.local_expr}') + #Get offset + offset = self.variables_offset[self.current_function.name][node.local_expr] + self.add_text_code_line(f'lw $t0, {offset}($sp)') + self.add_text_code_line('lw $t1, 0($t0)') + self.add_text_code_line('la $a0, void') + #Jump to first case if not void + self.add_text_code_line(f'bne $t1, $a0, {node.first_label}') + #If void jump to error + self.add_text_code_line(f'b case_void_error') + + @visitor.when(CilExpr.ActionNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Action') + #Jump to the corresponding label + self.add_text_code_line(f'blt $t1, {node.tag}, {node.next_label}') + self.add_text_code_line(f'bgt $t1, {node.max_tag}, {node.next_label}') + + @visitor.when(CilExpr.StringEqualsNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#StringEquals {node.str1} = {node.str2}') + #Get offset of str1 and str2 + str1_offset = self.variables_offset[self.current_function.name][node.str1] + str2_offset = self.variables_offset[self.current_function.name][node.str2] + + #Loading beginning of str1 and str2 address in $t1 and $t2 respectively + self.add_text_code_line(f'lw $t1, {str1_offset}($sp)') + self.add_text_code_line(f'lw $t2, {str2_offset}($sp)') + + #Comparing char by char + self.add_text_code_line('compare_str:') + #Reset $t3 + self.add_text_code_line('li $t3, 0') + #Loading current char from str1 + self.add_text_code_line('lb $t3, 0($t1)') + #Reset $t4 + self.add_text_code_line('li $t4, 0') + #Loading current char from str2 + self.add_text_code_line('lb $t4, 0($t2)') + #Compare current bytes + self.add_text_code_line('seq $a0, $t3, $t4') + #Jump to end if current char are differents + self.add_text_code_line('beqz $a0, end_compare_str') + #Jump to end if it is found the str1 final char + self.add_text_code_line('beqz $t3, end_compare_str') + #Jump to end if it is found the str2 final char + self.add_text_code_line('beqz $t4, end_compare_str') + #Next char str1 + self.add_text_code_line('addi $t1, $t1, 1') + #Next char str2 + self.add_text_code_line('addi $t2, $t2, 1') + #Next iteration + self.add_text_code_line('j compare_str') + #End of loop + self.add_text_code_line('end_compare_str:') + + #Store result compare address in local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $a0, {offset}($sp)') + + @visitor.when(CilExpr.IsVoidNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#IsVoid {node.expr}') + #Load void to $t0 + self.add_text_code_line('la $t0, void') + #Get offset + expr_offset = self.variables_offset[self.current_function.name][node.expr] + self.add_text_code_line(f'lw $t1, {expr_offset}($sp)') + #Check if it is void + self.add_text_code_line('seq $a0, $t0, $t1') + #Store result address in local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $a0, {offset}($sp)') + + @visitor.when(CilExpr.CopyNode) + def visit(self, node): + #Comment + self.add_text_code_line(f'#Copy {node.type}') + #Get self address + self_offset = self.variables_offset[self.current_function.name][node.type] + self.add_text_code_line(f'lw $t0, {self_offset}($sp)') + #Get size + self.add_text_code_line('lw $a0, 8($t0)') + self.add_text_code_line('mul $a0, $a0, 4') + self.add_text_code_line('li $v0, 9') + self.add_text_code_line('syscall') + #If heap error jump to error + self.add_text_code_line('bge $v0, $sp, heap_error') + self.add_text_code_line('move $t1, $v0') + + #Reset $a0 + self.add_text_code_line('li $a0, 0') + #Load size + self.add_text_code_line('lw $t3, 8($t0)') + #copy all slots (attributes, methods, size, tag) + self.add_text_code_line('copy_object:') + #Load current object word from source + self.add_text_code_line('lw $t2, 0($t0)') + #Store current object word to destination + self.add_text_code_line('sw $t2, 0($t1)') + #Next word source object + self.add_text_code_line('addi $t0, $t0, 4') + #Next word destination object + self.add_text_code_line('addi $t1, $t1, 4') + #Size count + self.add_text_code_line('addi $a0, $a0, 1') + #If there are still words for copy, jump to copy_object + self.add_text_code_line('blt $a0, $t3, copy_object') + + #Store instance of object address in local variable + offset = self.variables_offset[self.current_function.name][node.local_var] + self.add_text_code_line(f'sw $v0, {offset}($sp)') + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/code_generation/code_generation.py b/src/code_generation/code_generation.py new file mode 100644 index 000000000..4e4115228 --- /dev/null +++ b/src/code_generation/code_generation.py @@ -0,0 +1,13 @@ +from .cil_to_mips import CilToMipsVisitor +from .cool_to_cil import CoolToCilVisitor + +class MyCodeGenerator: + def __init__(self, context): + self.context = context + + def compile(self, cool_ast, scope): + cool_to_cil = CoolToCilVisitor(self.context) + cil_ast = cool_to_cil.visit(cool_ast,scope) + cil_to_mips = CilToMipsVisitor() + mips_code = cil_to_mips.visit(cil_ast) + return mips_code \ No newline at end of file diff --git a/src/code_generation/cool_to_cil.py b/src/code_generation/cool_to_cil.py new file mode 100644 index 000000000..35d9bfdf2 --- /dev/null +++ b/src/code_generation/cool_to_cil.py @@ -0,0 +1,895 @@ +from semantic.tools.scope import Scope +from semantic.tools.var import VariableInfo +from semantic.visitor import visitor +from nodes import ast_nodes as CoolAST +from nodes import cil_ast_nodes as CilAST +from nodes import expr_nodes as CoolExpr +from nodes import cil_expr_nodes as CilExpr +from nodes import operations_nodes as CoolOp + +class CoolToCilVisitor: + def __init__(self, context): + self.context = context + self.types = {} + self.data = {} + self.code = [] + self.current_type = None + self.current_function = None + self.context.set_type_tags() + self.context.set_type_max_tags() + self.label_num = 0 + + def next_label(self): + self.label_num += 1 + new_label = f'label_{self.label_num}' + return new_label + + def register_type(self, type_name): + type_node = CilAST.TypeNode(type_name) + self.types[type_name] = type_node + return type_node + + def register_data(self, msg): + variable_name = f'msg_{len(self.data)}' + self.data[variable_name] = msg + return variable_name + + def register_function(self, function_name): + function_node = CilAST.FunctionNode(function_name,[],[],[]) + self.code.append(function_node) + return function_node + + def register_local_variable(self, variable_name): + local_variable_node = CilExpr.LocalVariableDeclarationNode(variable_name) + self.current_function.local_vars.append(local_variable_node) + return variable_name + + def define_local_variable_in_scope(self, scope, type_name = None, cool_variable_name = None, variable_name = "l" ): + cil_variable_name = f'{variable_name}_{len(self.current_function.local_vars)}' + if type_name != None: + cil_variable_name = f'{type_name}.{variable_name}' + scope.define_cil_local(cool_variable_name,cil_variable_name, None) + self.register_local_variable(cil_variable_name) + return cil_variable_name + + def register_param(self, param_name): + param_node = CilExpr.ParamDeclarationNode(param_name.name) + self.current_function.params.append(param_node) + return param_name.name + + def register_instruction(self, instruction): + self.current_function.instructions.append(instruction) + return instruction + + # ---------------------------------- Visitor ----------------------------------------------- # + @visitor.on('node') + def visit(self, node, scope): + pass + + @visitor.when(CoolAST.ProgramNode) + def visit(self, node, scope = None): + scope = Scope() + + #Adding main function + self.current_function = self.register_function('main') + instance = self.define_local_variable_in_scope(scope = scope, variable_name="instance") + result = self.define_local_variable_in_scope(scope = scope, variable_name="result") + tag = self.context.get_type('Main').tag + self.register_instruction(CilExpr.AllocateNode(instance,'Main',tag)) + self.register_instruction(CilExpr.CallNode(result,'Main','Main_init',[CilExpr.ArgNode(instance)])) + self.register_instruction(CilExpr.CallNode(result,'Main','Main.main',[CilExpr.ArgNode(instance)])) + self.register_instruction(CilExpr.ReturnNode(None)) + self.current_function = None + + #Auxiliar strings + self.register_data('Abort called from class ') + self.register_data('\n') + self.data['empty_str'] = '' + + #Adding built-in types in .TYPES section + for t in ['Object', 'Int', 'String', 'Bool', 'IO']: + builtin_type = self.context.get_type(t) + cil_type = self.register_type(t) + cil_type.attributes = [f'{attr.name}' for attr in builtin_type.attributes] + cil_type.methods = {f'{method}':f'{name}.{method}' for name, method in builtin_type.get_all_methods()} + if t in ['Int','String','Bool']: + cil_type.attributes.append('value') + + #-------------------------------------Object---------------------------------------# + #init + self.current_function = self.register_function('Object_init') + self.register_param(VariableInfo('self',None)) + self.register_instruction(CilExpr.ReturnNode(None)) + + #abort + self.current_function = self.register_function('Object.abort') + self.register_param(VariableInfo('self',None)) + msg = self.define_local_variable_in_scope(scope=scope,variable_name='msg') + key_msg = '' + key_eol = '' + for key in self.data.keys(): + if self.data[key] == 'Abort called from class ': + key_msg = key + elif self.data[key] == '\n': + key_eol = key + self.register_instruction(CilExpr.LoadStrNode(msg,key_msg)) + self.register_instruction(CilExpr.PrintStringNode(msg)) + class_name = self.define_local_variable_in_scope(scope=scope,variable_name="class_name") + self.register_instruction(CilExpr.TypeOfNode(class_name,'self')) + self.register_instruction(CilExpr.PrintStringNode(class_name)) + end_of_line = self.define_local_variable_in_scope(scope=scope,variable_name="eol") + self.register_instruction(CilExpr.LoadStrNode(end_of_line,key_eol)) + self.register_instruction(CilExpr.PrintStringNode(end_of_line)) + self.register_instruction(CilExpr.AbortNode()) + + #type_name + self.current_function = self.register_function('Object.type_name') + self.register_param(VariableInfo('self',None)) + class_name = self.define_local_variable_in_scope(scope=scope,variable_name="class_name") + self.register_instruction(CilExpr.TypeOfNode(class_name,'self')) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('String').tag + self.register_instruction(CilExpr.AllocateNode(instance,'String',tag)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(class_name) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,'String','String_init',[arg1,arg2])) + self.register_instruction(CilExpr.ReturnNode(instance)) + + #copy + self.current_function = self.register_function('Object.copy') + self.register_param(VariableInfo('self',None)) + object_copy = self.define_local_variable_in_scope(scope=scope, variable_name='object_copy') + self.register_instruction(CilExpr.CopyNode(object_copy,'self')) + self.register_instruction(CilExpr.ReturnNode(object_copy)) + + #-------------------------------------IO---------------------------------------# + #init + self.current_function = self.register_function('IO_init') + self.register_param(VariableInfo('self',None)) + self.register_instruction(CilExpr.ReturnNode(None)) + + #out_string + self.current_function = self.register_function('IO.out_string') + self.register_param(VariableInfo('self',None)) + self.register_param(VariableInfo('x', None)) + v = self.define_local_variable_in_scope(scope=scope, variable_name="v") + self.register_instruction(CilExpr.GetAttrNode(v,'String','value','x')) + self.register_instruction(CilExpr.PrintStringNode(v)) + self.register_instruction(CilExpr.ReturnNode('self')) + + #out_int + self.current_function = self.register_function('IO.out_int') + self.register_param(VariableInfo('self',None)) + self.register_param(VariableInfo('x', None)) + v = self.define_local_variable_in_scope(scope=scope, variable_name="v") + self.register_instruction(CilExpr.GetAttrNode(v,'Int','value','x')) + self.register_instruction(CilExpr.PrintIntegerNode(v)) + self.register_instruction(CilExpr.ReturnNode('self')) + + #in_string + self.current_function = self.register_function('IO.in_string') + self.register_param(VariableInfo('self',None)) + msg = self.define_local_variable_in_scope(scope=scope,variable_name="read_string") + self.register_instruction(CilExpr.ReadStringNode(msg)) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('String').tag + self.register_instruction(CilExpr.AllocateNode(instance,'String',tag)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(msg) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,'String','String_init',[arg1,arg2])) + self.register_instruction(CilExpr.ReturnNode(instance)) + + #in_int + self.current_function = self.register_function('IO.in_int') + self.register_param(VariableInfo('self',None)) + num = self.define_local_variable_in_scope(scope=scope,variable_name="read_int") + self.register_instruction(CilExpr.ReadIntegerNode(num)) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(instance,'Int',tag)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(num) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,'Int','Int_init',[arg1,arg2])) + self.register_instruction(CilExpr.ReturnNode(instance)) + + #-------------------------------------Int---------------------------------------# + #init + self.current_function = self.register_function('Int_init') + self.register_param(VariableInfo('self',None)) + self.register_param(VariableInfo('v',None)) + self.register_instruction(CilExpr.SetAttrNode('Int','value','v', 'self')) + self.register_instruction(CilExpr.ReturnNode(None)) + + #-------------------------------------String---------------------------------------# + #init + self.current_function = self.register_function('String_init') + self.register_param(VariableInfo('self',None)) + self.register_param(VariableInfo('v',None)) + self.register_instruction(CilExpr.SetAttrNode('String','value','v', 'self')) + self.register_instruction(CilExpr.ReturnNode(None)) + + #length + self.current_function = self.register_function('String.length') + self.register_param(VariableInfo('self',None)) + str_length = self.define_local_variable_in_scope(scope=scope, variable_name="length") + self.register_instruction(CilExpr.LengthNode(str_length,'self')) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(instance,'Int',tag)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(str_length) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,'Int','Int_init',[arg1,arg2])) + self.register_instruction(CilExpr.ReturnNode(instance)) + + #concat + self.current_function = self.register_function('String.concat') + self.register_param(VariableInfo('self',None)) + self.register_param(VariableInfo('s',None)) + str1 = self.define_local_variable_in_scope(scope=scope, variable_name="str1") + self.register_instruction(CilExpr.GetAttrNode(str1,'String','value','self')) + len1 = self.define_local_variable_in_scope(scope=scope, variable_name="len1") + self.register_instruction(CilExpr.CallNode(len1,'String','String.length',[CilExpr.ArgNode('self')])) + str2 = self.define_local_variable_in_scope(scope=scope, variable_name="str2") + self.register_instruction(CilExpr.GetAttrNode(str2,'String','value','s')) + len2 = self.define_local_variable_in_scope(scope=scope, variable_name="len2") + self.register_instruction(CilExpr.CallNode(len2,'String','String.length',[CilExpr.ArgNode('s')])) + ## Get real value from memory address returned by Length + len1_value = self.define_local_variable_in_scope(scope=scope,variable_name="len1_value") + self.register_instruction(CilExpr.GetAttrNode(len1_value,'Int','value',len1)) + len2_value = self.define_local_variable_in_scope(scope=scope,variable_name="len2_value") + self.register_instruction(CilExpr.GetAttrNode(len2_value,'Int','value',len2)) + ## New string, result from concat + result_string = self.define_local_variable_in_scope(scope=scope, variable_name="result_string") + self.register_instruction(CilExpr.ConcatNode(result_string,str1,str2,len1_value,len2_value)) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('String').tag + self.register_instruction(CilExpr.AllocateNode(instance,'String',tag)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(result_string) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,'String','String_init',[arg1,arg2])) + self.register_instruction(CilExpr.ReturnNode(instance)) + + #substr + self.current_function = self.register_function('String.substr') + self.register_param(VariableInfo('self',None)) + self.register_param(VariableInfo('index',None)) + self.register_param(VariableInfo('len',None)) + i_value = self.define_local_variable_in_scope(scope=scope,variable_name="i_value") + self.register_instruction(CilExpr.GetAttrNode(i_value,'Int','value','index')) + l_value = self.define_local_variable_in_scope(scope=scope,variable_name="l_value") + self.register_instruction(CilExpr.GetAttrNode(l_value,'Int','value','len')) + ## New string, result from substr + result_substr = self.define_local_variable_in_scope(scope=scope,variable_name="substr_result") + self.register_instruction(CilExpr.SubStrNode(result_substr,i_value,'self',l_value)) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('String').tag + self.register_instruction(CilExpr.AllocateNode(instance,'String',tag)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(result_substr) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,'String','String_init',[arg1,arg2])) + self.register_instruction(CilExpr.ReturnNode(instance)) + + #-------------------------------------Bool---------------------------------------# + #init + self.current_function = self.register_function('Bool_init') + self.register_param(VariableInfo('self',None)) + self.register_param(VariableInfo('v',None)) + self.register_instruction(CilExpr.SetAttrNode('Bool','value','v', 'self')) + self.register_instruction(CilExpr.ReturnNode(None)) + + #-----------String Equals------------------# + self.current_function = self.register_function('String_equals') + self.register_param(VariableInfo('str1',None)) + self.register_param(VariableInfo('str2',None)) + str1_value = self.define_local_variable_in_scope(scope=scope,variable_name="str1") + self.register_instruction(CilExpr.GetAttrNode(str1_value,'String','value','str1')) + str2_value = self.define_local_variable_in_scope(scope=scope,variable_name="str2") + self.register_instruction(CilExpr.GetAttrNode(str2_value,'String','value','str2')) + equals_result = self.define_local_variable_in_scope(scope=scope,variable_name="result") + self.register_instruction(CilExpr.StringEqualsNode(equals_result,str1_value,str2_value)) + self.register_instruction(CilExpr.ReturnNode(equals_result)) + + #Visit class nodes + for _class in node.classes: + self.visit(_class, scope.create_child()) + + program_node = CilAST.ProgramNode(self.types,self.data,self.code) + return program_node + + @visitor.when(CoolAST.ClassNode) + def visit(self, node, scope): + self.current_type = self.context.get_type(node.name) + cil_type = self.register_type(self.current_type.name) + cil_type.attributes = [f'{attr.name}' for _, attr in self.current_type.get_all_attributes()] + cil_type.methods = {f'{method}':f'{name}.{method}' for name, method in self.current_type.get_all_methods()} + scope.define_cil_local('self',self.current_type.name,self.current_type) + + function_declarations = [] + attribute_declarations = [] + + for feature in node.features: + if isinstance(feature, CoolAST.ClassMethodNode): + function_declarations.append(feature) + else: + attribute_declarations.append(feature) + scope.define_cil_local(feature.name, feature.name, node.name) + + #init + self.current_function = self.register_function(f'{node.name}_init') + self.register_param(VariableInfo('self',None)) + #init parents + result = self.define_local_variable_in_scope(scope=scope,variable_name="result") + self.register_instruction(CilExpr.CallNode(result, node.parent, f'{node.parent}_init',[CilExpr.ArgNode('self')])) + self.register_instruction(CilExpr.ReturnNode(None)) + + for attribute in attribute_declarations: + self.visit(attribute,scope) + + self.current_function = None + + for function in function_declarations: + self.visit(function,scope.create_child()) + + self.current_type = None + + @visitor.when(CoolAST.AttrInitNode) + def visit(self, node, scope): + expression_value = self.visit(node.expression, scope) + instruction = CilExpr.SetAttrNode(self.current_type.name,node.name,expression_value,'self') + self.register_instruction(instruction) + + @visitor.when(CoolAST.AttrDefNode) + def visit(self, node, scope): + instance = None + if node.attr_type in ['Int', 'Bool', 'String']: + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type(node.attr_type).tag + self.register_instruction(CilExpr.AllocateNode(instance,node.attr_type,tag)) + value = self.define_local_variable_in_scope(scope=scope, variable_name='value') + if node.attr_type == 'String': + self.register_instruction(CilExpr.LoadStrNode(value,'empty_str')) + else: + self.register_instruction(CilExpr.LoadIntNode(value,0)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(value) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,node.attr_type,f'{node.attr_type}_init',[arg1,arg2])) + instruction = CilExpr.SetAttrNode(self.current_type.name,node.name,instance,'self') + self.register_instruction(instruction) + + @visitor.when(CoolAST.ClassMethodNode) + def visit(self, node, scope): + cil_method_name = f'{self.current_type.name}.{node.name}' + self.types[self.current_type.name].methods[node.name] = cil_method_name + self.current_function = self.register_function(cil_method_name) + self.register_param(VariableInfo('self',self.current_type)) + for param in node.params: + self.register_param(VariableInfo(param.name,param.param_type)) + value = self.visit(node.expression, scope) + self.register_instruction(CilExpr.ReturnNode(value)) + + @visitor.when(CoolExpr.DynamicCallNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope,variable_name="result") + + expression_value = self.visit(node.obj, scope) + + args = [] + for arg in reversed(node.args): + param = self.visit(arg, scope) + args.append(CilExpr.ArgNode(param)) + args.append(CilExpr.ArgNode(expression_value)) + + dynamic_type = node.obj.expr_type.name + self.register_instruction(CilExpr.VCallNode(result,dynamic_type,node.method,args,expression_value)) + return result + + @visitor.when(CoolExpr.StaticCallNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope,variable_name="result") + + expression_value = self.visit(node.obj, scope) + + args = [] + for arg in reversed(node.args): + param = self.visit(arg, scope) + args.append(CilExpr.ArgNode(param)) + args.append(CilExpr.ArgNode(expression_value)) + + instance = self.define_local_variable_in_scope(scope=scope,variable_name="instance") + tag = self.context.get_type(node.static_type).tag + self.register_instruction(CilExpr.AllocateNode(instance,node.static_type,tag)) + self.register_instruction(CilExpr.VCallNode(result,node.static_type,node.method,args,instance)) + return result + + @visitor.when(CoolExpr.AssignNode) + def visit(self, node, scope): + expression_value = self.visit(node.expression, scope) + self.define_local_variable_in_scope(scope=scope, variable_name="result") + is_param = False + for param in self.current_function.params: + if param.name == node.name: + is_param = True + break + if is_param: + self.register_instruction(CilExpr.AssignNode(node.name,expression_value)) + elif self.current_type.has_attr(node.name): + self.register_instruction(CilExpr.SetAttrNode(self.current_type.name,node.name,expression_value,'self')) + else: + cil_node_name = scope.find_cil_local(node.name) + self.register_instruction(CilExpr.AssignNode(cil_node_name, expression_value)) + + return expression_value + + @visitor.when(CoolExpr.CaseNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + case_expression = self.visit(node.expression,scope) + + label = self.next_label() + label_for_exit = self.next_label() + + self.register_instruction(CilExpr.CaseNode(case_expression,label)) + + #Getting tags of each action + tags_list = [] + act_dict = {} + for action in node.act_list: + tag = self.context.get_type(action.act_type).tag + tags_list.append(tag) + act_dict[tag] = action + + #Sort the tags_list + tags_list.sort() + #For each tag in descending order visit the corresponding action and create the nodes + for tag in reversed(tags_list): + action = act_dict[tag] + self.register_instruction(CilExpr.LabelNode(label)) + label = self.next_label() + act_type = self.context.get_type(action.act_type) + self.register_instruction(CilExpr.ActionNode(case_expression,act_type.tag,act_type.max_tag,label)) + act_scope = scope.create_child() + act_id = self.define_local_variable_in_scope(scope=act_scope,variable_name=action.name, cool_variable_name=action.name) + self.register_instruction(CilExpr.AssignNode(act_id,case_expression)) + act_expression = self.visit(action.body,act_scope) + self.register_instruction(CilExpr.AssignNode(result,act_expression)) + self.register_instruction(CilExpr.GotoNode(label_for_exit)) + + self.register_instruction(CilExpr.LabelNode(label)) + #If not found any match case, goto error + self.register_instruction(CilExpr.GotoNode('case_no_match_error')) + self.register_instruction(CilExpr.LabelNode(label_for_exit)) + return result + + @visitor.when(CoolExpr.ActionNode) + def visit(self, node, scope): + pass + + @visitor.when(CoolExpr.IfNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + predicate_value = self.visit(node.predicate,scope) + then_label = self.next_label() + self.register_instruction(CilExpr.IfGotoNode(predicate_value,then_label)) + else_value = self.visit(node.else_expr,scope) + self.register_instruction(CilExpr.AssignNode(result,else_value)) + end_if_label = self.next_label() + self.register_instruction(CilExpr.GotoNode(end_if_label)) + self.register_instruction(CilExpr.LabelNode(then_label)) + then_value = self.visit(node.then_expr,scope) + self.register_instruction(CilExpr.AssignNode(result,then_value)) + self.register_instruction(CilExpr.LabelNode(end_if_label)) + return result + + @visitor.when(CoolExpr.WhileNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + conditional_label = self.next_label() + body_label = self.next_label() + end_label = self.next_label() + self.register_instruction(CilExpr.LabelNode(conditional_label)) + predicate_value = self.visit(node.predicate,scope) + self.register_instruction(CilExpr.IfGotoNode(predicate_value,body_label)) + self.register_instruction(CilExpr.GotoNode(end_label)) + self.register_instruction(CilExpr.LabelNode(body_label)) + self.visit(node.expression, scope) + self.register_instruction(CilExpr.GotoNode(conditional_label)) + self.register_instruction(CilExpr.LabelNode(end_label)) + self.register_instruction(CilExpr.LoadVoidNode(result)) + return result + + @visitor.when(CoolExpr.BlockNode) + def visit(self, node, scope): + for expr in node.expr_list: + result = self.visit(expr, scope) + return result + + @visitor.when(CoolExpr.LetNode) + def visit(self, node, scope): + let_scope = scope.create_child() + + for var in node.init_list: + self.visit(var, let_scope) + + body_result = self.visit(node.body, let_scope) + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + self.register_instruction(CilExpr.AssignNode(result,body_result)) + return result + + @visitor.when(CoolAST.LetInitNode) + def visit(self, node, scope): + expression_value = self.visit(node.expression, scope) + variable = self.define_local_variable_in_scope(scope=scope,variable_name=node.name,cool_variable_name=node.name) + self.register_instruction(CilExpr.AssignNode(variable,expression_value)) + return variable + + @visitor.when(CoolAST.LetDefNode) + def visit(self, node, scope): + instance = None + if node.let_type in ['Int', 'Bool', 'String']: + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type(node.let_type).tag + self.register_instruction(CilExpr.AllocateNode(instance,node.let_type,tag)) + value = self.define_local_variable_in_scope(scope=scope, variable_name='value') + if node.let_type == 'String': + self.register_instruction(CilExpr.LoadStrNode(value,'empty_str')) + else: + self.register_instruction(CilExpr.LoadIntNode(value,0)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(value) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,node.let_type,f'{node.let_type}_init',[arg1,arg2])) + variable = self.define_local_variable_in_scope(scope=scope,variable_name=node.name,cool_variable_name=node.name) + self.register_instruction(CilExpr.AssignNode(variable,instance)) + return variable + + @visitor.when(CoolExpr.NewNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope,variable_name="result") + init = self.define_local_variable_in_scope(scope=scope,variable_name="init") + + if node.new_type == 'SELF_TYPE': + tag = self.current_type.tag + name = self.current_type.name + self.register_instruction(CilExpr.AllocateNode(result,name,tag)) + self.register_instruction(CilExpr.CallNode(init,name,f'{name}_init',[result])) + else : + tag = self.context.get_type(node.new_type).tag + self.register_instruction(CilExpr.AllocateNode(result,node.new_type,tag)) + self.register_instruction(CilExpr.CallNode(init,self.current_type.name,f'{node.new_type}_init',[CilExpr.ArgNode(result)])) + + return result + + @visitor.when(CoolExpr.IsVoidNode) + def visit(self, node, scope): + expression_value = self.visit(node.expression, scope) + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + self.register_instruction(CilExpr.IsVoidNode(result,expression_value)) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('Bool').tag + self.register_instruction(CilExpr.AllocateNode(instance,'Bool',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name='init') + arg1 = CilExpr.ArgNode(result) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,'Bool','Bool_init',[arg1,arg2])) + self.register_instruction(CilExpr.ReturnNode(instance)) + return instance + + @visitor.when(CoolOp.SumNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + left = self.define_local_variable_in_scope(scope=scope, variable_name="left") + right = self.define_local_variable_in_scope(scope=scope, variable_name="right") + + left_value = self.visit(node.left, scope) + right_value = self.visit(node.right, scope) + + self.register_instruction(CilExpr.GetAttrNode(left,node.left.expr_type.name,"value",left_value)) + self.register_instruction(CilExpr.GetAttrNode(right,node.right.expr_type.name,"value",right_value)) + self.register_instruction(CilExpr.BinaryOperatorNode(op,left,"+",right)) + + #Allocate Int result + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(result,'Int',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Int','Int_init',[arg1,arg2])) + + return result + + @visitor.when(CoolOp.SubNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + left = self.define_local_variable_in_scope(scope=scope, variable_name="left") + right = self.define_local_variable_in_scope(scope=scope, variable_name="right") + + left_value = self.visit(node.left, scope) + right_value = self.visit(node.right, scope) + + self.register_instruction(CilExpr.GetAttrNode(left,node.left.expr_type.name,"value",left_value)) + self.register_instruction(CilExpr.GetAttrNode(right,node.right.expr_type.name,"value",right_value)) + self.register_instruction(CilExpr.BinaryOperatorNode(op,left,"-",right)) + + #Allocate Int result + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(result,'Int',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Int','Int_init',[arg1,arg2])) + + return result + + @visitor.when(CoolOp.MultNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + left = self.define_local_variable_in_scope(scope=scope, variable_name="left") + right = self.define_local_variable_in_scope(scope=scope, variable_name="right") + + left_value = self.visit(node.left, scope) + right_value = self.visit(node.right, scope) + + self.register_instruction(CilExpr.GetAttrNode(left,node.left.expr_type.name,"value",left_value)) + self.register_instruction(CilExpr.GetAttrNode(right,node.right.expr_type.name,"value",right_value)) + self.register_instruction(CilExpr.BinaryOperatorNode(op,left,"*",right)) + + #Allocate Int result + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(result,'Int',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Int','Int_init',[arg1,arg2])) + + return result + + @visitor.when(CoolOp.DivNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + left = self.define_local_variable_in_scope(scope=scope, variable_name="left") + right = self.define_local_variable_in_scope(scope=scope, variable_name="right") + + left_value = self.visit(node.left, scope) + right_value = self.visit(node.right, scope) + + self.register_instruction(CilExpr.GetAttrNode(left,node.left.expr_type.name,"value",left_value)) + self.register_instruction(CilExpr.GetAttrNode(right,node.right.expr_type.name,"value",right_value)) + self.register_instruction(CilExpr.BinaryOperatorNode(op,left,"/",right)) + + #Allocate Int result + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(result,'Int',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Int','Int_init',[arg1,arg2])) + + return result + + @visitor.when(CoolOp.LessEqualNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + left = self.define_local_variable_in_scope(scope=scope, variable_name="left") + right = self.define_local_variable_in_scope(scope=scope, variable_name="right") + + left_value = self.visit(node.left, scope) + right_value = self.visit(node.right, scope) + + self.register_instruction(CilExpr.GetAttrNode(left,node.left.expr_type.name,"value",left_value)) + self.register_instruction(CilExpr.GetAttrNode(right,node.right.expr_type.name,"value",right_value)) + self.register_instruction(CilExpr.BinaryOperatorNode(op,left,"<=",right)) + + #Allocate Bool result + tag = self.context.get_type('Bool').tag + self.register_instruction(CilExpr.AllocateNode(result,'Bool',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Bool','Bool_init',[arg1,arg2])) + + return result + + @visitor.when(CoolOp.LessNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + left = self.define_local_variable_in_scope(scope=scope, variable_name="left") + right = self.define_local_variable_in_scope(scope=scope, variable_name="right") + + left_value = self.visit(node.left, scope) + right_value = self.visit(node.right, scope) + + self.register_instruction(CilExpr.GetAttrNode(left,node.left.expr_type.name,"value",left_value)) + self.register_instruction(CilExpr.GetAttrNode(right,node.right.expr_type.name,"value",right_value)) + self.register_instruction(CilExpr.BinaryOperatorNode(op,left,"<",right)) + + #Allocate Bool result + tag = self.context.get_type('Bool').tag + self.register_instruction(CilExpr.AllocateNode(result,'Bool',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Bool','Bool_init',[arg1,arg2])) + + return result + + @visitor.when(CoolOp.LogicNotNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + expression = self.define_local_variable_in_scope(scope=scope) + + expression_value = self.visit(node.expression, scope) + + self.register_instruction(CilExpr.GetAttrNode(expression,node.expression.expr_type.name,"value",expression_value)) + self.register_instruction(CilExpr.UnaryOperatorNode(op,"~",expression)) + + #Allocate Int result + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(result,'Int',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Int','Int_init',[arg1,arg2])) + + return result + + @visitor.when(CoolOp.NotNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + expression = self.define_local_variable_in_scope(scope=scope) + + expression_value = self.visit(node.expression, scope) + + self.register_instruction(CilExpr.GetAttrNode(expression,node.expression.expr_type.name,"value",expression_value)) + self.register_instruction(CilExpr.UnaryOperatorNode(op,"not",expression)) + + #Allocate Bool result + tag = self.context.get_type('Bool').tag + self.register_instruction(CilExpr.AllocateNode(result,'Bool',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Bool','Bool_init',[arg1,arg2])) + + return result + + @visitor.when(CoolExpr.EqualsNode) + def visit(self, node, scope): + result = self.define_local_variable_in_scope(scope=scope, variable_name="result") + op = self.define_local_variable_in_scope(scope=scope, variable_name="op") + left = self.define_local_variable_in_scope(scope=scope, variable_name="left") + right = self.define_local_variable_in_scope(scope=scope, variable_name="right") + + left_value = self.visit(node.left, scope) + right_value = self.visit(node.right, scope) + + if node.left.expr_type.name == "String": + arg1 = CilExpr.ArgNode(right_value) + arg2 = CilExpr.ArgNode(left_value) + self.register_instruction(CilExpr.CallNode(op,'String','String_equals',[arg1,arg2])) + + #Allocate Bool result + tag = self.context.get_type('Bool').tag + self.register_instruction(CilExpr.AllocateNode(result,'Bool',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Bool','Bool_init',[arg1,arg2])) + + return result + + elif node.left.expr_type.name in ['Int', 'Bool']: + self.register_instruction(CilExpr.GetAttrNode(left,node.left.expr_type.name,"value",left_value)) + self.register_instruction(CilExpr.GetAttrNode(right,node.right.expr_type.name,"value",right_value)) + + else: + self.register_instruction(CilExpr.AssignNode(left,left_value)) + self.register_instruction(CilExpr.AssignNode(right,right_value)) + + self.register_instruction(CilExpr.BinaryOperatorNode(op,left,"=",right)) + + #Allocate Bool result + tag = self.context.get_type('Bool').tag + self.register_instruction(CilExpr.AllocateNode(result,'Bool',tag)) + init = self.define_local_variable_in_scope(scope=scope, variable_name="init") + arg1 = CilExpr.ArgNode(op) + arg2 = CilExpr.ArgNode(result) + self.register_instruction(CilExpr.CallNode(init,'Bool','Bool_init',[arg1,arg2])) + + return result + + @visitor.when(CoolExpr.IdNode) + def visit(self, node, scope): + is_param = False + for param in self.current_function.params: + if param.name == node.name: + is_param = True + break + if is_param: + return node.name + elif self.current_type.has_attr(node.name): + result = self.define_local_variable_in_scope(scope=scope, variable_name=node.name, type_name=self.current_type.name) + self.register_instruction(CilExpr.GetAttrNode(result,self.current_type.name,node.name,'self')) + return result + else: + return scope.find_cil_local(node.name) + + @visitor.when(CoolExpr.IntegerNode) + def visit(self, node, scope): + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('Int').tag + self.register_instruction(CilExpr.AllocateNode(instance,'Int',tag)) + value = self.define_local_variable_in_scope(scope=scope, variable_name='value') + self.register_instruction(CilExpr.LoadIntNode(value,node.value)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(value) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,"Int",'Int_init',[arg1,arg2])) + return instance + + @visitor.when(CoolExpr.BooleanNode) + def visit(self, node, scope): + boolean = 0 + if str(node.value) == "true": + boolean = 1 + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('Bool').tag + self.register_instruction(CilExpr.AllocateNode(instance,'Bool',tag)) + value = self.define_local_variable_in_scope(scope=scope, variable_name='value') + self.register_instruction(CilExpr.LoadIntNode(value,boolean)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(value) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,"Bool",'Bool_init',[arg1,arg2])) + return instance + + @visitor.when(CoolExpr.StringNode) + def visit(self, node, scope): + str_name = "" + for s in self.data.keys(): + if self.data[s] == node.value: + str_name = s + break + if str_name == "": + str_name = self.register_data(node.value) + + value = self.define_local_variable_in_scope(scope=scope) + self.register_instruction(CilExpr.LoadStrNode(value,str_name)) + instance = self.define_local_variable_in_scope(scope=scope, variable_name="instance") + tag = self.context.get_type('String').tag + self.register_instruction(CilExpr.AllocateNode(instance,'String',tag)) + result = self.define_local_variable_in_scope(scope=scope, variable_name='result') + arg1 = CilExpr.ArgNode(value) + arg2 = CilExpr.ArgNode(instance) + self.register_instruction(CilExpr.CallNode(result,"String",'String_init',[arg1,arg2])) + return instance + + + + + + + + + + + + + + + + diff --git a/src/coolc.sh b/src/coolc.sh index 1e66f9515..7bd4218b3 100755 --- a/src/coolc.sh +++ b/src/coolc.sh @@ -5,7 +5,7 @@ OUTPUT_FILE=${INPUT_FILE:0: -2}mips # Si su compilador no lo hace ya, aquí puede imprimir la información de contacto echo "Cool Compiler version 1.0" # TODO: Recuerde cambiar estas -echo "Copyright (c) 2021: Laura Brito Guerrero, Sheyla Cruz Castro, Ariel Huerta Martin" # TODO: líneas a los valores correctos +echo "Copyright (c) 2021: Laura Brito Guerrero, Sheyla Cruz Castro, Ariel Antonio Huerta Martín" # TODO: líneas a los valores correctos # Llamar al compilador python3 main.py $INPUT_FILE diff --git a/src/main.py b/src/main.py index d7d97092c..dde01645d 100644 --- a/src/main.py +++ b/src/main.py @@ -1,3 +1,4 @@ +from code_generation import MyCodeGenerator from lexer import MyLexer from parser import MyParser from semantic import MySemanticAnalyzer @@ -30,11 +31,14 @@ # SemanticTODO semantic_analyzer = MySemanticAnalyzer(myAst) - semantic_analyzer.analyze() + context, scope = semantic_analyzer.analyze() for e in semantic_analyzer.errors: print(e) exit(1) - # CodeGenTODO + code_generator = MyCodeGenerator(context=context) + mips_code = code_generator.compile(myAst, scope) + with open(f'{sys.argv[1][:-3]}.mips','w') as f: + f.write(f'{mips_code}') diff --git a/src/nodes/cil_ast_nodes.py b/src/nodes/cil_ast_nodes.py new file mode 100644 index 000000000..61a5f69d5 --- /dev/null +++ b/src/nodes/cil_ast_nodes.py @@ -0,0 +1,25 @@ +class CilAST: + def __init__(self): + pass + +class ProgramNode(CilAST): + def __init__(self, types, data, code): + super(ProgramNode, self).__init__() + self.types = types + self.data = data + self.code = code + +class TypeNode(CilAST): + def __init__(self, name): + super(TypeNode, self).__init__() + self.name = name + self.attributes = [] + self.methods = {} + +class FunctionNode(CilAST): + def __init__(self, name, params = [], local_vars = [], instructions = []): + super(FunctionNode, self).__init__() + self.name = name + self.params = params + self.local_vars = local_vars + self.instructions = instructions \ No newline at end of file diff --git a/src/nodes/cil_expr_nodes.py b/src/nodes/cil_expr_nodes.py new file mode 100644 index 000000000..beaeb7ebe --- /dev/null +++ b/src/nodes/cil_expr_nodes.py @@ -0,0 +1,223 @@ +from .cil_ast_nodes import CilAST + +class CilExprNode(CilAST): + def __init__(self): + super(CilExprNode, self).__init__() + +class ParamDeclarationNode(CilExprNode): + def __init__(self, name): + super(ParamDeclarationNode, self).__init__() + self.name = name + +class LocalVariableDeclarationNode(CilExprNode): + def __init__(self, name): + super(LocalVariableDeclarationNode, self).__init__() + self.name = name + +class AssignNode(CilExprNode): + def __init__(self, dest, expression): + super(AssignNode, self).__init__() + self.dest = dest + self.expression = expression + +class UnaryOperatorNode(CilExprNode): + def __init__(self, local_var, op, expr_value): + super(UnaryOperatorNode, self).__init__() + self.local_var = local_var + self.op = op + self.expr_value = expr_value + +class BinaryOperatorNode(CilExprNode): + def __init__(self, local_var, left, op, right): + super(BinaryOperatorNode, self).__init__() + self.local_var = local_var + self.left = left + self.op = op + self.right = right + +class GetAttrNode(CilExprNode): + def __init__(self, variable, type, attr, instance): + super(GetAttrNode, self).__init__() + self.variable = variable + self.type = type + self.attr = attr + self.instance = instance + +class SetAttrNode(CilExprNode): + def __init__(self, type, attr, value, instance): + super(SetAttrNode, self).__init__() + self.type = type + self.attr = attr + self.value = value + self.instance = instance + +class AllocateNode(CilExprNode): + def __init__(self, local_var, type, tag): + super(AllocateNode, self).__init__() + self.local_var = local_var + self.type = type + self.tag = tag + +class TypeOfNode(CilExprNode): + def __init__(self, local_var, variable): + super(TypeOfNode, self).__init__() + self.local_var = local_var + self.variable = variable + +class CallNode(CilExprNode): + def __init__(self, local_var, type, method_name, params): + super(CallNode, self).__init__() + self.local_var = local_var + self.method_name = method_name + self.params = params + self.type = type + +class VCallNode(CilExprNode): + def __init__(self, local_var, type, method_name, params, instance): + super(VCallNode, self).__init__() + self.local_var = local_var + self.type = type + self.method_name = method_name + self.params = params + self.instance = instance + +class ArgNode(CilExprNode): + def __init__(self, arg_name): + super(ArgNode, self).__init__() + self.arg_name = arg_name + +class IfGotoNode(CilExprNode): + def __init__(self, variable, label): + super(IfGotoNode, self).__init__() + self.variable = variable + self.label = label + +class LabelNode(CilExprNode): + def __init__(self, label): + super(LabelNode, self).__init__() + self.label = label + +class GotoNode(CilExprNode): + def __init__(self, label): + super(GotoNode, self).__init__() + self.label = label + +class ReturnNode(CilExprNode): + def __init__(self, return_value): + super(ReturnNode, self).__init__() + self.return_value = return_value + +class IntegerNode(CilExprNode): + def __init__(self, value): + super(IntegerNode, self).__init__() + self.valye = value + +class StringNode(CilExprNode): + def __init__(self, value): + super(StringNode, self).__init__() + self.valye = value + +class LoadVoidNode(CilExprNode): + def __init__(self, local_var): + super(LoadVoidNode, self).__init__() + self.local_var = local_var + +class LoadStrNode(CilExprNode): + def __init__(self, local_var, msg): + super(LoadStrNode, self).__init__() + self.local_var = local_var + self.msg = msg + +class LoadIntNode(CilExprNode): + def __init__(self, local_var, num): + super(LoadIntNode, self).__init__() + self.local_var = local_var + self.num = num + +class LengthNode(CilExprNode): + def __init__(self, local_var, variable): + super(LengthNode, self).__init__() + self.local_var = local_var + self.variable = variable + +class ConcatNode(CilExprNode): + def __init__(self, local_var, str1, str2, len1, len2): + super(ConcatNode, self).__init__() + self.local_var = local_var + self.str1 = str1 + self.str2 = str2 + self.len1 = len1 + self.len2 = len2 + +class SubStrNode(CilExprNode): + def __init__(self, local_var, index, str, len): + super(SubStrNode, self).__init__() + self.local_var = local_var + self.index = index + self.str = str + self.len = len + +class StrNode(CilExprNode): + def __init__(self,local_var, num): + super(StrNode, self).__init__() + self.local_var = local_var + self.num = num + +class ReadNode(CilExprNode): + def __init__(self, line): + super(ReadNode, self).__init__() + self.line = line + +class ReadIntegerNode(ReadNode): + pass + +class ReadStringNode(ReadNode): + pass + +class PrintNode(CilExprNode): + def __init__(self, line): + super(PrintNode, self).__init__() + self.line = line + +class PrintIntegerNode(PrintNode): + pass + +class PrintStringNode(PrintNode): + pass + +class AbortNode(CilExprNode): + def __init__(self): + super(AbortNode, self).__init__() + +class CaseNode(CilExprNode): + def __init__(self, local_expr, first_label): + super(CaseNode, self).__init__() + self.local_expr = local_expr + self.first_label = first_label + +class ActionNode(CilExprNode): + def __init__(self, local_expr, tag, max_tag, next_label): + super(ActionNode, self).__init__() + self.local_expr = local_expr + self.tag = tag + self.max_tag = max_tag + self.next_label = next_label + +class StringEqualsNode(CilExprNode): + def __init__(self, local_var, str1, str2): + super(StringEqualsNode, self).__init__() + self.local_var = local_var + self.str1 = str1 + self.str2 = str2 + +class IsVoidNode(CilExprNode): + def __init__(self, local_var, expr): + super(IsVoidNode, self).__init__() + self.local_var = local_var + self.expr = expr + +class CopyNode(CilExprNode): + def __init__(self, local_var, type): + super(CopyNode, self).__init__() + self.local_var = local_var + self.type = type \ No newline at end of file diff --git a/src/semantic/tools/context.py b/src/semantic/tools/context.py index d66a3c92c..ca251e09d 100755 --- a/src/semantic/tools/context.py +++ b/src/semantic/tools/context.py @@ -40,8 +40,6 @@ def create_builtin_types(self): self.types['String'].define_method('concat', ['s'], [self.types['String']], self.types['String']) self.types['String'].define_method('substr', ['i', 'l'], [self.types['Int'], self.types['Int']], self.types['String']) - - def create_type(self, node): if node.name in self.types: raise SemanticException( @@ -76,9 +74,8 @@ def set_type_max_tags(self, node='Object'): maximum = 0 for t in self.graph[node]: maximum = max(maximum, self.types[t].max_tag) - self.types[node].max_tag = maximum + self.types[node].max_tag = maximum - def __str__(self): return '{\n\t' + '\n\t'.join(y for x in self.types.values() for y in str(x).split('\n')) + '\n}' diff --git a/src/semantic/visitor/type_builder.py b/src/semantic/visitor/type_builder.py index 008e397b4..9250415bb 100755 --- a/src/semantic/visitor/type_builder.py +++ b/src/semantic/visitor/type_builder.py @@ -1,6 +1,6 @@ from semantic.tools.error import SemanticError, SemanticException, circular_dependency_, attr_not_exist_, invalid_return_type_, param_not_exist_, inherits_builtin_type, main_method_not_exist_, Main_not_defined_ from semantic.tools.type import Error_Type -from nodes import ProgramNode, ClassNode, ClassMethodNode, AttrInitNode, AttrDefNode +from nodes.ast_nodes import ProgramNode, ClassNode, ClassMethodNode, AttrInitNode, AttrDefNode from semantic.visitor import visitor diff --git a/src/semantic/visitor/type_checker.py b/src/semantic/visitor/type_checker.py index 1258681fe..6566a61c9 100755 --- a/src/semantic/visitor/type_checker.py +++ b/src/semantic/visitor/type_checker.py @@ -1,7 +1,10 @@ from semantic.tools.error import incompatible_types_, param_wrong_signature, invalid_SELFTYPE, self_name, incorrect_count_params_, read_only_, var_not_defined_, other_branch_declared_, wrong_type_, self_let_, SemanticError, SemanticException from semantic.tools.type import Error_Type from semantic.tools.scope import Scope -from nodes import * +#from nodes import * +from nodes.ast_nodes import * +from nodes.expr_nodes import * +from nodes.operations_nodes import * from semantic.visitor import visitor @@ -313,7 +316,7 @@ def visit(self, node, scope): except SemanticException as ex: error = SemanticError(ex.text, node.row, node.col, 'TypeError') self.errors.append(error) - node_type = ErrorType() + node_type = Error_Type() self.visit(node.expression, scope) expr_type = node.expression.expr_type diff --git a/src/semantic/visitor/type_collector.py b/src/semantic/visitor/type_collector.py index cef246914..df1a4fd7d 100755 --- a/src/semantic/visitor/type_collector.py +++ b/src/semantic/visitor/type_collector.py @@ -1,6 +1,6 @@ from semantic.tools.context import Context from semantic.tools.error import SemanticError, SemanticException -from nodes import ProgramNode, ClassNode +from nodes.ast_nodes import ProgramNode, ClassNode from semantic.visitor import visitor class TypeCollector(object): diff --git a/tests/codegen/arith.mips b/tests/codegen/arith.mips new file mode 100644 index 000000000..42f9608d2 --- /dev/null +++ b/tests/codegen/arith.mips @@ -0,0 +1,12572 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +A_name: .asciiz "A" +A_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A.value +.word A.set_var +.word A.method1 +.word A.method2 +.word A.method3 +.word A.method4 +.word A.method5 +B_name: .asciiz "B" +B_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A.value +.word A.set_var +.word A.method1 +.word A.method2 +.word A.method3 +.word A.method4 +.word B.method5 +C_name: .asciiz "C" +C_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A.value +.word A.set_var +.word A.method1 +.word A.method2 +.word A.method3 +.word A.method4 +.word C.method5 +.word C.method6 +D_name: .asciiz "D" +D_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A.value +.word A.set_var +.word A.method1 +.word A.method2 +.word A.method3 +.word A.method4 +.word B.method5 +.word D.method7 +E_name: .asciiz "E" +E_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A.value +.word A.set_var +.word A.method1 +.word A.method2 +.word A.method3 +.word A.method4 +.word B.method5 +.word D.method7 +.word E.method6 +A2I_name: .asciiz "A2I" +A2I_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A2I.c2i +.word A2I.i2c +.word A2I.a2i +.word A2I.a2i_aux +.word A2I.i2a +.word A2I.i2a_aux +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.menu +.word Main.prompt +.word Main.get_int +.word Main.is_even +.word Main.class_type +.word Main.print +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "0" +msg_4: .asciiz "1" +msg_5: .asciiz "2" +msg_6: .asciiz "3" +msg_7: .asciiz "4" +msg_8: .asciiz "5" +msg_9: .asciiz "6" +msg_10: .asciiz "7" +msg_11: .asciiz "8" +msg_12: .asciiz "9" +msg_13: .asciiz "-" +msg_14: .asciiz "+" +msg_15: .asciiz " + To add a number to " +msg_16: .asciiz "...enter a: +" +msg_17: .asciiz " To negate " +msg_18: .asciiz "...enter b: +" +msg_19: .asciiz " To find the difference between " +msg_20: .asciiz "and another number...enter c: +" +msg_21: .asciiz " To find the factorial of " +msg_22: .asciiz "...enter d: +" +msg_23: .asciiz " To square " +msg_24: .asciiz "...enter e: +" +msg_25: .asciiz " To cube " +msg_26: .asciiz "...enter f: +" +msg_27: .asciiz " To find out if " +msg_28: .asciiz "is a multiple of 3...enter g: +" +msg_29: .asciiz " To divide " +msg_30: .asciiz "by 8...enter h: +" +msg_31: .asciiz " To get a new number...enter j: +" +msg_32: .asciiz " To quit...enter q: + +" +msg_33: .asciiz "Please enter a number... " +msg_34: .asciiz "Class type is now E +" +msg_35: .asciiz "Class type is now D +" +msg_36: .asciiz "Class type is now C +" +msg_37: .asciiz "Class type is now B +" +msg_38: .asciiz "Class type is now A +" +msg_39: .asciiz "Oooops +" +msg_40: .asciiz " " +msg_41: .asciiz "number " +msg_42: .asciiz "is odd! +" +msg_43: .asciiz "is even! +" +msg_44: .asciiz "a" +msg_45: .asciiz "b" +msg_46: .asciiz "c" +msg_47: .asciiz "d" +msg_48: .asciiz "e" +msg_49: .asciiz "f" +msg_50: .asciiz "g" +msg_51: .asciiz "h" +msg_52: .asciiz "j" +msg_53: .asciiz "q" +msg_54: .asciiz "is equal to " +msg_55: .asciiz "times 8 with a remainder of " +msg_56: .asciiz "is not divisible by 3. +" +msg_57: .asciiz "is divisible by 3. +" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 8:Class_size +li $a0, 32 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 8 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +A_init: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Avar = instance_1 +lw $t0, 20($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +A.value: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr A.var = A.var +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return A.var +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +A.set_var: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Avar = num +lw $t0, 8($sp) +lw $t1, 12($sp) +sw $t1, 16($t0) +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +A.method1: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return self +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +A.method2: +addi $sp, $sp, -56 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode x_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#GetAttr left_6 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#GetAttr right_7 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#BinaryOperator left_6 + right_7 +lw $a0, 28($sp) +lw $t1, 32($sp) +add $a0, $a0, $t1 +sw $a0, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#AssignNode x_3 = result_4 +lw $t1, 20($sp) +sw $t1, 16($sp) +#Allocate 6:tag B:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, B_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, B_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode B_init +move $t0, $sp +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal B_init +sw $a1, 52($sp) +#VCall set_var +move $t0, $sp +# Arg x_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 44($sp) +#AssignNode result_13 = result_10 +lw $t1, 44($sp) +sw $t1, 56($sp) +#Return result_13 +lw $a1, 56($sp) +lw $ra, 0($sp) +addi $sp, $sp, 72 +jr $ra +A.method3: +addi $sp, $sp, -52 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode x_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#GetAttr l_6 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#UnaryOperator ~ l_6 +lw $t1, 28($sp) +neg $a0, $t1 +sw $a0, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#AssignNode x_3 = result_4 +lw $t1, 20($sp) +sw $t1, 16($sp) +#Allocate 7:tag C:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 7 +sw $t1, 0($t0) +la $t1, C_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, C_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode C_init +move $t0, $sp +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal C_init +sw $a1, 48($sp) +#VCall set_var +move $t0, $sp +# Arg x_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 44($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 40($sp) +#AssignNode result_12 = result_9 +lw $t1, 40($sp) +sw $t1, 52($sp) +#Return result_12 +lw $a1, 52($sp) +lw $ra, 0($sp) +addi $sp, $sp, 64 +jr $ra +A.method4: +addi $sp, $sp, -136 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr left_3 = Int.value +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 24($sp) +# IFGoto result_1 -> label_1 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#AssignNode x_9 = instance_6 +lw $t1, 28($sp) +sw $t1, 40($sp) +#GetAttr left_12 = Int.value +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 - right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +sub $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 60($sp) +#AssignNode x_9 = result_10 +lw $t1, 44($sp) +sw $t1, 40($sp) +#Allocate 8:tag D:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 8 +sw $t1, 0($t0) +la $t1, D_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, D_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#CallNode D_init +move $t0, $sp +# Arg result_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal D_init +sw $a1, 76($sp) +#VCall set_var +move $t0, $sp +# Arg x_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 72($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 68($sp) +#AssignNode result_19 = result_16 +lw $t1, 68($sp) +sw $t1, 80($sp) +#AssignNode result_0 = result_19 +lw $t1, 80($sp) +sw $t1, 4($sp) +#Goto label_2 +b label_2 +#LabelNode label_1 +label_1: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 88($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 92($sp) +#AssignNode x_23 = instance_20 +lw $t1, 84($sp) +sw $t1, 96($sp) +#GetAttr left_26 = Int.value +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#GetAttr right_27 = Int.value +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#BinaryOperator left_26 - right_27 +lw $a0, 108($sp) +lw $t1, 112($sp) +sub $a0, $a0, $t1 +sw $a0, 104($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 116($sp) +#AssignNode x_23 = result_24 +lw $t1, 100($sp) +sw $t1, 96($sp) +#Allocate 8:tag D:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 8 +sw $t1, 0($t0) +la $t1, D_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, D_methods +sw $t1, 12($t0) +sw $t0, 128($sp) +#CallNode D_init +move $t0, $sp +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal D_init +sw $a1, 132($sp) +#VCall set_var +move $t0, $sp +# Arg x_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 124($sp) +#AssignNode result_33 = result_30 +lw $t1, 124($sp) +sw $t1, 136($sp) +#AssignNode result_0 = result_33 +lw $t1, 136($sp) +sw $t1, 4($sp) +#LabelNode label_2 +label_2: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 152 +jr $ra +A.method5: +addi $sp, $sp, -136 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode x_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 28($sp) +#AssignNode y_7 = instance_4 +lw $t1, 20($sp) +sw $t1, 32($sp) +#LabelNode label_3 +label_3: +#GetAttr left_11 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#GetAttr right_12 = Int.value +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#BinaryOperator left_11 <= right_12 +lw $a0, 48($sp) +lw $t1, 52($sp) +sle $a0, $a0, $t1 +sw $a0, 44($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 56($sp) +# IFGoto result_9 -> label_4 +lw $t0, 40($sp) +lw $a0, 16($t0) +bnez $a0, label_4 +#Goto label_5 +b label_5 +#LabelNode label_4 +label_4: +#GetAttr left_16 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#GetAttr right_17 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 72($sp) +#BinaryOperator left_16 * right_17 +lw $a0, 68($sp) +lw $t1, 72($sp) +mul $a0, $a0, $t1 +sw $a0, 64($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#AssignNode x_3 = result_14 +lw $t1, 60($sp) +sw $t1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#GetAttr left_22 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 + right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +add $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#AssignNode y_7 = result_20 +lw $t1, 84($sp) +sw $t1, 32($sp) +#Goto label_3 +b label_3 +#LabelNode label_5 +label_5: +#AssignNode result_29 = result_8 +lw $t1, 36($sp) +sw $t1, 120($sp) +#Allocate 9:tag E:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 9 +sw $t1, 0($t0) +la $t1, E_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, E_methods +sw $t1, 12($t0) +sw $t0, 128($sp) +#CallNode E_init +move $t0, $sp +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal E_init +sw $a1, 132($sp) +#VCall set_var +move $t0, $sp +# Arg x_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 124($sp) +#AssignNode result_33 = result_30 +lw $t1, 124($sp) +sw $t1, 136($sp) +#Return result_33 +lw $a1, 136($sp) +lw $ra, 0($sp) +addi $sp, $sp, 148 +jr $ra +B_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode A_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +B.method5: +addi $sp, $sp, -56 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode x_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#GetAttr left_6 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#GetAttr right_7 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#BinaryOperator left_6 * right_7 +lw $a0, 28($sp) +lw $t1, 32($sp) +mul $a0, $a0, $t1 +sw $a0, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#AssignNode x_3 = result_4 +lw $t1, 20($sp) +sw $t1, 16($sp) +#Allocate 9:tag E:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 9 +sw $t1, 0($t0) +la $t1, E_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, E_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode E_init +move $t0, $sp +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal E_init +sw $a1, 52($sp) +#VCall set_var +move $t0, $sp +# Arg x_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 44($sp) +#AssignNode result_13 = result_10 +lw $t1, 44($sp) +sw $t1, 56($sp) +#Return result_13 +lw $a1, 56($sp) +lw $ra, 0($sp) +addi $sp, $sp, 68 +jr $ra +C_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode B_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal B_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +C.method6: +addi $sp, $sp, -52 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode x_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#GetAttr l_6 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#UnaryOperator ~ l_6 +lw $t1, 28($sp) +neg $a0, $t1 +sw $a0, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#AssignNode x_3 = result_4 +lw $t1, 20($sp) +sw $t1, 16($sp) +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode A_init +move $t0, $sp +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 48($sp) +#VCall set_var +move $t0, $sp +# Arg x_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 44($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 40($sp) +#AssignNode result_12 = result_9 +lw $t1, 40($sp) +sw $t1, 52($sp) +#Return result_12 +lw $a1, 52($sp) +lw $ra, 0($sp) +addi $sp, $sp, 64 +jr $ra +C.method5: +addi $sp, $sp, -76 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode x_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#GetAttr left_10 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 44($sp) +#GetAttr right_11 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#BinaryOperator left_10 * right_11 +lw $a0, 44($sp) +lw $t1, 48($sp) +mul $a0, $a0, $t1 +sw $a0, 40($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 52($sp) +#GetAttr left_6 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#GetAttr right_7 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#BinaryOperator left_6 * right_7 +lw $a0, 28($sp) +lw $t1, 32($sp) +mul $a0, $a0, $t1 +sw $a0, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 56($sp) +#AssignNode x_3 = result_4 +lw $t1, 20($sp) +sw $t1, 16($sp) +#Allocate 9:tag E:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 9 +sw $t1, 0($t0) +la $t1, E_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, E_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode E_init +move $t0, $sp +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal E_init +sw $a1, 72($sp) +#VCall set_var +move $t0, $sp +# Arg x_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 68($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 64($sp) +#AssignNode result_18 = result_15 +lw $t1, 64($sp) +sw $t1, 76($sp) +#Return result_18 +lw $a1, 76($sp) +lw $ra, 0($sp) +addi $sp, $sp, 88 +jr $ra +D_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode B_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal B_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +D.method7: +addi $sp, $sp, -244 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#AssignNode x_0 = num +lw $t1, 252($sp) +sw $t1, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_4 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr right_5 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#BinaryOperator left_4 < right_5 +lw $a0, 20($sp) +lw $t1, 24($sp) +slt $a0, $a0, $t1 +sw $a0, 16($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_2 -> label_6 +lw $t0, 12($sp) +lw $a0, 16($t0) +bnez $a0, label_6 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 64($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 72($sp) +#GetAttr left_13 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 76($sp) +# IFGoto result_11 -> label_7 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_7 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#GetAttr left_22 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 = right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +seq $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 112($sp) +# IFGoto result_20 -> label_8 +lw $t0, 84($sp) +lw $a0, 16($t0) +bnez $a0, label_8 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 140($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 144($sp) +#GetAttr left_31 = Int.value +lw $t0, 136($sp) +lw $t1, 16($t0) +sw $t1, 128($sp) +#GetAttr right_32 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 132($sp) +#BinaryOperator left_31 = right_32 +lw $a0, 128($sp) +lw $t1, 132($sp) +seq $a0, $a0, $t1 +sw $a0, 124($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 148($sp) +# IFGoto result_29 -> label_9 +lw $t0, 120($sp) +lw $a0, 16($t0) +bnez $a0, label_9 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 176($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 180($sp) +#GetAttr left_40 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 164($sp) +#GetAttr right_41 = Int.value +lw $t0, 172($sp) +lw $t1, 16($t0) +sw $t1, 168($sp) +#BinaryOperator left_40 - right_41 +lw $a0, 164($sp) +lw $t1, 168($sp) +sub $a0, $a0, $t1 +sw $a0, 160($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 156($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 184($sp) +#VCall method7 +move $t0, $sp +# Arg result_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 248($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 152($sp) +#AssignNode result_28 = result_37 +lw $t1, 152($sp) +sw $t1, 116($sp) +#Goto label_10 +b label_10 +#LabelNode label_9 +label_9: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 192($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 196($sp) +#AssignNode result_28 = instance_46 +lw $t1, 188($sp) +sw $t1, 116($sp) +#LabelNode label_10 +label_10: +#AssignNode result_19 = result_28 +lw $t1, 116($sp) +sw $t1, 80($sp) +#Goto label_11 +b label_11 +#LabelNode label_8 +label_8: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 200($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 204($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_49 +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 208($sp) +#AssignNode result_19 = instance_49 +lw $t1, 200($sp) +sw $t1, 80($sp) +#LabelNode label_11 +label_11: +#AssignNode result_10 = result_19 +lw $t1, 80($sp) +sw $t1, 44($sp) +#Goto label_12 +b label_12 +#LabelNode label_7 +label_7: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 212($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 216($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 220($sp) +#AssignNode result_10 = instance_52 +lw $t1, 212($sp) +sw $t1, 44($sp) +#LabelNode label_12 +label_12: +#AssignNode result_1 = result_10 +lw $t1, 44($sp) +sw $t1, 8($sp) +#Goto label_13 +b label_13 +#LabelNode label_6 +label_6: +#GetAttr l_58 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 236($sp) +#UnaryOperator ~ l_58 +lw $t1, 236($sp) +neg $a0, $t1 +sw $a0, 232($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 228($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 240($sp) +#VCall method7 +move $t0, $sp +# Arg result_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 248($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 224($sp) +#AssignNode result_1 = result_55 +lw $t1, 224($sp) +sw $t1, 8($sp) +#LabelNode label_13 +label_13: +#AssignNode result_60 = result_1 +lw $t1, 8($sp) +sw $t1, 244($sp) +#Return result_60 +lw $a1, 244($sp) +lw $ra, 0($sp) +addi $sp, $sp, 256 +jr $ra +E_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode D_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal D_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +E.method6: +addi $sp, $sp, -68 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode x_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 40($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 44($sp) +#GetAttr left_6 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#GetAttr right_7 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#BinaryOperator left_6 / right_7 +lw $a0, 28($sp) +lw $t1, 32($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 48($sp) +#AssignNode x_3 = result_4 +lw $t1, 20($sp) +sw $t1, 16($sp) +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode A_init +move $t0, $sp +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 64($sp) +#VCall set_var +move $t0, $sp +# Arg x_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 56($sp) +#AssignNode result_16 = result_13 +lw $t1, 56($sp) +sw $t1, 68($sp) +#Return result_16 +lw $a1, 68($sp) +lw $ra, 0($sp) +addi $sp, $sp, 80 +jr $ra +A2I_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +A2I.c2i: +addi $sp, $sp, -496 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_14 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_14 +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 60($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 64($sp) +#CallNode String_init +move $t0, $sp +# Arg l_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 68($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_10 -> label_15 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_15 +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 96($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode String_init +move $t0, $sp +# Arg l_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 104($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 84($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_19 -> label_16 +lw $t0, 80($sp) +lw $a0, 16($t0) +bnez $a0, label_16 +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 132($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#CallNode String_init +move $t0, $sp +# Arg l_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 140($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 120($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 144($sp) +# IFGoto result_28 -> label_17 +lw $t0, 116($sp) +lw $a0, 16($t0) +bnez $a0, label_17 +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 168($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#CallNode String_init +move $t0, $sp +# Arg l_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 176($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 156($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 180($sp) +# IFGoto result_37 -> label_18 +lw $t0, 152($sp) +lw $a0, 16($t0) +bnez $a0, label_18 +#LoadStr msg_8 +la $t0, msg_8 +sw $t0, 204($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 208($sp) +#CallNode String_init +move $t0, $sp +# Arg l_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 212($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 192($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 216($sp) +# IFGoto result_46 -> label_19 +lw $t0, 188($sp) +lw $a0, 16($t0) +bnez $a0, label_19 +#LoadStr msg_9 +la $t0, msg_9 +sw $t0, 240($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 244($sp) +#CallNode String_init +move $t0, $sp +# Arg l_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 248($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 228($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 224($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 252($sp) +# IFGoto result_55 -> label_20 +lw $t0, 224($sp) +lw $a0, 16($t0) +bnez $a0, label_20 +#LoadStr msg_10 +la $t0, msg_10 +sw $t0, 276($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 280($sp) +#CallNode String_init +move $t0, $sp +# Arg l_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 284($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 264($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 260($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_65 +lw $t1, 264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 288($sp) +# IFGoto result_64 -> label_21 +lw $t0, 260($sp) +lw $a0, 16($t0) +bnez $a0, label_21 +#LoadStr msg_11 +la $t0, msg_11 +sw $t0, 312($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 316($sp) +#CallNode String_init +move $t0, $sp +# Arg l_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 320($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 300($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 296($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 324($sp) +# IFGoto result_73 -> label_22 +lw $t0, 296($sp) +lw $a0, 16($t0) +bnez $a0, label_22 +#LoadStr msg_12 +la $t0, msg_12 +sw $t0, 348($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 352($sp) +#CallNode String_init +move $t0, $sp +# Arg l_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 356($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 336($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 360($sp) +# IFGoto result_82 -> label_23 +lw $t0, 332($sp) +lw $a0, 16($t0) +bnez $a0, label_23 +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 500($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 364($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 368($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 372($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 376($sp) +#AssignNode result_81 = instance_91 +lw $t1, 368($sp) +sw $t1, 328($sp) +#Goto label_24 +b label_24 +#LabelNode label_23 +label_23: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 380($sp) +#LoadInt 9 +li $t0, 9 +sw $t0, 384($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_95 +lw $t1, 384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 388($sp) +#AssignNode result_81 = instance_94 +lw $t1, 380($sp) +sw $t1, 328($sp) +#LabelNode label_24 +label_24: +#AssignNode result_72 = result_81 +lw $t1, 328($sp) +sw $t1, 292($sp) +#Goto label_25 +b label_25 +#LabelNode label_22 +label_22: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 392($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 396($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_98 +lw $t1, 396($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 400($sp) +#AssignNode result_72 = instance_97 +lw $t1, 392($sp) +sw $t1, 292($sp) +#LabelNode label_25 +label_25: +#AssignNode result_63 = result_72 +lw $t1, 292($sp) +sw $t1, 256($sp) +#Goto label_26 +b label_26 +#LabelNode label_21 +label_21: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 404($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 408($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 412($sp) +#AssignNode result_63 = instance_100 +lw $t1, 404($sp) +sw $t1, 256($sp) +#LabelNode label_26 +label_26: +#AssignNode result_54 = result_63 +lw $t1, 256($sp) +sw $t1, 220($sp) +#Goto label_27 +b label_27 +#LabelNode label_20 +label_20: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 416($sp) +#LoadInt 6 +li $t0, 6 +sw $t0, 420($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_103 +lw $t1, 416($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 424($sp) +#AssignNode result_54 = instance_103 +lw $t1, 416($sp) +sw $t1, 220($sp) +#LabelNode label_27 +label_27: +#AssignNode result_45 = result_54 +lw $t1, 220($sp) +sw $t1, 184($sp) +#Goto label_28 +b label_28 +#LabelNode label_19 +label_19: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 428($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 432($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_107 +lw $t1, 432($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 436($sp) +#AssignNode result_45 = instance_106 +lw $t1, 428($sp) +sw $t1, 184($sp) +#LabelNode label_28 +label_28: +#AssignNode result_36 = result_45 +lw $t1, 184($sp) +sw $t1, 148($sp) +#Goto label_29 +b label_29 +#LabelNode label_18 +label_18: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 440($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 444($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 448($sp) +#AssignNode result_36 = instance_109 +lw $t1, 440($sp) +sw $t1, 148($sp) +#LabelNode label_29 +label_29: +#AssignNode result_27 = result_36 +lw $t1, 148($sp) +sw $t1, 112($sp) +#Goto label_30 +b label_30 +#LabelNode label_17 +label_17: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 452($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 456($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_112 +lw $t1, 452($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 460($sp) +#AssignNode result_27 = instance_112 +lw $t1, 452($sp) +sw $t1, 112($sp) +#LabelNode label_30 +label_30: +#AssignNode result_18 = result_27 +lw $t1, 112($sp) +sw $t1, 76($sp) +#Goto label_31 +b label_31 +#LabelNode label_16 +label_16: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 464($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 468($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_116 +lw $t1, 468($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_115 +lw $t1, 464($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 472($sp) +#AssignNode result_18 = instance_115 +lw $t1, 464($sp) +sw $t1, 76($sp) +#LabelNode label_31 +label_31: +#AssignNode result_9 = result_18 +lw $t1, 76($sp) +sw $t1, 40($sp) +#Goto label_32 +b label_32 +#LabelNode label_15 +label_15: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 476($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 480($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 484($sp) +#AssignNode result_9 = instance_118 +lw $t1, 476($sp) +sw $t1, 40($sp) +#LabelNode label_32 +label_32: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_33 +b label_33 +#LabelNode label_14 +label_14: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 488($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 492($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 496($sp) +#AssignNode result_0 = instance_121 +lw $t1, 488($sp) +sw $t1, 4($sp) +#LabelNode label_33 +label_33: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 508 +jr $ra +A2I.i2c: +addi $sp, $sp, -496 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_34 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_34 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 64($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 68($sp) +#GetAttr left_12 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 = right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +seq $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_10 -> label_35 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_35 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#GetAttr left_21 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#GetAttr right_22 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#BinaryOperator left_21 = right_22 +lw $a0, 88($sp) +lw $t1, 92($sp) +seq $a0, $a0, $t1 +sw $a0, 84($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_19 -> label_36 +lw $t0, 80($sp) +lw $a0, 16($t0) +bnez $a0, label_36 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 136($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#GetAttr left_30 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 124($sp) +#GetAttr right_31 = Int.value +lw $t0, 132($sp) +lw $t1, 16($t0) +sw $t1, 128($sp) +#BinaryOperator left_30 = right_31 +lw $a0, 124($sp) +lw $t1, 128($sp) +seq $a0, $a0, $t1 +sw $a0, 120($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 144($sp) +# IFGoto result_28 -> label_37 +lw $t0, 116($sp) +lw $a0, 16($t0) +bnez $a0, label_37 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 168($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 172($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 176($sp) +#GetAttr left_39 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 160($sp) +#GetAttr right_40 = Int.value +lw $t0, 168($sp) +lw $t1, 16($t0) +sw $t1, 164($sp) +#BinaryOperator left_39 = right_40 +lw $a0, 160($sp) +lw $t1, 164($sp) +seq $a0, $a0, $t1 +sw $a0, 156($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 180($sp) +# IFGoto result_37 -> label_38 +lw $t0, 152($sp) +lw $a0, 16($t0) +bnez $a0, label_38 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 204($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 208($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 212($sp) +#GetAttr left_48 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 196($sp) +#GetAttr right_49 = Int.value +lw $t0, 204($sp) +lw $t1, 16($t0) +sw $t1, 200($sp) +#BinaryOperator left_48 = right_49 +lw $a0, 196($sp) +lw $t1, 200($sp) +seq $a0, $a0, $t1 +sw $a0, 192($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 216($sp) +# IFGoto result_46 -> label_39 +lw $t0, 188($sp) +lw $a0, 16($t0) +bnez $a0, label_39 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 240($sp) +#LoadInt 6 +li $t0, 6 +sw $t0, 244($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 248($sp) +#GetAttr left_57 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 232($sp) +#GetAttr right_58 = Int.value +lw $t0, 240($sp) +lw $t1, 16($t0) +sw $t1, 236($sp) +#BinaryOperator left_57 = right_58 +lw $a0, 232($sp) +lw $t1, 236($sp) +seq $a0, $a0, $t1 +sw $a0, 228($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 224($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 252($sp) +# IFGoto result_55 -> label_40 +lw $t0, 224($sp) +lw $a0, 16($t0) +bnez $a0, label_40 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 276($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 280($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 284($sp) +#GetAttr left_66 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 268($sp) +#GetAttr right_67 = Int.value +lw $t0, 276($sp) +lw $t1, 16($t0) +sw $t1, 272($sp) +#BinaryOperator left_66 = right_67 +lw $a0, 268($sp) +lw $t1, 272($sp) +seq $a0, $a0, $t1 +sw $a0, 264($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 260($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_65 +lw $t1, 264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 288($sp) +# IFGoto result_64 -> label_41 +lw $t0, 260($sp) +lw $a0, 16($t0) +bnez $a0, label_41 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 312($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 316($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 320($sp) +#GetAttr left_75 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 304($sp) +#GetAttr right_76 = Int.value +lw $t0, 312($sp) +lw $t1, 16($t0) +sw $t1, 308($sp) +#BinaryOperator left_75 = right_76 +lw $a0, 304($sp) +lw $t1, 308($sp) +seq $a0, $a0, $t1 +sw $a0, 300($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 296($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 324($sp) +# IFGoto result_73 -> label_42 +lw $t0, 296($sp) +lw $a0, 16($t0) +bnez $a0, label_42 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 348($sp) +#LoadInt 9 +li $t0, 9 +sw $t0, 352($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 356($sp) +#GetAttr left_84 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 340($sp) +#GetAttr right_85 = Int.value +lw $t0, 348($sp) +lw $t1, 16($t0) +sw $t1, 344($sp) +#BinaryOperator left_84 = right_85 +lw $a0, 340($sp) +lw $t1, 344($sp) +seq $a0, $a0, $t1 +sw $a0, 336($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 360($sp) +# IFGoto result_82 -> label_43 +lw $t0, 332($sp) +lw $a0, 16($t0) +bnez $a0, label_43 +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 500($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 364($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 368($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 372($sp) +#CallNode String_init +move $t0, $sp +# Arg l_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 376($sp) +#AssignNode result_81 = instance_92 +lw $t1, 372($sp) +sw $t1, 328($sp) +#Goto label_44 +b label_44 +#LabelNode label_43 +label_43: +#LoadStr msg_12 +la $t0, msg_12 +sw $t0, 380($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 384($sp) +#CallNode String_init +move $t0, $sp +# Arg l_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_95 +lw $t1, 384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 388($sp) +#AssignNode result_81 = instance_95 +lw $t1, 384($sp) +sw $t1, 328($sp) +#LabelNode label_44 +label_44: +#AssignNode result_72 = result_81 +lw $t1, 328($sp) +sw $t1, 292($sp) +#Goto label_45 +b label_45 +#LabelNode label_42 +label_42: +#LoadStr msg_11 +la $t0, msg_11 +sw $t0, 392($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 396($sp) +#CallNode String_init +move $t0, $sp +# Arg l_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_98 +lw $t1, 396($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 400($sp) +#AssignNode result_72 = instance_98 +lw $t1, 396($sp) +sw $t1, 292($sp) +#LabelNode label_45 +label_45: +#AssignNode result_63 = result_72 +lw $t1, 292($sp) +sw $t1, 256($sp) +#Goto label_46 +b label_46 +#LabelNode label_41 +label_41: +#LoadStr msg_10 +la $t0, msg_10 +sw $t0, 404($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 408($sp) +#CallNode String_init +move $t0, $sp +# Arg l_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 412($sp) +#AssignNode result_63 = instance_101 +lw $t1, 408($sp) +sw $t1, 256($sp) +#LabelNode label_46 +label_46: +#AssignNode result_54 = result_63 +lw $t1, 256($sp) +sw $t1, 220($sp) +#Goto label_47 +b label_47 +#LabelNode label_40 +label_40: +#LoadStr msg_9 +la $t0, msg_9 +sw $t0, 416($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 420($sp) +#CallNode String_init +move $t0, $sp +# Arg l_103 +lw $t1, 416($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 424($sp) +#AssignNode result_54 = instance_104 +lw $t1, 420($sp) +sw $t1, 220($sp) +#LabelNode label_47 +label_47: +#AssignNode result_45 = result_54 +lw $t1, 220($sp) +sw $t1, 184($sp) +#Goto label_48 +b label_48 +#LabelNode label_39 +label_39: +#LoadStr msg_8 +la $t0, msg_8 +sw $t0, 428($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 432($sp) +#CallNode String_init +move $t0, $sp +# Arg l_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_107 +lw $t1, 432($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 436($sp) +#AssignNode result_45 = instance_107 +lw $t1, 432($sp) +sw $t1, 184($sp) +#LabelNode label_48 +label_48: +#AssignNode result_36 = result_45 +lw $t1, 184($sp) +sw $t1, 148($sp) +#Goto label_49 +b label_49 +#LabelNode label_38 +label_38: +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 440($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 444($sp) +#CallNode String_init +move $t0, $sp +# Arg l_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 448($sp) +#AssignNode result_36 = instance_110 +lw $t1, 444($sp) +sw $t1, 148($sp) +#LabelNode label_49 +label_49: +#AssignNode result_27 = result_36 +lw $t1, 148($sp) +sw $t1, 112($sp) +#Goto label_50 +b label_50 +#LabelNode label_37 +label_37: +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 452($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 456($sp) +#CallNode String_init +move $t0, $sp +# Arg l_112 +lw $t1, 452($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 460($sp) +#AssignNode result_27 = instance_113 +lw $t1, 456($sp) +sw $t1, 112($sp) +#LabelNode label_50 +label_50: +#AssignNode result_18 = result_27 +lw $t1, 112($sp) +sw $t1, 76($sp) +#Goto label_51 +b label_51 +#LabelNode label_36 +label_36: +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 464($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 468($sp) +#CallNode String_init +move $t0, $sp +# Arg l_115 +lw $t1, 464($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_116 +lw $t1, 468($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 472($sp) +#AssignNode result_18 = instance_116 +lw $t1, 468($sp) +sw $t1, 76($sp) +#LabelNode label_51 +label_51: +#AssignNode result_9 = result_18 +lw $t1, 76($sp) +sw $t1, 40($sp) +#Goto label_52 +b label_52 +#LabelNode label_35 +label_35: +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 476($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 480($sp) +#CallNode String_init +move $t0, $sp +# Arg l_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 484($sp) +#AssignNode result_9 = instance_119 +lw $t1, 480($sp) +sw $t1, 40($sp) +#LabelNode label_52 +label_52: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_53 +b label_53 +#LabelNode label_34 +label_34: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 488($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 492($sp) +#CallNode String_init +move $t0, $sp +# Arg l_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 496($sp) +#AssignNode result_0 = instance_122 +lw $t1, 492($sp) +sw $t1, 4($sp) +#LabelNode label_53 +label_53: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 508 +jr $ra +A2I.a2i: +addi $sp, $sp, -312 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_1 -> label_54 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_54 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 88($sp) +#VCall substr +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 64($sp) +#LoadStr msg_13 +la $t0, msg_13 +sw $t0, 92($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#CallNode String_init +move $t0, $sp +# Arg l_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 100($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 104($sp) +# IFGoto result_11 -> label_55 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_55 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 136($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 148($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 152($sp) +#VCall substr +move $t0, $sp +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 128($sp) +#LoadStr msg_14 +la $t0, msg_14 +sw $t0, 156($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#CallNode String_init +move $t0, $sp +# Arg l_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 164($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 116($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 168($sp) +# IFGoto result_27 -> label_56 +lw $t0, 112($sp) +lw $a0, 16($t0) +bnez $a0, label_56 +#VCall a2i_aux +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 172($sp) +#AssignNode result_26 = result_42 +lw $t1, 172($sp) +sw $t1, 108($sp) +#Goto label_57 +b label_57 +#LabelNode label_56 +label_56: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 200($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 204($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 208($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 212($sp) +#GetAttr left_47 = Int.value +lw $t0, 200($sp) +lw $t1, 16($t0) +sw $t1, 192($sp) +#GetAttr right_48 = Int.value +lw $t0, 204($sp) +lw $t1, 16($t0) +sw $t1, 196($sp) +#BinaryOperator left_47 - right_48 +lw $a0, 192($sp) +lw $t1, 196($sp) +sub $a0, $a0, $t1 +sw $a0, 188($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 184($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 216($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 220($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 224($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 228($sp) +#VCall substr +move $t0, $sp +# Arg result_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 180($sp) +#VCall a2i_aux +move $t0, $sp +# Arg result_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 176($sp) +#AssignNode result_26 = result_43 +lw $t1, 176($sp) +sw $t1, 108($sp) +#LabelNode label_57 +label_57: +#AssignNode result_10 = result_26 +lw $t1, 108($sp) +sw $t1, 44($sp) +#Goto label_58 +b label_58 +#LabelNode label_55 +label_55: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 268($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 272($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 276($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_67 +lw $t1, 272($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 280($sp) +#GetAttr left_64 = Int.value +lw $t0, 268($sp) +lw $t1, 16($t0) +sw $t1, 260($sp) +#GetAttr right_65 = Int.value +lw $t0, 272($sp) +lw $t1, 16($t0) +sw $t1, 264($sp) +#BinaryOperator left_64 - right_65 +lw $a0, 260($sp) +lw $t1, 264($sp) +sub $a0, $a0, $t1 +sw $a0, 256($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 284($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 288($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 292($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_72 +lw $t1, 292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 296($sp) +#VCall substr +move $t0, $sp +# Arg result_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 248($sp) +#VCall a2i_aux +move $t0, $sp +# Arg result_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 244($sp) +#GetAttr l_59 = Int.value +lw $t0, 244($sp) +lw $t1, 16($t0) +sw $t1, 240($sp) +#UnaryOperator ~ l_59 +lw $t1, 240($sp) +neg $a0, $t1 +sw $a0, 236($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 232($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 300($sp) +#AssignNode result_10 = result_57 +lw $t1, 232($sp) +sw $t1, 44($sp) +#LabelNode label_58 +label_58: +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#Goto label_59 +b label_59 +#LabelNode label_54 +label_54: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 304($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 308($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_76 +lw $t1, 308($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_75 +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 312($sp) +#AssignNode result_0 = instance_75 +lw $t1, 304($sp) +sw $t1, 4($sp) +#LabelNode label_59 +label_59: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 324 +jr $ra +A2I.a2i_aux: +addi $sp, $sp, -188 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode int_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 196($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#AssignNode j_5 = result_4 +lw $t1, 20($sp) +sw $t1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#AssignNode i_9 = instance_6 +lw $t1, 28($sp) +sw $t1, 40($sp) +#LabelNode label_60 +label_60: +#GetAttr left_13 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 < right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +slt $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 64($sp) +# IFGoto result_11 -> label_61 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_61 +#Goto label_62 +b label_62 +#LabelNode label_61 +label_61: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#GetAttr left_22 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 * right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +mul $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 128($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#VCall substr +move $t0, $sp +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 196($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 120($sp) +#VCall c2i +move $t0, $sp +# Arg result_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 192($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 116($sp) +#GetAttr left_18 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 + right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +add $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#AssignNode int_3 = result_16 +lw $t1, 68($sp) +sw $t1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 164($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 168($sp) +#GetAttr left_37 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 152($sp) +#GetAttr right_38 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 156($sp) +#BinaryOperator left_37 + right_38 +lw $a0, 152($sp) +lw $t1, 156($sp) +add $a0, $a0, $t1 +sw $a0, 148($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 172($sp) +#AssignNode i_9 = result_35 +lw $t1, 144($sp) +sw $t1, 40($sp) +#Goto label_60 +b label_60 +#LabelNode label_62 +label_62: +#AssignNode result_44 = result_10 +lw $t1, 44($sp) +sw $t1, 180($sp) +#AssignNode result_45 = result_44 +lw $t1, 180($sp) +sw $t1, 184($sp) +#AssignNode result_46 = int_3 +lw $t1, 16($sp) +sw $t1, 188($sp) +#Return result_46 +lw $a1, 188($sp) +lw $ra, 0($sp) +addi $sp, $sp, 200 +jr $ra +A2I.i2a: +addi $sp, $sp, -156 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_63 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_63 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 64($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 68($sp) +#GetAttr left_12 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 < right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +slt $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_10 -> label_64 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_64 +#LoadStr msg_13 +la $t0, msg_13 +sw $t0, 80($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode String_init +move $t0, $sp +# Arg l_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 128($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#GetAttr l_29 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 120($sp) +#UnaryOperator ~ l_29 +lw $t1, 120($sp) +neg $a0, $t1 +sw $a0, 116($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#GetAttr left_25 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 104($sp) +#GetAttr right_26 = Int.value +lw $t0, 112($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#BinaryOperator left_25 * right_26 +lw $a0, 104($sp) +lw $t1, 108($sp) +mul $a0, $a0, $t1 +sw $a0, 100($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#VCall i2a_aux +move $t0, $sp +# Arg result_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 160($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 92($sp) +#VCall concat +move $t0, $sp +# Arg result_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 84($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 76($sp) +#AssignNode result_9 = result_18 +lw $t1, 76($sp) +sw $t1, 40($sp) +#Goto label_65 +b label_65 +#LabelNode label_64 +label_64: +#VCall i2a_aux +move $t0, $sp +# Arg i +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 160($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 144($sp) +#AssignNode result_9 = result_35 +lw $t1, 144($sp) +sw $t1, 40($sp) +#LabelNode label_65 +label_65: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_66 +b label_66 +#LabelNode label_63 +label_63: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 148($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode String_init +move $t0, $sp +# Arg l_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 156($sp) +#AssignNode result_0 = instance_37 +lw $t1, 152($sp) +sw $t1, 4($sp) +#LabelNode label_66 +label_66: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 168 +jr $ra +A2I.i2a_aux: +addi $sp, $sp, -152 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_67 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_67 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 56($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 60($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 64($sp) +#GetAttr left_11 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#GetAttr right_12 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#BinaryOperator left_11 / right_12 +lw $a0, 48($sp) +lw $t1, 52($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 68($sp) +#AssignNode next_17 = result_9 +lw $t1, 40($sp) +sw $t1, 72($sp) +#VCall i2a_aux +move $t0, $sp +# Arg next_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 156($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 124($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 128($sp) +#GetAttr left_27 = Int.value +lw $t0, 72($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#GetAttr right_28 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#BinaryOperator left_27 * right_28 +lw $a0, 112($sp) +lw $t1, 116($sp) +mul $a0, $a0, $t1 +sw $a0, 108($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#GetAttr left_23 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#GetAttr right_24 = Int.value +lw $t0, 104($sp) +lw $t1, 16($t0) +sw $t1, 100($sp) +#BinaryOperator left_23 - right_24 +lw $a0, 96($sp) +lw $t1, 100($sp) +sub $a0, $a0, $t1 +sw $a0, 92($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#VCall i2c +move $t0, $sp +# Arg result_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 156($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 84($sp) +#VCall concat +move $t0, $sp +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 80($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 76($sp) +#AssignNode result_34 = result_18 +lw $t1, 76($sp) +sw $t1, 140($sp) +#AssignNode result_0 = result_34 +lw $t1, 140($sp) +sw $t1, 4($sp) +#Goto label_68 +b label_68 +#LabelNode label_67 +label_67: +#LoadStr empty_str +la $t0, empty_str +sw $t0, 144($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 148($sp) +#CallNode String_init +move $t0, $sp +# Arg l_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 152($sp) +#AssignNode result_0 = instance_36 +lw $t1, 148($sp) +sw $t1, 4($sp) +#LabelNode label_68 +label_68: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 164 +jr $ra +Main_init: +addi $sp, $sp, -28 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#SetAttr Mainchar = instance_1 +lw $t0, 32($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#SetAttr Mainavar = void +lw $t0, 32($sp) +la $t1, void +sw $t1, 20($t0) +#SetAttr Maina_var = void +lw $t0, 32($sp) +la $t1, void +sw $t1, 24($t0) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 24($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 28($sp) +#SetAttr Mainflag = instance_4 +lw $t0, 32($sp) +lw $t1, 20($sp) +sw $t1, 28($t0) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Main.menu: +addi $sp, $sp, -356 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_15 +la $t0, msg_15 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 20($sp) +#LoadStr msg_16 +la $t0, msg_16 +sw $t0, 32($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode String_init +move $t0, $sp +# Arg l_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 40($sp) +#VCall out_string +move $t0, $sp +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 28($sp) +#LoadStr msg_17 +la $t0, msg_17 +sw $t0, 48($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 52($sp) +#CallNode String_init +move $t0, $sp +# Arg l_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 56($sp) +#VCall out_string +move $t0, $sp +# Arg instance_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 44($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 60($sp) +#LoadStr msg_18 +la $t0, msg_18 +sw $t0, 72($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode String_init +move $t0, $sp +# Arg l_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 80($sp) +#VCall out_string +move $t0, $sp +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 68($sp) +#LoadStr msg_19 +la $t0, msg_19 +sw $t0, 88($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#CallNode String_init +move $t0, $sp +# Arg l_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 96($sp) +#VCall out_string +move $t0, $sp +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 84($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 100($sp) +#LoadStr msg_20 +la $t0, msg_20 +sw $t0, 112($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode String_init +move $t0, $sp +# Arg l_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 120($sp) +#VCall out_string +move $t0, $sp +# Arg instance_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 108($sp) +#LoadStr msg_21 +la $t0, msg_21 +sw $t0, 128($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#CallNode String_init +move $t0, $sp +# Arg l_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 136($sp) +#VCall out_string +move $t0, $sp +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 124($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 140($sp) +#LoadStr msg_22 +la $t0, msg_22 +sw $t0, 152($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 156($sp) +#CallNode String_init +move $t0, $sp +# Arg l_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 160($sp) +#VCall out_string +move $t0, $sp +# Arg instance_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 148($sp) +#LoadStr msg_23 +la $t0, msg_23 +sw $t0, 168($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#CallNode String_init +move $t0, $sp +# Arg l_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 176($sp) +#VCall out_string +move $t0, $sp +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 164($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 180($sp) +#LoadStr msg_24 +la $t0, msg_24 +sw $t0, 192($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 196($sp) +#CallNode String_init +move $t0, $sp +# Arg l_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 200($sp) +#VCall out_string +move $t0, $sp +# Arg instance_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 188($sp) +#LoadStr msg_25 +la $t0, msg_25 +sw $t0, 208($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 212($sp) +#CallNode String_init +move $t0, $sp +# Arg l_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 216($sp) +#VCall out_string +move $t0, $sp +# Arg instance_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 204($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 220($sp) +#LoadStr msg_26 +la $t0, msg_26 +sw $t0, 232($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 236($sp) +#CallNode String_init +move $t0, $sp +# Arg l_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 240($sp) +#VCall out_string +move $t0, $sp +# Arg instance_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 228($sp) +#LoadStr msg_27 +la $t0, msg_27 +sw $t0, 248($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#CallNode String_init +move $t0, $sp +# Arg l_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 256($sp) +#VCall out_string +move $t0, $sp +# Arg instance_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 244($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 260($sp) +#LoadStr msg_28 +la $t0, msg_28 +sw $t0, 272($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 276($sp) +#CallNode String_init +move $t0, $sp +# Arg l_67 +lw $t1, 272($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 280($sp) +#VCall out_string +move $t0, $sp +# Arg instance_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 268($sp) +#LoadStr msg_29 +la $t0, msg_29 +sw $t0, 288($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 292($sp) +#CallNode String_init +move $t0, $sp +# Arg l_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_72 +lw $t1, 292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 296($sp) +#VCall out_string +move $t0, $sp +# Arg instance_72 +lw $t1, 292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 284($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 360($sp) +lw $t1, 20($t0) +sw $t1, 304($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 300($sp) +#LoadStr msg_30 +la $t0, msg_30 +sw $t0, 312($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 316($sp) +#CallNode String_init +move $t0, $sp +# Arg l_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 320($sp) +#VCall out_string +move $t0, $sp +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 308($sp) +#LoadStr msg_31 +la $t0, msg_31 +sw $t0, 328($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#CallNode String_init +move $t0, $sp +# Arg l_81 +lw $t1, 328($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 336($sp) +#VCall out_string +move $t0, $sp +# Arg instance_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 324($sp) +#LoadStr msg_32 +la $t0, msg_32 +sw $t0, 344($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 348($sp) +#CallNode String_init +move $t0, $sp +# Arg l_85 +lw $t1, 344($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 352($sp) +#VCall out_string +move $t0, $sp +# Arg instance_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 340($sp) +#VCall in_string +move $t0, $sp +# Arg self +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 360($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 356($sp) +#Return result_88 +lw $a1, 356($sp) +lw $ra, 0($sp) +addi $sp, $sp, 364 +jr $ra +Main.prompt: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#LoadStr msg_33 +la $t0, msg_33 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#VCall out_string +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#VCall in_string +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 36($sp) +#Return result_8 +lw $a1, 36($sp) +lw $ra, 0($sp) +addi $sp, $sp, 44 +jr $ra +Main.get_int: +addi $sp, $sp, -32 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 6:tag A2I:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, A2I_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, A2I_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode A2I_init +move $t0, $sp +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A2I_init +sw $a1, 8($sp) +#AssignNode z_2 = result_0 +lw $t1, 4($sp) +sw $t1, 12($sp) +#VCall prompt +move $t0, $sp +# Arg self +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 36($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 16($sp) +#AssignNode s_4 = result_3 +lw $t1, 16($sp) +sw $t1, 20($sp) +#VCall a2i +move $t0, $sp +# Arg s_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg z_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 24($sp) +#AssignNode result_6 = result_5 +lw $t1, 24($sp) +sw $t1, 28($sp) +#AssignNode result_7 = result_6 +lw $t1, 28($sp) +sw $t1, 32($sp) +#Return result_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 40 +jr $ra +Main.is_even: +addi $sp, $sp, -196 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#AssignNode x_0 = num +lw $t1, 204($sp) +sw $t1, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_4 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr right_5 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#BinaryOperator left_4 < right_5 +lw $a0, 20($sp) +lw $t1, 24($sp) +slt $a0, $a0, $t1 +sw $a0, 16($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_2 -> label_69 +lw $t0, 12($sp) +lw $a0, 16($t0) +bnez $a0, label_69 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 64($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 72($sp) +#GetAttr left_13 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 76($sp) +# IFGoto result_11 -> label_70 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_70 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#GetAttr left_22 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 = right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +seq $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 112($sp) +# IFGoto result_20 -> label_71 +lw $t0, 84($sp) +lw $a0, 16($t0) +bnez $a0, label_71 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 140($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 144($sp) +#GetAttr left_31 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 128($sp) +#GetAttr right_32 = Int.value +lw $t0, 136($sp) +lw $t1, 16($t0) +sw $t1, 132($sp) +#BinaryOperator left_31 - right_32 +lw $a0, 128($sp) +lw $t1, 132($sp) +sub $a0, $a0, $t1 +sw $a0, 124($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 148($sp) +#VCall is_even +move $t0, $sp +# Arg result_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 200($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 116($sp) +#AssignNode result_19 = result_28 +lw $t1, 116($sp) +sw $t1, 80($sp) +#Goto label_72 +b label_72 +#LabelNode label_71 +label_71: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 156($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 160($sp) +#AssignNode result_19 = instance_37 +lw $t1, 152($sp) +sw $t1, 80($sp) +#LabelNode label_72 +label_72: +#AssignNode result_10 = result_19 +lw $t1, 80($sp) +sw $t1, 44($sp) +#Goto label_73 +b label_73 +#LabelNode label_70 +label_70: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 164($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 168($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 172($sp) +#AssignNode result_10 = instance_40 +lw $t1, 164($sp) +sw $t1, 44($sp) +#LabelNode label_73 +label_73: +#AssignNode result_1 = result_10 +lw $t1, 44($sp) +sw $t1, 8($sp) +#Goto label_74 +b label_74 +#LabelNode label_69 +label_69: +#GetAttr l_46 = Int.value +lw $t0, 4($sp) +lw $t1, 16($t0) +sw $t1, 188($sp) +#UnaryOperator ~ l_46 +lw $t1, 188($sp) +neg $a0, $t1 +sw $a0, 184($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 180($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 192($sp) +#VCall is_even +move $t0, $sp +# Arg result_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 200($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 176($sp) +#AssignNode result_1 = result_43 +lw $t1, 176($sp) +sw $t1, 8($sp) +#LabelNode label_74 +label_74: +#AssignNode result_48 = result_1 +lw $t1, 8($sp) +sw $t1, 196($sp) +#Return result_48 +lw $a1, 196($sp) +lw $ra, 0($sp) +addi $sp, $sp, 208 +jr $ra +Main.class_type: +addi $sp, $sp, -124 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Case var +lw $t0, 132($sp) +lw $t1, 0($t0) +la $a0, void +bne $t1, $a0, label_75 +b case_void_error +#LabelNode label_75 +label_75: +#Action +blt $t1, 9, label_77 +bgt $t1, 9, label_77 +#AssignNode e_1 = var +lw $t1, 132($sp) +sw $t1, 8($sp) +#LoadStr msg_34 +la $t0, msg_34 +sw $t0, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg l_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#VCall out_string +move $t0, $sp +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 12($sp) +#AssignNode result_0 = result_2 +lw $t1, 12($sp) +sw $t1, 4($sp) +#Goto label_76 +b label_76 +#LabelNode label_77 +label_77: +#Action +blt $t1, 8, label_78 +bgt $t1, 9, label_78 +#AssignNode d_6 = var +lw $t1, 132($sp) +sw $t1, 28($sp) +#LoadStr msg_35 +la $t0, msg_35 +sw $t0, 36($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode String_init +move $t0, $sp +# Arg l_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 44($sp) +#VCall out_string +move $t0, $sp +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 32($sp) +#AssignNode result_0 = result_7 +lw $t1, 32($sp) +sw $t1, 4($sp) +#Goto label_76 +b label_76 +#LabelNode label_78 +label_78: +#Action +blt $t1, 7, label_79 +bgt $t1, 7, label_79 +#AssignNode c_11 = var +lw $t1, 132($sp) +sw $t1, 48($sp) +#LoadStr msg_36 +la $t0, msg_36 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#AssignNode result_0 = result_12 +lw $t1, 52($sp) +sw $t1, 4($sp) +#Goto label_76 +b label_76 +#LabelNode label_79 +label_79: +#Action +blt $t1, 6, label_80 +bgt $t1, 9, label_80 +#AssignNode b_16 = var +lw $t1, 132($sp) +sw $t1, 68($sp) +#LoadStr msg_37 +la $t0, msg_37 +sw $t0, 76($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode String_init +move $t0, $sp +# Arg l_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 84($sp) +#VCall out_string +move $t0, $sp +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 72($sp) +#AssignNode result_0 = result_17 +lw $t1, 72($sp) +sw $t1, 4($sp) +#Goto label_76 +b label_76 +#LabelNode label_80 +label_80: +#Action +blt $t1, 5, label_81 +bgt $t1, 9, label_81 +#AssignNode a_21 = var +lw $t1, 132($sp) +sw $t1, 88($sp) +#LoadStr msg_38 +la $t0, msg_38 +sw $t0, 96($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode String_init +move $t0, $sp +# Arg l_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 104($sp) +#VCall out_string +move $t0, $sp +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 92($sp) +#AssignNode result_0 = result_22 +lw $t1, 92($sp) +sw $t1, 4($sp) +#Goto label_76 +b label_76 +#LabelNode label_81 +label_81: +#Action +blt $t1, 0, label_82 +bgt $t1, 9, label_82 +#AssignNode o_26 = var +lw $t1, 132($sp) +sw $t1, 108($sp) +#LoadStr msg_39 +la $t0, msg_39 +sw $t0, 116($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#CallNode String_init +move $t0, $sp +# Arg l_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 124($sp) +#VCall out_string +move $t0, $sp +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 128($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 112($sp) +#AssignNode result_0 = result_27 +lw $t1, 112($sp) +sw $t1, 4($sp) +#Goto label_76 +b label_76 +#LabelNode label_82 +label_82: +#Goto case_no_match_error +b case_no_match_error +#LabelNode label_76 +label_76: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 136 +jr $ra +Main.print: +addi $sp, $sp, -44 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 6:tag A2I:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, A2I_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, A2I_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode A2I_init +move $t0, $sp +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A2I_init +sw $a1, 8($sp) +#AssignNode z_2 = result_0 +lw $t1, 4($sp) +sw $t1, 12($sp) +#VCall value +move $t0, $sp +# Arg var +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 52($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 24($sp) +#VCall i2a +move $t0, $sp +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg z_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 20($sp) +#VCall out_string +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 16($sp) +#LoadStr msg_40 +la $t0, msg_40 +sw $t0, 32($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode String_init +move $t0, $sp +# Arg l_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 40($sp) +#VCall out_string +move $t0, $sp +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 28($sp) +#AssignNode result_10 = result_6 +lw $t1, 28($sp) +sw $t1, 44($sp) +#Return result_10 +lw $a1, 44($sp) +lw $ra, 0($sp) +addi $sp, $sp, 56 +jr $ra +Main.main: +addi $sp, $sp, -1136 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode A_init +move $t0, $sp +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 8($sp) +#SetAttr Mainavar = result_0 +lw $t0, 1140($sp) +lw $t1, 4($sp) +sw $t1, 20($t0) +#LabelNode label_83 +label_83: +#GetAttr Main.flag = Main.flag +lw $t0, 1140($sp) +lw $t1, 28($t0) +sw $t1, 20($sp) +# IFGoto Main.flag -> label_84 +lw $t0, 20($sp) +lw $a0, 16($t0) +bnez $a0, label_84 +#Goto label_85 +b label_85 +#LabelNode label_84 +label_84: +#LoadStr msg_41 +la $t0, msg_41 +sw $t0, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg l_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#VCall out_string +move $t0, $sp +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 24($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 40($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 56($sp) +#VCall is_even +move $t0, $sp +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 52($sp) +# IFGoto result_12 -> label_86 +lw $t0, 52($sp) +lw $a0, 16($t0) +bnez $a0, label_86 +#LoadStr msg_42 +la $t0, msg_42 +sw $t0, 68($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#CallNode String_init +move $t0, $sp +# Arg l_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 76($sp) +#VCall out_string +move $t0, $sp +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 64($sp) +#AssignNode result_11 = result_15 +lw $t1, 64($sp) +sw $t1, 48($sp) +#Goto label_87 +b label_87 +#LabelNode label_86 +label_86: +#LoadStr msg_43 +la $t0, msg_43 +sw $t0, 84($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode String_init +move $t0, $sp +# Arg l_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 92($sp) +#VCall out_string +move $t0, $sp +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 80($sp) +#AssignNode result_11 = result_19 +lw $t1, 80($sp) +sw $t1, 48($sp) +#LabelNode label_87 +label_87: +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall class_type +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 96($sp) +#VCall menu +move $t0, $sp +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 104($sp) +#SetAttr Mainchar = result_25 +lw $t0, 1140($sp) +lw $t1, 104($sp) +sw $t1, 16($t0) +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_44 +la $t0, msg_44 +sw $t0, 136($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 140($sp) +#CallNode String_init +move $t0, $sp +# Arg l_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 144($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 120($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 148($sp) +# IFGoto result_28 -> label_88 +lw $t0, 116($sp) +lw $a0, 16($t0) +bnez $a0, label_88 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_45 +la $t0, msg_45 +sw $t0, 176($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 180($sp) +#CallNode String_init +move $t0, $sp +# Arg l_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 184($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 160($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 156($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 188($sp) +# IFGoto result_38 -> label_89 +lw $t0, 156($sp) +lw $a0, 16($t0) +bnez $a0, label_89 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_46 +la $t0, msg_46 +sw $t0, 216($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 220($sp) +#CallNode String_init +move $t0, $sp +# Arg l_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 224($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 200($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 196($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_49 +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 228($sp) +# IFGoto result_48 -> label_90 +lw $t0, 196($sp) +lw $a0, 16($t0) +bnez $a0, label_90 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_47 +la $t0, msg_47 +sw $t0, 256($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 260($sp) +#CallNode String_init +move $t0, $sp +# Arg l_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 264($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 240($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 236($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 268($sp) +# IFGoto result_58 -> label_91 +lw $t0, 236($sp) +lw $a0, 16($t0) +bnez $a0, label_91 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_48 +la $t0, msg_48 +sw $t0, 296($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 300($sp) +#CallNode String_init +move $t0, $sp +# Arg l_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 304($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 280($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 276($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 308($sp) +# IFGoto result_68 -> label_92 +lw $t0, 276($sp) +lw $a0, 16($t0) +bnez $a0, label_92 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_49 +la $t0, msg_49 +sw $t0, 336($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 340($sp) +#CallNode String_init +move $t0, $sp +# Arg l_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_84 +lw $t1, 340($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 344($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_84 +lw $t1, 340($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 320($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 316($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_79 +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 348($sp) +# IFGoto result_78 -> label_93 +lw $t0, 316($sp) +lw $a0, 16($t0) +bnez $a0, label_93 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_50 +la $t0, msg_50 +sw $t0, 376($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 380($sp) +#CallNode String_init +move $t0, $sp +# Arg l_93 +lw $t1, 376($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 384($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 360($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 356($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_89 +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_88 +lw $t1, 356($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 388($sp) +# IFGoto result_88 -> label_94 +lw $t0, 356($sp) +lw $a0, 16($t0) +bnez $a0, label_94 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_51 +la $t0, msg_51 +sw $t0, 416($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 420($sp) +#CallNode String_init +move $t0, $sp +# Arg l_103 +lw $t1, 416($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 424($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 400($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 396($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_99 +lw $t1, 400($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_98 +lw $t1, 396($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 428($sp) +# IFGoto result_98 -> label_95 +lw $t0, 396($sp) +lw $a0, 16($t0) +bnez $a0, label_95 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_52 +la $t0, msg_52 +sw $t0, 456($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 460($sp) +#CallNode String_init +move $t0, $sp +# Arg l_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_114 +lw $t1, 460($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 464($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_114 +lw $t1, 460($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 440($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 436($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_108 +lw $t1, 436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 468($sp) +# IFGoto result_108 -> label_96 +lw $t0, 436($sp) +lw $a0, 16($t0) +bnez $a0, label_96 +#GetAttr Main.char = Main.char +lw $t0, 1140($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#LoadStr msg_53 +la $t0, msg_53 +sw $t0, 496($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 500($sp) +#CallNode String_init +move $t0, $sp +# Arg l_123 +lw $t1, 496($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_124 +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 504($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_124 +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Main.char +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 480($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 476($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 508($sp) +# IFGoto result_118 -> label_97 +lw $t0, 476($sp) +lw $a0, 16($t0) +bnez $a0, label_97 +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 516($sp) +#CallNode A_init +move $t0, $sp +# Arg result_128 +lw $t1, 516($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 520($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 524($sp) +#VCall method1 +move $t0, $sp +# Arg result_130 +lw $t1, 524($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_128 +lw $t1, 516($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 516($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 512($sp) +#SetAttr Mainavar = result_127 +lw $t0, 1140($sp) +lw $t1, 512($sp) +sw $t1, 20($t0) +#AssignNode result_117 = result_127 +lw $t1, 512($sp) +sw $t1, 472($sp) +#Goto label_98 +b label_98 +#LabelNode label_97 +label_97: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 536($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 540($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_134 +lw $t1, 540($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_133 +lw $t1, 536($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 544($sp) +#SetAttr Mainflag = instance_133 +lw $t0, 1140($sp) +lw $t1, 536($sp) +sw $t1, 28($t0) +#AssignNode result_117 = instance_133 +lw $t1, 536($sp) +sw $t1, 472($sp) +#LabelNode label_98 +label_98: +#AssignNode result_107 = result_117 +lw $t1, 472($sp) +sw $t1, 432($sp) +#Goto label_99 +b label_99 +#LabelNode label_96 +label_96: +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 552($sp) +#CallNode A_init +move $t0, $sp +# Arg result_137 +lw $t1, 552($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 556($sp) +#SetAttr Mainavar = result_137 +lw $t0, 1140($sp) +lw $t1, 552($sp) +sw $t1, 20($t0) +#AssignNode result_107 = result_137 +lw $t1, 552($sp) +sw $t1, 432($sp) +#LabelNode label_99 +label_99: +#AssignNode result_97 = result_107 +lw $t1, 432($sp) +sw $t1, 392($sp) +#Goto label_100 +b label_100 +#LabelNode label_95 +label_95: +#AssignNode x_140 = None +la $t1, void +sw $t1, 564($sp) +#Allocate 9:tag E:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 9 +sw $t1, 0($t0) +la $t1, E_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, E_methods +sw $t1, 12($t0) +sw $t0, 572($sp) +#CallNode E_init +move $t0, $sp +# Arg result_142 +lw $t1, 572($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal E_init +sw $a1, 576($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 580($sp) +#VCall method6 +move $t0, $sp +# Arg result_144 +lw $t1, 580($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_142 +lw $t1, 572($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 572($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 568($sp) +#AssignNode x_140 = result_141 +lw $t1, 568($sp) +sw $t1, 564($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 608($sp) +#VCall value +move $t0, $sp +# Arg x_140 +lw $t1, 564($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 564($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 632($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 636($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 640($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_159 +lw $t1, 640($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_158 +lw $t1, 636($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 644($sp) +#GetAttr left_155 = Int.value +lw $t0, 632($sp) +lw $t1, 16($t0) +sw $t1, 624($sp) +#GetAttr right_156 = Int.value +lw $t0, 636($sp) +lw $t1, 16($t0) +sw $t1, 628($sp) +#BinaryOperator left_155 * right_156 +lw $a0, 624($sp) +lw $t1, 628($sp) +mul $a0, $a0, $t1 +sw $a0, 620($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 616($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_154 +lw $t1, 620($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_153 +lw $t1, 616($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 648($sp) +#GetAttr left_149 = Int.value +lw $t0, 608($sp) +lw $t1, 16($t0) +sw $t1, 600($sp) +#GetAttr right_150 = Int.value +lw $t0, 616($sp) +lw $t1, 16($t0) +sw $t1, 604($sp) +#BinaryOperator left_149 - right_150 +lw $a0, 600($sp) +lw $t1, 604($sp) +sub $a0, $a0, $t1 +sw $a0, 596($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 592($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_148 +lw $t1, 596($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_147 +lw $t1, 592($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 652($sp) +#AssignNode r_163 = result_147 +lw $t1, 592($sp) +sw $t1, 656($sp) +#LoadStr msg_41 +la $t0, msg_41 +sw $t0, 664($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 668($sp) +#CallNode String_init +move $t0, $sp +# Arg l_165 +lw $t1, 664($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_166 +lw $t1, 668($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 672($sp) +#VCall out_string +move $t0, $sp +# Arg instance_166 +lw $t1, 668($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 660($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 676($sp) +#LoadStr msg_54 +la $t0, msg_54 +sw $t0, 688($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 692($sp) +#CallNode String_init +move $t0, $sp +# Arg l_171 +lw $t1, 688($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_172 +lw $t1, 692($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 696($sp) +#VCall out_string +move $t0, $sp +# Arg instance_172 +lw $t1, 692($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 684($sp) +#VCall print +move $t0, $sp +# Arg x_140 +lw $t1, 564($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 700($sp) +#LoadStr msg_55 +la $t0, msg_55 +sw $t0, 708($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 712($sp) +#CallNode String_init +move $t0, $sp +# Arg l_176 +lw $t1, 708($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_177 +lw $t1, 712($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 716($sp) +#VCall out_string +move $t0, $sp +# Arg instance_177 +lw $t1, 712($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 704($sp) +#Allocate 6:tag A2I:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, A2I_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, A2I_methods +sw $t1, 12($t0) +sw $t0, 720($sp) +#CallNode A2I_init +move $t0, $sp +# Arg result_179 +lw $t1, 720($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A2I_init +sw $a1, 724($sp) +#AssignNode a_181 = result_179 +lw $t1, 720($sp) +sw $t1, 728($sp) +#VCall i2a +move $t0, $sp +# Arg r_163 +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg a_181 +lw $t1, 728($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 728($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 736($sp) +#VCall out_string +move $t0, $sp +# Arg result_183 +lw $t1, 736($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 732($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 744($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 748($sp) +#CallNode String_init +move $t0, $sp +# Arg l_185 +lw $t1, 744($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_186 +lw $t1, 748($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 752($sp) +#VCall out_string +move $t0, $sp +# Arg instance_186 +lw $t1, 748($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 740($sp) +#AssignNode result_188 = result_184 +lw $t1, 740($sp) +sw $t1, 756($sp) +#AssignNode result_189 = result_188 +lw $t1, 756($sp) +sw $t1, 760($sp) +#SetAttr Mainavar = x_140 +lw $t0, 1140($sp) +lw $t1, 564($sp) +sw $t1, 20($t0) +#AssignNode result_191 = x_140 +lw $t1, 564($sp) +sw $t1, 768($sp) +#AssignNode result_97 = result_191 +lw $t1, 768($sp) +sw $t1, 392($sp) +#LabelNode label_100 +label_100: +#AssignNode result_87 = result_97 +lw $t1, 392($sp) +sw $t1, 352($sp) +#Goto label_101 +b label_101 +#LabelNode label_94 +label_94: +#Allocate 8:tag D:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 8 +sw $t1, 0($t0) +la $t1, D_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, D_methods +sw $t1, 12($t0) +sw $t0, 780($sp) +#CallNode D_init +move $t0, $sp +# Arg result_194 +lw $t1, 780($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal D_init +sw $a1, 784($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 788($sp) +#VCall method7 +move $t0, $sp +# Arg result_196 +lw $t1, 788($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_194 +lw $t1, 780($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 780($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 776($sp) +# IFGoto result_193 -> label_102 +lw $t0, 776($sp) +lw $a0, 16($t0) +bnez $a0, label_102 +#LoadStr msg_41 +la $t0, msg_41 +sw $t0, 800($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 804($sp) +#CallNode String_init +move $t0, $sp +# Arg l_199 +lw $t1, 800($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_200 +lw $t1, 804($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 808($sp) +#VCall out_string +move $t0, $sp +# Arg instance_200 +lw $t1, 804($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 796($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 812($sp) +#LoadStr msg_56 +la $t0, msg_56 +sw $t0, 824($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 828($sp) +#CallNode String_init +move $t0, $sp +# Arg l_205 +lw $t1, 824($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_206 +lw $t1, 828($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 832($sp) +#VCall out_string +move $t0, $sp +# Arg instance_206 +lw $t1, 828($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 820($sp) +#AssignNode result_192 = result_204 +lw $t1, 820($sp) +sw $t1, 772($sp) +#Goto label_103 +b label_103 +#LabelNode label_102 +label_102: +#LoadStr msg_41 +la $t0, msg_41 +sw $t0, 840($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 844($sp) +#CallNode String_init +move $t0, $sp +# Arg l_209 +lw $t1, 840($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_210 +lw $t1, 844($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 848($sp) +#VCall out_string +move $t0, $sp +# Arg instance_210 +lw $t1, 844($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 836($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall print +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 852($sp) +#LoadStr msg_57 +la $t0, msg_57 +sw $t0, 864($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 868($sp) +#CallNode String_init +move $t0, $sp +# Arg l_215 +lw $t1, 864($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_216 +lw $t1, 868($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 872($sp) +#VCall out_string +move $t0, $sp +# Arg instance_216 +lw $t1, 868($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 860($sp) +#AssignNode result_192 = result_214 +lw $t1, 860($sp) +sw $t1, 772($sp) +#LabelNode label_103 +label_103: +#AssignNode result_87 = result_192 +lw $t1, 772($sp) +sw $t1, 352($sp) +#LabelNode label_101 +label_101: +#AssignNode result_77 = result_87 +lw $t1, 352($sp) +sw $t1, 312($sp) +#Goto label_104 +b label_104 +#LabelNode label_93 +label_93: +#Allocate 7:tag C:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 7 +sw $t1, 0($t0) +la $t1, C_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, C_methods +sw $t1, 12($t0) +sw $t0, 880($sp) +#CallNode C_init +move $t0, $sp +# Arg result_219 +lw $t1, 880($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal C_init +sw $a1, 884($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 888($sp) +#Allocate 7:tag C:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 7 +sw $t1, 0($t0) +la $t1, C_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, C_methods +sw $t1, 12($t0) +sw $t0, 896($sp) +#VCall method5 +move $t0, $sp +# Arg result_221 +lw $t1, 888($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_219 +lw $t1, 880($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 896($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 876($sp) +#SetAttr Mainavar = result_218 +lw $t0, 1140($sp) +lw $t1, 876($sp) +sw $t1, 20($t0) +#AssignNode result_77 = result_218 +lw $t1, 876($sp) +sw $t1, 312($sp) +#LabelNode label_104 +label_104: +#AssignNode result_67 = result_77 +lw $t1, 312($sp) +sw $t1, 272($sp) +#Goto label_105 +b label_105 +#LabelNode label_92 +label_92: +#Allocate 7:tag C:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 7 +sw $t1, 0($t0) +la $t1, C_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, C_methods +sw $t1, 12($t0) +sw $t0, 908($sp) +#CallNode C_init +move $t0, $sp +# Arg result_226 +lw $t1, 908($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal C_init +sw $a1, 912($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 916($sp) +#Allocate 6:tag B:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, B_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, B_methods +sw $t1, 12($t0) +sw $t0, 924($sp) +#VCall method5 +move $t0, $sp +# Arg result_228 +lw $t1, 916($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_226 +lw $t1, 908($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 924($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 904($sp) +#SetAttr Mainavar = result_225 +lw $t0, 1140($sp) +lw $t1, 904($sp) +sw $t1, 20($t0) +#AssignNode result_67 = result_225 +lw $t1, 904($sp) +sw $t1, 272($sp) +#LabelNode label_105 +label_105: +#AssignNode result_57 = result_67 +lw $t1, 272($sp) +sw $t1, 232($sp) +#Goto label_106 +b label_106 +#LabelNode label_91 +label_91: +#Allocate 7:tag C:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 7 +sw $t1, 0($t0) +la $t1, C_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, C_methods +sw $t1, 12($t0) +sw $t0, 936($sp) +#CallNode C_init +move $t0, $sp +# Arg result_233 +lw $t1, 936($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal C_init +sw $a1, 940($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 944($sp) +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 952($sp) +#VCall method5 +move $t0, $sp +# Arg result_235 +lw $t1, 944($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_233 +lw $t1, 936($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 952($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 932($sp) +#SetAttr Mainavar = result_232 +lw $t0, 1140($sp) +lw $t1, 932($sp) +sw $t1, 20($t0) +#AssignNode result_57 = result_232 +lw $t1, 932($sp) +sw $t1, 232($sp) +#LabelNode label_106 +label_106: +#AssignNode result_47 = result_57 +lw $t1, 232($sp) +sw $t1, 192($sp) +#Goto label_107 +b label_107 +#LabelNode label_90 +label_90: +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 964($sp) +#CallNode A_init +move $t0, $sp +# Arg result_240 +lw $t1, 964($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 968($sp) +#VCall get_int +move $t0, $sp +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 972($sp) +#VCall set_var +move $t0, $sp +# Arg result_242 +lw $t1, 972($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_240 +lw $t1, 964($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 964($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 960($sp) +#SetAttr Maina_var = result_239 +lw $t0, 1140($sp) +lw $t1, 960($sp) +sw $t1, 24($t0) +#Allocate 8:tag D:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 8 +sw $t1, 0($t0) +la $t1, D_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, D_methods +sw $t1, 12($t0) +sw $t0, 984($sp) +#CallNode D_init +move $t0, $sp +# Arg result_245 +lw $t1, 984($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal D_init +sw $a1, 988($sp) +#GetAttr Main.a_var = Main.a_var +lw $t0, 1140($sp) +lw $t1, 24($t0) +sw $t1, 1124($sp) +#VCall value +move $t0, $sp +# Arg Main.a_var +lw $t1, 1124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1124($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 992($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 1000($sp) +#VCall method4 +move $t0, $sp +# Arg result_247 +lw $t1, 992($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_249 +lw $t1, 1000($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_245 +lw $t1, 984($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 984($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 980($sp) +#SetAttr Mainavar = result_244 +lw $t0, 1140($sp) +lw $t1, 980($sp) +sw $t1, 20($t0) +#AssignNode result_47 = result_244 +lw $t1, 980($sp) +sw $t1, 192($sp) +#LabelNode label_107 +label_107: +#AssignNode result_37 = result_47 +lw $t1, 192($sp) +sw $t1, 152($sp) +#Goto label_108 +b label_108 +#LabelNode label_89 +label_89: +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#Case Main.avar +lw $t0, 1132($sp) +lw $t1, 0($t0) +la $a0, void +bne $t1, $a0, label_109 +b case_void_error +#LabelNode label_109 +label_109: +#Action +blt $t1, 7, label_111 +bgt $t1, 7, label_111 +#AssignNode c_254 = Main.avar +lw $t1, 1132($sp) +sw $t1, 1020($sp) +#VCall value +move $t0, $sp +# Arg c_254 +lw $t1, 1020($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1020($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 1028($sp) +#VCall method6 +move $t0, $sp +# Arg result_256 +lw $t1, 1028($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg c_254 +lw $t1, 1020($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1020($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 1024($sp) +#SetAttr Mainavar = result_255 +lw $t0, 1140($sp) +lw $t1, 1024($sp) +sw $t1, 20($t0) +#AssignNode result_252 = result_255 +lw $t1, 1024($sp) +sw $t1, 1012($sp) +#Goto label_110 +b label_110 +#LabelNode label_111 +label_111: +#Action +blt $t1, 5, label_112 +bgt $t1, 9, label_112 +#AssignNode a_258 = Main.avar +lw $t1, 1132($sp) +sw $t1, 1036($sp) +#VCall value +move $t0, $sp +# Arg a_258 +lw $t1, 1036($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1036($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 1044($sp) +#VCall method3 +move $t0, $sp +# Arg result_260 +lw $t1, 1044($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg a_258 +lw $t1, 1036($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1036($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 1040($sp) +#SetAttr Mainavar = result_259 +lw $t0, 1140($sp) +lw $t1, 1040($sp) +sw $t1, 20($t0) +#AssignNode result_252 = result_259 +lw $t1, 1040($sp) +sw $t1, 1012($sp) +#Goto label_110 +b label_110 +#LabelNode label_112 +label_112: +#Action +blt $t1, 0, label_113 +bgt $t1, 9, label_113 +#AssignNode o_262 = Main.avar +lw $t1, 1132($sp) +sw $t1, 1052($sp) +#LoadStr msg_39 +la $t0, msg_39 +sw $t0, 1060($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1064($sp) +#CallNode String_init +move $t0, $sp +# Arg l_264 +lw $t1, 1060($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_265 +lw $t1, 1064($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1068($sp) +#VCall out_string +move $t0, $sp +# Arg instance_265 +lw $t1, 1064($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 1056($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 1072($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 1076($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 1080($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_269 +lw $t1, 1080($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_268 +lw $t1, 1076($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 1084($sp) +#AssignNode result_252 = instance_268 +lw $t1, 1076($sp) +sw $t1, 1012($sp) +#Goto label_110 +b label_110 +#LabelNode label_113 +label_113: +#Goto case_no_match_error +b case_no_match_error +#LabelNode label_110 +label_110: +#AssignNode result_37 = result_252 +lw $t1, 1012($sp) +sw $t1, 152($sp) +#LabelNode label_108 +label_108: +#AssignNode result_27 = result_37 +lw $t1, 152($sp) +sw $t1, 112($sp) +#Goto label_114 +b label_114 +#LabelNode label_88 +label_88: +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 1092($sp) +#CallNode A_init +move $t0, $sp +# Arg result_272 +lw $t1, 1092($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 1096($sp) +#VCall get_int +move $t0, $sp +# Arg self +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 1100($sp) +#VCall set_var +move $t0, $sp +# Arg result_274 +lw $t1, 1100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_272 +lw $t1, 1092($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1092($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 1088($sp) +#SetAttr Maina_var = result_271 +lw $t0, 1140($sp) +lw $t1, 1088($sp) +sw $t1, 24($t0) +#Allocate 6:tag B:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, B_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, B_methods +sw $t1, 12($t0) +sw $t0, 1112($sp) +#CallNode B_init +move $t0, $sp +# Arg result_277 +lw $t1, 1112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal B_init +sw $a1, 1116($sp) +#GetAttr Main.a_var = Main.a_var +lw $t0, 1140($sp) +lw $t1, 24($t0) +sw $t1, 1124($sp) +#VCall value +move $t0, $sp +# Arg Main.a_var +lw $t1, 1124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1124($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 1120($sp) +#GetAttr Main.avar = Main.avar +lw $t0, 1140($sp) +lw $t1, 20($t0) +sw $t1, 1132($sp) +#VCall value +move $t0, $sp +# Arg Main.avar +lw $t1, 1132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 1128($sp) +#VCall method2 +move $t0, $sp +# Arg result_279 +lw $t1, 1120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_281 +lw $t1, 1128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_277 +lw $t1, 1112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1112($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 1108($sp) +#SetAttr Mainavar = result_276 +lw $t0, 1140($sp) +lw $t1, 1108($sp) +sw $t1, 20($t0) +#AssignNode result_27 = result_276 +lw $t1, 1108($sp) +sw $t1, 112($sp) +#LabelNode label_114 +label_114: +#Goto label_83 +b label_83 +#LabelNode label_85 +label_85: +#Return result_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 1144 +jr $ra \ No newline at end of file diff --git a/tests/codegen/atoi.mips b/tests/codegen/atoi.mips new file mode 100644 index 000000000..5d71e5ce3 --- /dev/null +++ b/tests/codegen/atoi.mips @@ -0,0 +1,5430 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +A2I_name: .asciiz "A2I" +A2I_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A2I.c2i +.word A2I.i2c +.word A2I.a2i +.word A2I.a2i_aux +.word A2I.i2a +.word A2I.i2a_aux +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "0" +msg_4: .asciiz "1" +msg_5: .asciiz "2" +msg_6: .asciiz "3" +msg_7: .asciiz "4" +msg_8: .asciiz "5" +msg_9: .asciiz "6" +msg_10: .asciiz "7" +msg_11: .asciiz "8" +msg_12: .asciiz "9" +msg_13: .asciiz "-" +msg_14: .asciiz "+" +msg_15: .asciiz "678987" +msg_16: .asciiz " == " +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +A2I_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +A2I.c2i: +addi $sp, $sp, -496 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_1 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 60($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 64($sp) +#CallNode String_init +move $t0, $sp +# Arg l_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 68($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_10 -> label_2 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_2 +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 96($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode String_init +move $t0, $sp +# Arg l_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 104($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 84($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_19 -> label_3 +lw $t0, 80($sp) +lw $a0, 16($t0) +bnez $a0, label_3 +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 132($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#CallNode String_init +move $t0, $sp +# Arg l_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 140($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 120($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 144($sp) +# IFGoto result_28 -> label_4 +lw $t0, 116($sp) +lw $a0, 16($t0) +bnez $a0, label_4 +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 168($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#CallNode String_init +move $t0, $sp +# Arg l_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 176($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 156($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 180($sp) +# IFGoto result_37 -> label_5 +lw $t0, 152($sp) +lw $a0, 16($t0) +bnez $a0, label_5 +#LoadStr msg_8 +la $t0, msg_8 +sw $t0, 204($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 208($sp) +#CallNode String_init +move $t0, $sp +# Arg l_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 212($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 192($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 216($sp) +# IFGoto result_46 -> label_6 +lw $t0, 188($sp) +lw $a0, 16($t0) +bnez $a0, label_6 +#LoadStr msg_9 +la $t0, msg_9 +sw $t0, 240($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 244($sp) +#CallNode String_init +move $t0, $sp +# Arg l_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 248($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 228($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 224($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 252($sp) +# IFGoto result_55 -> label_7 +lw $t0, 224($sp) +lw $a0, 16($t0) +bnez $a0, label_7 +#LoadStr msg_10 +la $t0, msg_10 +sw $t0, 276($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 280($sp) +#CallNode String_init +move $t0, $sp +# Arg l_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 284($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 264($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 260($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_65 +lw $t1, 264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 288($sp) +# IFGoto result_64 -> label_8 +lw $t0, 260($sp) +lw $a0, 16($t0) +bnez $a0, label_8 +#LoadStr msg_11 +la $t0, msg_11 +sw $t0, 312($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 316($sp) +#CallNode String_init +move $t0, $sp +# Arg l_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 320($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 300($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 296($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 324($sp) +# IFGoto result_73 -> label_9 +lw $t0, 296($sp) +lw $a0, 16($t0) +bnez $a0, label_9 +#LoadStr msg_12 +la $t0, msg_12 +sw $t0, 348($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 352($sp) +#CallNode String_init +move $t0, $sp +# Arg l_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 356($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 336($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 360($sp) +# IFGoto result_82 -> label_10 +lw $t0, 332($sp) +lw $a0, 16($t0) +bnez $a0, label_10 +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 500($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 364($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 368($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 372($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 376($sp) +#AssignNode result_81 = instance_91 +lw $t1, 368($sp) +sw $t1, 328($sp) +#Goto label_11 +b label_11 +#LabelNode label_10 +label_10: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 380($sp) +#LoadInt 9 +li $t0, 9 +sw $t0, 384($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_95 +lw $t1, 384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 388($sp) +#AssignNode result_81 = instance_94 +lw $t1, 380($sp) +sw $t1, 328($sp) +#LabelNode label_11 +label_11: +#AssignNode result_72 = result_81 +lw $t1, 328($sp) +sw $t1, 292($sp) +#Goto label_12 +b label_12 +#LabelNode label_9 +label_9: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 392($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 396($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_98 +lw $t1, 396($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 400($sp) +#AssignNode result_72 = instance_97 +lw $t1, 392($sp) +sw $t1, 292($sp) +#LabelNode label_12 +label_12: +#AssignNode result_63 = result_72 +lw $t1, 292($sp) +sw $t1, 256($sp) +#Goto label_13 +b label_13 +#LabelNode label_8 +label_8: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 404($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 408($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 412($sp) +#AssignNode result_63 = instance_100 +lw $t1, 404($sp) +sw $t1, 256($sp) +#LabelNode label_13 +label_13: +#AssignNode result_54 = result_63 +lw $t1, 256($sp) +sw $t1, 220($sp) +#Goto label_14 +b label_14 +#LabelNode label_7 +label_7: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 416($sp) +#LoadInt 6 +li $t0, 6 +sw $t0, 420($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_103 +lw $t1, 416($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 424($sp) +#AssignNode result_54 = instance_103 +lw $t1, 416($sp) +sw $t1, 220($sp) +#LabelNode label_14 +label_14: +#AssignNode result_45 = result_54 +lw $t1, 220($sp) +sw $t1, 184($sp) +#Goto label_15 +b label_15 +#LabelNode label_6 +label_6: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 428($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 432($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_107 +lw $t1, 432($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 436($sp) +#AssignNode result_45 = instance_106 +lw $t1, 428($sp) +sw $t1, 184($sp) +#LabelNode label_15 +label_15: +#AssignNode result_36 = result_45 +lw $t1, 184($sp) +sw $t1, 148($sp) +#Goto label_16 +b label_16 +#LabelNode label_5 +label_5: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 440($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 444($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 448($sp) +#AssignNode result_36 = instance_109 +lw $t1, 440($sp) +sw $t1, 148($sp) +#LabelNode label_16 +label_16: +#AssignNode result_27 = result_36 +lw $t1, 148($sp) +sw $t1, 112($sp) +#Goto label_17 +b label_17 +#LabelNode label_4 +label_4: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 452($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 456($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_112 +lw $t1, 452($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 460($sp) +#AssignNode result_27 = instance_112 +lw $t1, 452($sp) +sw $t1, 112($sp) +#LabelNode label_17 +label_17: +#AssignNode result_18 = result_27 +lw $t1, 112($sp) +sw $t1, 76($sp) +#Goto label_18 +b label_18 +#LabelNode label_3 +label_3: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 464($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 468($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_116 +lw $t1, 468($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_115 +lw $t1, 464($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 472($sp) +#AssignNode result_18 = instance_115 +lw $t1, 464($sp) +sw $t1, 76($sp) +#LabelNode label_18 +label_18: +#AssignNode result_9 = result_18 +lw $t1, 76($sp) +sw $t1, 40($sp) +#Goto label_19 +b label_19 +#LabelNode label_2 +label_2: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 476($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 480($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 484($sp) +#AssignNode result_9 = instance_118 +lw $t1, 476($sp) +sw $t1, 40($sp) +#LabelNode label_19 +label_19: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_20 +b label_20 +#LabelNode label_1 +label_1: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 488($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 492($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 496($sp) +#AssignNode result_0 = instance_121 +lw $t1, 488($sp) +sw $t1, 4($sp) +#LabelNode label_20 +label_20: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 508 +jr $ra +A2I.i2c: +addi $sp, $sp, -496 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_21 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_21 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 64($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 68($sp) +#GetAttr left_12 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 = right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +seq $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_10 -> label_22 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_22 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#GetAttr left_21 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#GetAttr right_22 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#BinaryOperator left_21 = right_22 +lw $a0, 88($sp) +lw $t1, 92($sp) +seq $a0, $a0, $t1 +sw $a0, 84($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_19 -> label_23 +lw $t0, 80($sp) +lw $a0, 16($t0) +bnez $a0, label_23 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 136($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#GetAttr left_30 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 124($sp) +#GetAttr right_31 = Int.value +lw $t0, 132($sp) +lw $t1, 16($t0) +sw $t1, 128($sp) +#BinaryOperator left_30 = right_31 +lw $a0, 124($sp) +lw $t1, 128($sp) +seq $a0, $a0, $t1 +sw $a0, 120($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 144($sp) +# IFGoto result_28 -> label_24 +lw $t0, 116($sp) +lw $a0, 16($t0) +bnez $a0, label_24 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 168($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 172($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 176($sp) +#GetAttr left_39 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 160($sp) +#GetAttr right_40 = Int.value +lw $t0, 168($sp) +lw $t1, 16($t0) +sw $t1, 164($sp) +#BinaryOperator left_39 = right_40 +lw $a0, 160($sp) +lw $t1, 164($sp) +seq $a0, $a0, $t1 +sw $a0, 156($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 180($sp) +# IFGoto result_37 -> label_25 +lw $t0, 152($sp) +lw $a0, 16($t0) +bnez $a0, label_25 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 204($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 208($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 212($sp) +#GetAttr left_48 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 196($sp) +#GetAttr right_49 = Int.value +lw $t0, 204($sp) +lw $t1, 16($t0) +sw $t1, 200($sp) +#BinaryOperator left_48 = right_49 +lw $a0, 196($sp) +lw $t1, 200($sp) +seq $a0, $a0, $t1 +sw $a0, 192($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 216($sp) +# IFGoto result_46 -> label_26 +lw $t0, 188($sp) +lw $a0, 16($t0) +bnez $a0, label_26 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 240($sp) +#LoadInt 6 +li $t0, 6 +sw $t0, 244($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 248($sp) +#GetAttr left_57 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 232($sp) +#GetAttr right_58 = Int.value +lw $t0, 240($sp) +lw $t1, 16($t0) +sw $t1, 236($sp) +#BinaryOperator left_57 = right_58 +lw $a0, 232($sp) +lw $t1, 236($sp) +seq $a0, $a0, $t1 +sw $a0, 228($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 224($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 252($sp) +# IFGoto result_55 -> label_27 +lw $t0, 224($sp) +lw $a0, 16($t0) +bnez $a0, label_27 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 276($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 280($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 284($sp) +#GetAttr left_66 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 268($sp) +#GetAttr right_67 = Int.value +lw $t0, 276($sp) +lw $t1, 16($t0) +sw $t1, 272($sp) +#BinaryOperator left_66 = right_67 +lw $a0, 268($sp) +lw $t1, 272($sp) +seq $a0, $a0, $t1 +sw $a0, 264($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 260($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_65 +lw $t1, 264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 288($sp) +# IFGoto result_64 -> label_28 +lw $t0, 260($sp) +lw $a0, 16($t0) +bnez $a0, label_28 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 312($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 316($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 320($sp) +#GetAttr left_75 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 304($sp) +#GetAttr right_76 = Int.value +lw $t0, 312($sp) +lw $t1, 16($t0) +sw $t1, 308($sp) +#BinaryOperator left_75 = right_76 +lw $a0, 304($sp) +lw $t1, 308($sp) +seq $a0, $a0, $t1 +sw $a0, 300($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 296($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 324($sp) +# IFGoto result_73 -> label_29 +lw $t0, 296($sp) +lw $a0, 16($t0) +bnez $a0, label_29 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 348($sp) +#LoadInt 9 +li $t0, 9 +sw $t0, 352($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 356($sp) +#GetAttr left_84 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 340($sp) +#GetAttr right_85 = Int.value +lw $t0, 348($sp) +lw $t1, 16($t0) +sw $t1, 344($sp) +#BinaryOperator left_84 = right_85 +lw $a0, 340($sp) +lw $t1, 344($sp) +seq $a0, $a0, $t1 +sw $a0, 336($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 360($sp) +# IFGoto result_82 -> label_30 +lw $t0, 332($sp) +lw $a0, 16($t0) +bnez $a0, label_30 +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 500($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 364($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 368($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 372($sp) +#CallNode String_init +move $t0, $sp +# Arg l_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 376($sp) +#AssignNode result_81 = instance_92 +lw $t1, 372($sp) +sw $t1, 328($sp) +#Goto label_31 +b label_31 +#LabelNode label_30 +label_30: +#LoadStr msg_12 +la $t0, msg_12 +sw $t0, 380($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 384($sp) +#CallNode String_init +move $t0, $sp +# Arg l_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_95 +lw $t1, 384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 388($sp) +#AssignNode result_81 = instance_95 +lw $t1, 384($sp) +sw $t1, 328($sp) +#LabelNode label_31 +label_31: +#AssignNode result_72 = result_81 +lw $t1, 328($sp) +sw $t1, 292($sp) +#Goto label_32 +b label_32 +#LabelNode label_29 +label_29: +#LoadStr msg_11 +la $t0, msg_11 +sw $t0, 392($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 396($sp) +#CallNode String_init +move $t0, $sp +# Arg l_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_98 +lw $t1, 396($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 400($sp) +#AssignNode result_72 = instance_98 +lw $t1, 396($sp) +sw $t1, 292($sp) +#LabelNode label_32 +label_32: +#AssignNode result_63 = result_72 +lw $t1, 292($sp) +sw $t1, 256($sp) +#Goto label_33 +b label_33 +#LabelNode label_28 +label_28: +#LoadStr msg_10 +la $t0, msg_10 +sw $t0, 404($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 408($sp) +#CallNode String_init +move $t0, $sp +# Arg l_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 412($sp) +#AssignNode result_63 = instance_101 +lw $t1, 408($sp) +sw $t1, 256($sp) +#LabelNode label_33 +label_33: +#AssignNode result_54 = result_63 +lw $t1, 256($sp) +sw $t1, 220($sp) +#Goto label_34 +b label_34 +#LabelNode label_27 +label_27: +#LoadStr msg_9 +la $t0, msg_9 +sw $t0, 416($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 420($sp) +#CallNode String_init +move $t0, $sp +# Arg l_103 +lw $t1, 416($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 424($sp) +#AssignNode result_54 = instance_104 +lw $t1, 420($sp) +sw $t1, 220($sp) +#LabelNode label_34 +label_34: +#AssignNode result_45 = result_54 +lw $t1, 220($sp) +sw $t1, 184($sp) +#Goto label_35 +b label_35 +#LabelNode label_26 +label_26: +#LoadStr msg_8 +la $t0, msg_8 +sw $t0, 428($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 432($sp) +#CallNode String_init +move $t0, $sp +# Arg l_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_107 +lw $t1, 432($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 436($sp) +#AssignNode result_45 = instance_107 +lw $t1, 432($sp) +sw $t1, 184($sp) +#LabelNode label_35 +label_35: +#AssignNode result_36 = result_45 +lw $t1, 184($sp) +sw $t1, 148($sp) +#Goto label_36 +b label_36 +#LabelNode label_25 +label_25: +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 440($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 444($sp) +#CallNode String_init +move $t0, $sp +# Arg l_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 448($sp) +#AssignNode result_36 = instance_110 +lw $t1, 444($sp) +sw $t1, 148($sp) +#LabelNode label_36 +label_36: +#AssignNode result_27 = result_36 +lw $t1, 148($sp) +sw $t1, 112($sp) +#Goto label_37 +b label_37 +#LabelNode label_24 +label_24: +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 452($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 456($sp) +#CallNode String_init +move $t0, $sp +# Arg l_112 +lw $t1, 452($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 460($sp) +#AssignNode result_27 = instance_113 +lw $t1, 456($sp) +sw $t1, 112($sp) +#LabelNode label_37 +label_37: +#AssignNode result_18 = result_27 +lw $t1, 112($sp) +sw $t1, 76($sp) +#Goto label_38 +b label_38 +#LabelNode label_23 +label_23: +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 464($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 468($sp) +#CallNode String_init +move $t0, $sp +# Arg l_115 +lw $t1, 464($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_116 +lw $t1, 468($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 472($sp) +#AssignNode result_18 = instance_116 +lw $t1, 468($sp) +sw $t1, 76($sp) +#LabelNode label_38 +label_38: +#AssignNode result_9 = result_18 +lw $t1, 76($sp) +sw $t1, 40($sp) +#Goto label_39 +b label_39 +#LabelNode label_22 +label_22: +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 476($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 480($sp) +#CallNode String_init +move $t0, $sp +# Arg l_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 484($sp) +#AssignNode result_9 = instance_119 +lw $t1, 480($sp) +sw $t1, 40($sp) +#LabelNode label_39 +label_39: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_40 +b label_40 +#LabelNode label_21 +label_21: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 488($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 492($sp) +#CallNode String_init +move $t0, $sp +# Arg l_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 496($sp) +#AssignNode result_0 = instance_122 +lw $t1, 492($sp) +sw $t1, 4($sp) +#LabelNode label_40 +label_40: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 508 +jr $ra +A2I.a2i: +addi $sp, $sp, -312 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_1 -> label_41 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_41 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 88($sp) +#VCall substr +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 64($sp) +#LoadStr msg_13 +la $t0, msg_13 +sw $t0, 92($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#CallNode String_init +move $t0, $sp +# Arg l_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 100($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 104($sp) +# IFGoto result_11 -> label_42 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_42 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 136($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 148($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 152($sp) +#VCall substr +move $t0, $sp +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 128($sp) +#LoadStr msg_14 +la $t0, msg_14 +sw $t0, 156($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#CallNode String_init +move $t0, $sp +# Arg l_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 164($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 116($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 168($sp) +# IFGoto result_27 -> label_43 +lw $t0, 112($sp) +lw $a0, 16($t0) +bnez $a0, label_43 +#VCall a2i_aux +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 172($sp) +#AssignNode result_26 = result_42 +lw $t1, 172($sp) +sw $t1, 108($sp) +#Goto label_44 +b label_44 +#LabelNode label_43 +label_43: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 200($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 204($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 208($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 212($sp) +#GetAttr left_47 = Int.value +lw $t0, 200($sp) +lw $t1, 16($t0) +sw $t1, 192($sp) +#GetAttr right_48 = Int.value +lw $t0, 204($sp) +lw $t1, 16($t0) +sw $t1, 196($sp) +#BinaryOperator left_47 - right_48 +lw $a0, 192($sp) +lw $t1, 196($sp) +sub $a0, $a0, $t1 +sw $a0, 188($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 184($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 216($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 220($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 224($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 228($sp) +#VCall substr +move $t0, $sp +# Arg result_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 180($sp) +#VCall a2i_aux +move $t0, $sp +# Arg result_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 176($sp) +#AssignNode result_26 = result_43 +lw $t1, 176($sp) +sw $t1, 108($sp) +#LabelNode label_44 +label_44: +#AssignNode result_10 = result_26 +lw $t1, 108($sp) +sw $t1, 44($sp) +#Goto label_45 +b label_45 +#LabelNode label_42 +label_42: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 268($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 272($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 276($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_67 +lw $t1, 272($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 280($sp) +#GetAttr left_64 = Int.value +lw $t0, 268($sp) +lw $t1, 16($t0) +sw $t1, 260($sp) +#GetAttr right_65 = Int.value +lw $t0, 272($sp) +lw $t1, 16($t0) +sw $t1, 264($sp) +#BinaryOperator left_64 - right_65 +lw $a0, 260($sp) +lw $t1, 264($sp) +sub $a0, $a0, $t1 +sw $a0, 256($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 284($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 288($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 292($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_72 +lw $t1, 292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 296($sp) +#VCall substr +move $t0, $sp +# Arg result_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 248($sp) +#VCall a2i_aux +move $t0, $sp +# Arg result_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 244($sp) +#GetAttr l_59 = Int.value +lw $t0, 244($sp) +lw $t1, 16($t0) +sw $t1, 240($sp) +#UnaryOperator ~ l_59 +lw $t1, 240($sp) +neg $a0, $t1 +sw $a0, 236($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 232($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 300($sp) +#AssignNode result_10 = result_57 +lw $t1, 232($sp) +sw $t1, 44($sp) +#LabelNode label_45 +label_45: +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#Goto label_46 +b label_46 +#LabelNode label_41 +label_41: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 304($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 308($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_76 +lw $t1, 308($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_75 +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 312($sp) +#AssignNode result_0 = instance_75 +lw $t1, 304($sp) +sw $t1, 4($sp) +#LabelNode label_46 +label_46: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 324 +jr $ra +A2I.a2i_aux: +addi $sp, $sp, -188 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode int_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 196($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#AssignNode j_5 = result_4 +lw $t1, 20($sp) +sw $t1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#AssignNode i_9 = instance_6 +lw $t1, 28($sp) +sw $t1, 40($sp) +#LabelNode label_47 +label_47: +#GetAttr left_13 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 < right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +slt $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 64($sp) +# IFGoto result_11 -> label_48 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_48 +#Goto label_49 +b label_49 +#LabelNode label_48 +label_48: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#GetAttr left_22 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 * right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +mul $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 128($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#VCall substr +move $t0, $sp +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 196($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 120($sp) +#VCall c2i +move $t0, $sp +# Arg result_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 192($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 116($sp) +#GetAttr left_18 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 + right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +add $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#AssignNode int_3 = result_16 +lw $t1, 68($sp) +sw $t1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 164($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 168($sp) +#GetAttr left_37 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 152($sp) +#GetAttr right_38 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 156($sp) +#BinaryOperator left_37 + right_38 +lw $a0, 152($sp) +lw $t1, 156($sp) +add $a0, $a0, $t1 +sw $a0, 148($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 172($sp) +#AssignNode i_9 = result_35 +lw $t1, 144($sp) +sw $t1, 40($sp) +#Goto label_47 +b label_47 +#LabelNode label_49 +label_49: +#AssignNode result_44 = result_10 +lw $t1, 44($sp) +sw $t1, 180($sp) +#AssignNode result_45 = result_44 +lw $t1, 180($sp) +sw $t1, 184($sp) +#AssignNode result_46 = int_3 +lw $t1, 16($sp) +sw $t1, 188($sp) +#Return result_46 +lw $a1, 188($sp) +lw $ra, 0($sp) +addi $sp, $sp, 200 +jr $ra +A2I.i2a: +addi $sp, $sp, -156 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_50 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_50 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 64($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 68($sp) +#GetAttr left_12 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 < right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +slt $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_10 -> label_51 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_51 +#LoadStr msg_13 +la $t0, msg_13 +sw $t0, 80($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode String_init +move $t0, $sp +# Arg l_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 128($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#GetAttr l_29 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 120($sp) +#UnaryOperator ~ l_29 +lw $t1, 120($sp) +neg $a0, $t1 +sw $a0, 116($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#GetAttr left_25 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 104($sp) +#GetAttr right_26 = Int.value +lw $t0, 112($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#BinaryOperator left_25 * right_26 +lw $a0, 104($sp) +lw $t1, 108($sp) +mul $a0, $a0, $t1 +sw $a0, 100($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#VCall i2a_aux +move $t0, $sp +# Arg result_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 160($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 92($sp) +#VCall concat +move $t0, $sp +# Arg result_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 84($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 76($sp) +#AssignNode result_9 = result_18 +lw $t1, 76($sp) +sw $t1, 40($sp) +#Goto label_52 +b label_52 +#LabelNode label_51 +label_51: +#VCall i2a_aux +move $t0, $sp +# Arg i +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 160($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 144($sp) +#AssignNode result_9 = result_35 +lw $t1, 144($sp) +sw $t1, 40($sp) +#LabelNode label_52 +label_52: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_53 +b label_53 +#LabelNode label_50 +label_50: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 148($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode String_init +move $t0, $sp +# Arg l_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 156($sp) +#AssignNode result_0 = instance_37 +lw $t1, 152($sp) +sw $t1, 4($sp) +#LabelNode label_53 +label_53: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 168 +jr $ra +A2I.i2a_aux: +addi $sp, $sp, -152 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_54 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_54 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 56($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 60($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 64($sp) +#GetAttr left_11 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#GetAttr right_12 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#BinaryOperator left_11 / right_12 +lw $a0, 48($sp) +lw $t1, 52($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 68($sp) +#AssignNode next_17 = result_9 +lw $t1, 40($sp) +sw $t1, 72($sp) +#VCall i2a_aux +move $t0, $sp +# Arg next_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 156($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 124($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 128($sp) +#GetAttr left_27 = Int.value +lw $t0, 72($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#GetAttr right_28 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#BinaryOperator left_27 * right_28 +lw $a0, 112($sp) +lw $t1, 116($sp) +mul $a0, $a0, $t1 +sw $a0, 108($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#GetAttr left_23 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#GetAttr right_24 = Int.value +lw $t0, 104($sp) +lw $t1, 16($t0) +sw $t1, 100($sp) +#BinaryOperator left_23 - right_24 +lw $a0, 96($sp) +lw $t1, 100($sp) +sub $a0, $a0, $t1 +sw $a0, 92($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#VCall i2c +move $t0, $sp +# Arg result_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 156($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 84($sp) +#VCall concat +move $t0, $sp +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 80($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 76($sp) +#AssignNode result_34 = result_18 +lw $t1, 76($sp) +sw $t1, 140($sp) +#AssignNode result_0 = result_34 +lw $t1, 140($sp) +sw $t1, 4($sp) +#Goto label_55 +b label_55 +#LabelNode label_54 +label_54: +#LoadStr empty_str +la $t0, empty_str +sw $t0, 144($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 148($sp) +#CallNode String_init +move $t0, $sp +# Arg l_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 152($sp) +#AssignNode result_0 = instance_36 +lw $t1, 148($sp) +sw $t1, 4($sp) +#LabelNode label_55 +label_55: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 164 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -100 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag A2I:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A2I_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, A2I_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode A2I_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A2I_init +sw $a1, 12($sp) +#LoadStr msg_15 +la $t0, msg_15 +sw $t0, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg l_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#VCall a2i +move $t0, $sp +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 4($sp) +#AssignNode a_6 = result_0 +lw $t1, 4($sp) +sw $t1, 28($sp) +#Allocate 5:tag A2I:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A2I_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, A2I_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode A2I_init +move $t0, $sp +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A2I_init +sw $a1, 40($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#LoadInt 678987 +li $t0, 678987 +sw $t0, 48($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 52($sp) +#VCall i2a +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 36($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 32($sp) +#AssignNode b_13 = result_7 +lw $t1, 32($sp) +sw $t1, 56($sp) +#VCall out_int +move $t0, $sp +# Arg a_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 60($sp) +#LoadStr msg_16 +la $t0, msg_16 +sw $t0, 68($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#CallNode String_init +move $t0, $sp +# Arg l_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 76($sp) +#VCall out_string +move $t0, $sp +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg b_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 80($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 88($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#CallNode String_init +move $t0, $sp +# Arg l_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 96($sp) +#VCall out_string +move $t0, $sp +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 84($sp) +#AssignNode result_24 = result_20 +lw $t1, 84($sp) +sw $t1, 100($sp) +#Return result_24 +lw $a1, 100($sp) +lw $ra, 0($sp) +addi $sp, $sp, 108 +jr $ra \ No newline at end of file diff --git a/tests/codegen/book_list.mips b/tests/codegen/book_list.mips new file mode 100644 index 000000000..45936031c --- /dev/null +++ b/tests/codegen/book_list.mips @@ -0,0 +1,2310 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Book_name: .asciiz "Book" +Book_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Book.initBook +.word Book.print +Article_name: .asciiz "Article" +Article_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Book.initBook +.word Article.print +.word Article.initArticle +BookList_name: .asciiz "BookList" +BookList_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word BookList.isNil +.word BookList.cons +.word BookList.car +.word BookList.cdr +.word BookList.print_list +Cons_name: .asciiz "Cons" +Cons_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Cons.isNil +.word BookList.cons +.word Cons.car +.word Cons.cdr +.word Cons.print_list +.word Cons.init +Nil_name: .asciiz "Nil" +Nil_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Nil.isNil +.word BookList.cons +.word BookList.car +.word BookList.cdr +.word Nil.print_list +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "title: " +msg_4: .asciiz "author: " +msg_5: .asciiz "periodical: " +msg_6: .asciiz "- dynamic type was Article - +" +msg_7: .asciiz "- dynamic type was Book - +" +msg_8: .asciiz "Aho, Sethi, and Ullman" +msg_9: .asciiz "Compilers, Principles, Techniques, and Tools" +msg_10: .asciiz "PC Magazine" +msg_11: .asciiz "Ulanoff" +msg_12: .asciiz "The Top 100 CD_ROMs" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag Main:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Book_init: +addi $sp, $sp, -28 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#SetAttr Booktitle = instance_1 +lw $t0, 32($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 24($sp) +#CallNode String_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 28($sp) +#SetAttr Bookauthor = instance_4 +lw $t0, 32($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Book.initBook: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Booktitle = title_p +lw $t0, 12($sp) +lw $t1, 16($sp) +sw $t1, 16($t0) +#SetAttr Bookauthor = author_p +lw $t0, 12($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Book.print: +addi $sp, $sp, -80 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg l_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#VCall out_string +move $t0, $sp +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 84($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 12($sp) +#GetAttr Book.title = Book.title +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#VCall out_string +move $t0, $sp +# Arg Book.title +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 8($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 32($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode String_init +move $t0, $sp +# Arg l_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 40($sp) +#VCall out_string +move $t0, $sp +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 84($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#GetAttr Book.author = Book.author +lw $t0, 84($sp) +lw $t1, 20($t0) +sw $t1, 68($sp) +#VCall out_string +move $t0, $sp +# Arg Book.author +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 52($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 48($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 72($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode String_init +move $t0, $sp +# Arg l_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 80($sp) +#VCall out_string +move $t0, $sp +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 44($sp) +#Return self +lw $a1, 84($sp) +lw $ra, 0($sp) +addi $sp, $sp, 88 +jr $ra +Article_init: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Book_init +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Book_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#SetAttr Articleper_title = instance_1 +lw $t0, 20($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Article.initArticle: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall initBook +move $t0, $sp +# Arg author_p +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg title_p +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 4($sp) +#SetAttr Articleper_title = per_title_p +lw $t0, 12($sp) +lw $t1, 24($sp) +sw $t1, 24($t0) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 28 +jr $ra +Article.print: +addi $sp, $sp, -48 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Book:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Book_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Book_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#VCall print +move $t0, $sp +# Arg self +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 4($sp) +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#VCall out_string +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 52($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#GetAttr Article.per_title = Article.per_title +lw $t0, 52($sp) +lw $t1, 24($t0) +sw $t1, 36($sp) +#VCall out_string +move $t0, $sp +# Arg Article.per_title +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 16($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 40($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode String_init +move $t0, $sp +# Arg l_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 48($sp) +#VCall out_string +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 12($sp) +#Return self +lw $a1, 52($sp) +lw $ra, 0($sp) +addi $sp, $sp, 56 +jr $ra +BookList_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +BookList.isNil: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 12($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 16($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +BookList.cons: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 8($sp) +#AssignNode new_cell_2 = result_0 +lw $t1, 4($sp) +sw $t1, 12($sp) +#VCall init +move $t0, $sp +# Arg self +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg hd +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg new_cell_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 16($sp) +#AssignNode result_4 = result_3 +lw $t1, 16($sp) +sw $t1, 20($sp) +#Return result_4 +lw $a1, 20($sp) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +BookList.car: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 2:tag Book:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Book_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Book_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Book_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Book_init +sw $a1, 12($sp) +#Return result_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +BookList.cdr: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 3:tag BookList:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, BookList_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, BookList_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode BookList_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal BookList_init +sw $a1, 12($sp) +#Return result_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +BookList.print_list: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode BookList_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal BookList_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr Consxcar = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 16($t0) +#SetAttr Consxcdr = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Cons.init: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Consxcar = hd +lw $t0, 12($sp) +lw $t1, 16($sp) +sw $t1, 16($t0) +#SetAttr Consxcdr = tl +lw $t0, 12($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Cons.car: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return Cons.xcar +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons.cdr: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 8($sp) +lw $t1, 20($t0) +sw $t1, 4($sp) +#Return Cons.xcdr +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons.print_list: +addi $sp, $sp, -60 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#VCall print +move $t0, $sp +# Arg Cons.xcar +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 8($sp) +#Case result_1 +lw $t0, 8($sp) +lw $t1, 0($t0) +la $a0, void +bne $t1, $a0, label_1 +b case_void_error +#LabelNode label_1 +label_1: +#Action +blt $t1, 3, label_3 +bgt $t1, 3, label_3 +#AssignNode dummy_3 = result_1 +lw $t1, 8($sp) +sw $t1, 16($sp) +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#VCall out_string +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 64($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#AssignNode result_0 = result_4 +lw $t1, 20($sp) +sw $t1, 4($sp) +#Goto label_2 +b label_2 +#LabelNode label_3 +label_3: +#Action +blt $t1, 2, label_4 +bgt $t1, 3, label_4 +#AssignNode dummy_8 = result_1 +lw $t1, 8($sp) +sw $t1, 36($sp) +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 44($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode String_init +move $t0, $sp +# Arg l_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 52($sp) +#VCall out_string +move $t0, $sp +# Arg instance_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 64($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 40($sp) +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_2 +b label_2 +#LabelNode label_4 +label_4: +#Goto case_no_match_error +b case_no_match_error +#LabelNode label_2 +label_2: +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 64($sp) +lw $t1, 20($t0) +sw $t1, 60($sp) +#VCall print_list +move $t0, $sp +# Arg Cons.xcdr +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 56($sp) +#Return result_13 +lw $a1, 56($sp) +lw $ra, 0($sp) +addi $sp, $sp, 68 +jr $ra +Nil_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode BookList_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal BookList_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Nil.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Nil.print_list: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr Mainbooks = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -128 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Book:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Book_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Book_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Book_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Book_init +sw $a1, 12($sp) +#LoadStr msg_8 +la $t0, msg_8 +sw $t0, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg l_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#LoadStr msg_9 +la $t0, msg_9 +sw $t0, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg l_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#VCall initBook +move $t0, $sp +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 4($sp) +#AssignNode a_book_9 = result_0 +lw $t1, 4($sp) +sw $t1, 40($sp) +#Allocate 3:tag Article:Class_name 7:Class_size +li $a0, 28 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Article_name +sw $t1, 4($t0) +li $t1, 7 +sw $t1, 8($t0) +la $t1, Article_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Article_init +move $t0, $sp +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Article_init +sw $a1, 52($sp) +#LoadStr msg_10 +la $t0, msg_10 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#LoadStr msg_11 +la $t0, msg_11 +sw $t0, 68($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#CallNode String_init +move $t0, $sp +# Arg l_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 76($sp) +#LoadStr msg_12 +la $t0, msg_12 +sw $t0, 80($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode String_init +move $t0, $sp +# Arg l_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 88($sp) +#VCall initArticle +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 44($sp) +#AssignNode an_article_22 = result_10 +lw $t1, 44($sp) +sw $t1, 92($sp) +#Allocate 5:tag Nil:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Nil_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Nil_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode Nil_init +move $t0, $sp +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Nil_init +sw $a1, 108($sp) +#VCall cons +move $t0, $sp +# Arg a_book_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 100($sp) +#VCall cons +move $t0, $sp +# Arg an_article_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 96($sp) +#SetAttr Mainbooks = result_23 +lw $t0, 132($sp) +lw $t1, 96($sp) +sw $t1, 16($t0) +#GetAttr Main.books = Main.books +lw $t0, 132($sp) +lw $t1, 16($t0) +sw $t1, 120($sp) +#VCall print_list +move $t0, $sp +# Arg Main.books +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 120($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 116($sp) +#AssignNode result_30 = result_28 +lw $t1, 116($sp) +sw $t1, 124($sp) +#AssignNode result_31 = result_30 +lw $t1, 124($sp) +sw $t1, 128($sp) +#Return result_31 +lw $a1, 128($sp) +lw $ra, 0($sp) +addi $sp, $sp, 136 +jr $ra \ No newline at end of file diff --git a/tests/codegen/cells.mips b/tests/codegen/cells.mips new file mode 100644 index 000000000..baf7da318 --- /dev/null +++ b/tests/codegen/cells.mips @@ -0,0 +1,2827 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +CellularAutomaton_name: .asciiz "CellularAutomaton" +CellularAutomaton_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word CellularAutomaton.init +.word CellularAutomaton.print +.word CellularAutomaton.num_cells +.word CellularAutomaton.cell +.word CellularAutomaton.cell_left_neighbor +.word CellularAutomaton.cell_right_neighbor +.word CellularAutomaton.cell_at_next_evolution +.word CellularAutomaton.evolve +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "X" +msg_4: .asciiz "." +msg_5: .asciiz " X " +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag Main:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +CellularAutomaton_init: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#SetAttr CellularAutomatonpopulation_map = instance_1 +lw $t0, 20($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +CellularAutomaton.init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr CellularAutomatonpopulation_map = map +lw $t0, 8($sp) +lw $t1, 12($sp) +sw $t1, 16($t0) +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +CellularAutomaton.print: +addi $sp, $sp, -24 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.population_map = CellularAutomaton.population_map +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg l_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#VCall concat +move $t0, $sp +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg CellularAutomaton.population_map +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 8($sp) +#VCall out_string +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 28($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return self +lw $a1, 28($sp) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +CellularAutomaton.num_cells: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.population_map = CellularAutomaton.population_map +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#VCall length +move $t0, $sp +# Arg CellularAutomaton.population_map +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +CellularAutomaton.cell: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.population_map = CellularAutomaton.population_map +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 16($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 20($sp) +#VCall substr +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg position +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg CellularAutomaton.population_map +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +CellularAutomaton.cell_left_neighbor: +addi $sp, $sp, -112 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_1 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 64($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 68($sp) +#GetAttr left_12 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 - right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +sub $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 72($sp) +#VCall cell +move $t0, $sp +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 40($sp) +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_2 +b label_2 +#LabelNode label_1 +label_1: +#VCall num_cells +move $t0, $sp +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 96($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#GetAttr left_21 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#GetAttr right_22 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#BinaryOperator left_21 - right_22 +lw $a0, 88($sp) +lw $t1, 92($sp) +sub $a0, $a0, $t1 +sw $a0, 84($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#VCall cell +move $t0, $sp +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 76($sp) +#AssignNode result_0 = result_18 +lw $t1, 76($sp) +sw $t1, 4($sp) +#LabelNode label_2 +label_2: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 124 +jr $ra +CellularAutomaton.cell_right_neighbor: +addi $sp, $sp, -112 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall num_cells +move $t0, $sp +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 40($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 48($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 52($sp) +#GetAttr left_7 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#GetAttr right_8 = Int.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#BinaryOperator left_7 - right_8 +lw $a0, 32($sp) +lw $t1, 36($sp) +sub $a0, $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 56($sp) +#GetAttr left_3 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 60($sp) +# IFGoto result_1 -> label_3 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_3 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 88($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 92($sp) +#GetAttr left_18 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 + right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +add $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 96($sp) +#VCall cell +move $t0, $sp +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 64($sp) +#AssignNode result_0 = result_15 +lw $t1, 64($sp) +sw $t1, 4($sp) +#Goto label_4 +b label_4 +#LabelNode label_3 +label_3: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 108($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#VCall cell +move $t0, $sp +# Arg instance_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 100($sp) +#AssignNode result_0 = result_24 +lw $t1, 100($sp) +sw $t1, 4($sp) +#LabelNode label_4 +label_4: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 124 +jr $ra +CellularAutomaton.cell_at_next_evolution: +addi $sp, $sp, -292 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall cell +move $t0, $sp +# Arg position +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 296($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 76($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 80($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode String_init +move $t0, $sp +# Arg l_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 88($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 64($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 92($sp) +# IFGoto result_14 -> label_5 +lw $t0, 60($sp) +lw $a0, 16($t0) +bnez $a0, label_5 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#AssignNode result_13 = instance_23 +lw $t1, 96($sp) +sw $t1, 56($sp) +#Goto label_6 +b label_6 +#LabelNode label_5 +label_5: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 108($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 112($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 116($sp) +#AssignNode result_13 = instance_26 +lw $t1, 108($sp) +sw $t1, 56($sp) +#LabelNode label_6 +label_6: +#VCall cell_left_neighbor +move $t0, $sp +# Arg position +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 296($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 140($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 144($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 148($sp) +#CallNode String_init +move $t0, $sp +# Arg l_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 152($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 128($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 156($sp) +# IFGoto result_30 -> label_7 +lw $t0, 124($sp) +lw $a0, 16($t0) +bnez $a0, label_7 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 164($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 168($sp) +#AssignNode result_29 = instance_39 +lw $t1, 160($sp) +sw $t1, 120($sp) +#Goto label_8 +b label_8 +#LabelNode label_7 +label_7: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 176($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 180($sp) +#AssignNode result_29 = instance_42 +lw $t1, 172($sp) +sw $t1, 120($sp) +#LabelNode label_8 +label_8: +#GetAttr left_11 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#GetAttr right_12 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#BinaryOperator left_11 + right_12 +lw $a0, 48($sp) +lw $t1, 52($sp) +add $a0, $a0, $t1 +sw $a0, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 184($sp) +#VCall cell_right_neighbor +move $t0, $sp +# Arg position +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 296($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 208($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 212($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 216($sp) +#CallNode String_init +move $t0, $sp +# Arg l_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 220($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 196($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 192($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 224($sp) +# IFGoto result_47 -> label_9 +lw $t0, 192($sp) +lw $a0, 16($t0) +bnez $a0, label_9 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 228($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 232($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 236($sp) +#AssignNode result_46 = instance_56 +lw $t1, 228($sp) +sw $t1, 188($sp) +#Goto label_10 +b label_10 +#LabelNode label_9 +label_9: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 240($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 244($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 248($sp) +#AssignNode result_46 = instance_59 +lw $t1, 240($sp) +sw $t1, 188($sp) +#LabelNode label_10 +label_10: +#GetAttr left_7 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#GetAttr right_8 = Int.value +lw $t0, 188($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#BinaryOperator left_7 + right_8 +lw $a0, 32($sp) +lw $t1, 36($sp) +add $a0, $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 252($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 256($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 260($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 264($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 256($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 268($sp) +# IFGoto result_1 -> label_11 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_11 +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 272($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 276($sp) +#CallNode String_init +move $t0, $sp +# Arg l_67 +lw $t1, 272($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 280($sp) +#AssignNode result_0 = instance_68 +lw $t1, 276($sp) +sw $t1, 4($sp) +#Goto label_12 +b label_12 +#LabelNode label_11 +label_11: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 284($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 288($sp) +#CallNode String_init +move $t0, $sp +# Arg l_70 +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 292($sp) +#AssignNode result_0 = instance_71 +lw $t1, 288($sp) +sw $t1, 4($sp) +#LabelNode label_12 +label_12: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 304 +jr $ra +CellularAutomaton.evolve: +addi $sp, $sp, -128 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode position_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#VCall num_cells +move $t0, $sp +# Arg self +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 20($sp) +#AssignNode num_5 = result_4 +lw $t1, 20($sp) +sw $t1, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#AssignNode temp_9 = instance_6 +lw $t1, 28($sp) +sw $t1, 40($sp) +#LabelNode label_13 +label_13: +#GetAttr left_13 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 < right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +slt $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 64($sp) +# IFGoto result_11 -> label_14 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_14 +#Goto label_15 +b label_15 +#LabelNode label_14 +label_14: +#VCall cell_at_next_evolution +move $t0, $sp +# Arg position_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 72($sp) +#VCall concat +move $t0, $sp +# Arg result_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg temp_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 68($sp) +#AssignNode temp_9 = result_16 +lw $t1, 68($sp) +sw $t1, 40($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#GetAttr left_21 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#GetAttr right_22 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#BinaryOperator left_21 + right_22 +lw $a0, 88($sp) +lw $t1, 92($sp) +add $a0, $a0, $t1 +sw $a0, 84($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#AssignNode position_3 = result_19 +lw $t1, 80($sp) +sw $t1, 16($sp) +#Goto label_13 +b label_13 +#LabelNode label_15 +label_15: +#SetAttr CellularAutomatonpopulation_map = temp_9 +lw $t0, 132($sp) +lw $t1, 40($sp) +sw $t1, 16($t0) +#AssignNode result_29 = self +lw $t1, 132($sp) +sw $t1, 120($sp) +#AssignNode result_30 = result_29 +lw $t1, 120($sp) +sw $t1, 124($sp) +#AssignNode result_31 = result_30 +lw $t1, 124($sp) +sw $t1, 128($sp) +#Return result_31 +lw $a1, 128($sp) +lw $ra, 0($sp) +addi $sp, $sp, 136 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr Maincells = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -144 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag CellularAutomaton:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, CellularAutomaton_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, CellularAutomaton_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode CellularAutomaton_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal CellularAutomaton_init +sw $a1, 12($sp) +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg l_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#VCall init +move $t0, $sp +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 4($sp) +#SetAttr Maincells = result_0 +lw $t0, 148($sp) +lw $t1, 4($sp) +sw $t1, 16($t0) +#GetAttr Main.cells = Main.cells +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 104($sp) +#VCall print +move $t0, $sp +# Arg Main.cells +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 32($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#LoadInt 20 +li $t0, 20 +sw $t0, 44($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 48($sp) +#AssignNode countdown_12 = instance_9 +lw $t1, 40($sp) +sw $t1, 52($sp) +#LabelNode label_16 +label_16: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 80($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 84($sp) +#GetAttr left_16 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#GetAttr right_17 = Int.value +lw $t0, 52($sp) +lw $t1, 16($t0) +sw $t1, 72($sp) +#BinaryOperator left_16 < right_17 +lw $a0, 68($sp) +lw $t1, 72($sp) +slt $a0, $a0, $t1 +sw $a0, 64($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 88($sp) +# IFGoto result_14 -> label_17 +lw $t0, 60($sp) +lw $a0, 16($t0) +bnez $a0, label_17 +#Goto label_18 +b label_18 +#LabelNode label_17 +label_17: +#GetAttr Main.cells = Main.cells +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 104($sp) +#VCall evolve +move $t0, $sp +# Arg Main.cells +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 92($sp) +#GetAttr Main.cells = Main.cells +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 104($sp) +#VCall print +move $t0, $sp +# Arg Main.cells +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 100($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 128($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#GetAttr left_28 = Int.value +lw $t0, 52($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#GetAttr right_29 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 120($sp) +#BinaryOperator left_28 - right_29 +lw $a0, 116($sp) +lw $t1, 120($sp) +sub $a0, $a0, $t1 +sw $a0, 112($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 108($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#AssignNode countdown_12 = result_26 +lw $t1, 108($sp) +sw $t1, 52($sp) +#Goto label_16 +b label_16 +#LabelNode label_18 +label_18: +#AssignNode result_35 = result_13 +lw $t1, 56($sp) +sw $t1, 144($sp) +#Return self +lw $a1, 148($sp) +lw $ra, 0($sp) +addi $sp, $sp, 152 +jr $ra \ No newline at end of file diff --git a/tests/codegen/complex.mips b/tests/codegen/complex.mips new file mode 100644 index 000000000..97f3eaf0d --- /dev/null +++ b/tests/codegen/complex.mips @@ -0,0 +1,1819 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +Complex_name: .asciiz "Complex" +Complex_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Complex.init +.word Complex.print +.word Complex.reflect_0 +.word Complex.reflect_X +.word Complex.reflect_Y +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "=( +" +msg_4: .asciiz "=) +" +msg_5: .asciiz "+" +msg_6: .asciiz "I" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -112 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Complex:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Complex_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Complex_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Complex_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Complex_init +sw $a1, 12($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#VCall init +move $t0, $sp +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 4($sp) +#AssignNode c_9 = result_0 +lw $t1, 4($sp) +sw $t1, 40($sp) +#VCall reflect_X +move $t0, $sp +# Arg c_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 68($sp) +#VCall reflect_Y +move $t0, $sp +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 68($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 64($sp) +#VCall reflect_0 +move $t0, $sp +# Arg c_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 72($sp) +#AssignNode left_13 = result_15 +lw $t1, 64($sp) +sw $t1, 56($sp) +#AssignNode right_14 = result_17 +lw $t1, 72($sp) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 76($sp) +# IFGoto result_11 -> label_1 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 84($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode String_init +move $t0, $sp +# Arg l_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 92($sp) +#VCall out_string +move $t0, $sp +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 80($sp) +#AssignNode result_10 = result_19 +lw $t1, 80($sp) +sw $t1, 44($sp) +#Goto label_2 +b label_2 +#LabelNode label_1 +label_1: +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 100($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode String_init +move $t0, $sp +# Arg l_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 108($sp) +#VCall out_string +move $t0, $sp +# Arg instance_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 96($sp) +#AssignNode result_10 = result_23 +lw $t1, 96($sp) +sw $t1, 44($sp) +#LabelNode label_2 +label_2: +#AssignNode result_27 = result_10 +lw $t1, 44($sp) +sw $t1, 112($sp) +#Return result_27 +lw $a1, 112($sp) +lw $ra, 0($sp) +addi $sp, $sp, 120 +jr $ra +Complex_init: +addi $sp, $sp, -28 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Complexx = instance_1 +lw $t0, 32($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 28($sp) +#SetAttr Complexy = instance_4 +lw $t0, 32($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Complex.init: +addi $sp, $sp, -48 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 52($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr left_2 = Int.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 24($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 52($sp) +lw $t1, 20($t0) +sw $t1, 44($sp) +#GetAttr left_8 = Int.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr right_9 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 40($sp) +#BinaryOperator left_8 = right_9 +lw $a0, 36($sp) +lw $t1, 40($sp) +seq $a0, $a0, $t1 +sw $a0, 32($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 48($sp) +#Return self +lw $a1, 52($sp) +lw $ra, 0($sp) +addi $sp, $sp, 64 +jr $ra +Complex.print: +addi $sp, $sp, -96 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 100($sp) +lw $t1, 20($t0) +sw $t1, 76($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_3 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_1 -> label_3 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_3 +#GetAttr Complex.x = Complex.x +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#VCall out_int +move $t0, $sp +# Arg Complex.x +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 56($sp) +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 64($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode String_init +move $t0, $sp +# Arg l_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 72($sp) +#VCall out_string +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 56($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 100($sp) +lw $t1, 20($t0) +sw $t1, 76($sp) +#VCall out_int +move $t0, $sp +# Arg Complex.y +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 52($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 48($sp) +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 80($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode String_init +move $t0, $sp +# Arg l_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 88($sp) +#VCall out_string +move $t0, $sp +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 44($sp) +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#Goto label_4 +b label_4 +#LabelNode label_3 +label_3: +#GetAttr Complex.x = Complex.x +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#VCall out_int +move $t0, $sp +# Arg Complex.x +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 92($sp) +#AssignNode result_0 = result_22 +lw $t1, 92($sp) +sw $t1, 4($sp) +#LabelNode label_4 +label_4: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 104 +jr $ra +Complex.reflect_0: +addi $sp, $sp, -88 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr l_7 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#UnaryOperator ~ l_7 +lw $t1, 32($sp) +neg $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_2 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 92($sp) +lw $t1, 20($t0) +sw $t1, 80($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 92($sp) +lw $t1, 20($t0) +sw $t1, 80($sp) +#GetAttr l_18 = Int.value +lw $t0, 80($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#UnaryOperator ~ l_18 +lw $t1, 76($sp) +neg $a0, $t1 +sw $a0, 72($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 84($sp) +#GetAttr left_13 = Int.value +lw $t0, 80($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 88($sp) +#Return self +lw $a1, 92($sp) +lw $ra, 0($sp) +addi $sp, $sp, 96 +jr $ra +Complex.reflect_X: +addi $sp, $sp, -44 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 48($sp) +lw $t1, 20($t0) +sw $t1, 36($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 48($sp) +lw $t1, 20($t0) +sw $t1, 36($sp) +#GetAttr l_7 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#UnaryOperator ~ l_7 +lw $t1, 32($sp) +neg $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_2 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +#Return self +lw $a1, 48($sp) +lw $ra, 0($sp) +addi $sp, $sp, 52 +jr $ra +Complex.reflect_Y: +addi $sp, $sp, -44 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr l_7 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#UnaryOperator ~ l_7 +lw $t1, 32($sp) +neg $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_2 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +#Return self +lw $a1, 48($sp) +lw $ra, 0($sp) +addi $sp, $sp, 52 +jr $ra \ No newline at end of file diff --git a/tests/codegen/fib.mips b/tests/codegen/fib.mips new file mode 100644 index 000000000..e00721200 --- /dev/null +++ b/tests/codegen/fib.mips @@ -0,0 +1,1201 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +.word Main.fib +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "Enter n to find nth fibonacci number! +" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -44 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#VCall in_int +move $t0, $sp +# Arg self +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 28($sp) +#VCall fib +move $t0, $sp +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 24($sp) +#VCall out_int +move $t0, $sp +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 20($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 36($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode String_init +move $t0, $sp +# Arg l_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 44($sp) +#VCall out_string +move $t0, $sp +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 32($sp) +#Return result_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 52 +jr $ra +Main.fib: +addi $sp, $sp, -172 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode a_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 28($sp) +#AssignNode b_7 = instance_4 +lw $t1, 20($sp) +sw $t1, 32($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 40($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 44($sp) +#AssignNode c_11 = instance_8 +lw $t1, 36($sp) +sw $t1, 48($sp) +#LabelNode label_1 +label_1: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 88($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 92($sp) +#GetAttr left_18 = Int.value +lw $t0, 180($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 = right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +seq $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 96($sp) +#GetAttr l_15 = Bool.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 64($sp) +#UnaryOperator not l_15 +lw $t1, 64($sp) +xor $a0, $t1, 1 +sw $a0, 60($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 56($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 100($sp) +# IFGoto result_13 -> label_2 +lw $t0, 56($sp) +lw $a0, 16($t0) +bnez $a0, label_2 +#Goto label_3 +b label_3 +#LabelNode label_2 +label_2: +#GetAttr left_27 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#GetAttr right_28 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#BinaryOperator left_27 + right_28 +lw $a0, 112($sp) +lw $t1, 116($sp) +add $a0, $a0, $t1 +sw $a0, 108($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 120($sp) +#AssignNode c_11 = result_25 +lw $t1, 104($sp) +sw $t1, 48($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 148($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 152($sp) +#GetAttr left_33 = Int.value +lw $t0, 180($sp) +lw $t1, 16($t0) +sw $t1, 136($sp) +#GetAttr right_34 = Int.value +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 140($sp) +#BinaryOperator left_33 - right_34 +lw $a0, 136($sp) +lw $t1, 140($sp) +sub $a0, $a0, $t1 +sw $a0, 132($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 128($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 156($sp) +#AssignNode i = result_31 +lw $t1, 128($sp) +sw $t1, 180($sp) +#AssignNode b_7 = a_3 +lw $t1, 16($sp) +sw $t1, 32($sp) +#AssignNode a_3 = c_11 +lw $t1, 48($sp) +sw $t1, 16($sp) +#Goto label_1 +b label_1 +#LabelNode label_3 +label_3: +#AssignNode result_42 = c_11 +lw $t1, 48($sp) +sw $t1, 172($sp) +#Return result_42 +lw $a1, 172($sp) +lw $ra, 0($sp) +addi $sp, $sp, 184 +jr $ra \ No newline at end of file diff --git a/tests/codegen/graph.mips b/tests/codegen/graph.mips new file mode 100644 index 000000000..9ae480ff7 --- /dev/null +++ b/tests/codegen/graph.mips @@ -0,0 +1,6582 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Graph_name: .asciiz "Graph" +Graph_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word Graph.add_vertice +.word Graph.print_E +.word Graph.print_V +Vertice_name: .asciiz "Vertice" +Vertice_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Vertice.outgoing +.word Vertice.number +.word Vertice.init +.word Vertice.add_out +.word Vertice.print +Edge_name: .asciiz "Edge" +Edge_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Edge.init +.word Edge.print +EList_name: .asciiz "EList" +EList_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word EList.isNil +.word EList.head +.word EList.tail +.word EList.cons +.word EList.append +.word EList.print +ECons_name: .asciiz "ECons" +ECons_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word ECons.isNil +.word ECons.head +.word ECons.tail +.word EList.cons +.word EList.append +.word ECons.print +.word ECons.init +VList_name: .asciiz "VList" +VList_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word VList.isNil +.word VList.head +.word VList.tail +.word VList.cons +.word VList.print +VCons_name: .asciiz "VCons" +VCons_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word VCons.isNil +.word VCons.head +.word VCons.tail +.word VList.cons +.word VCons.print +.word VCons.init +Parse_name: .asciiz "Parse" +Parse_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Parse.read_input +.word Parse.parse_line +.word Parse.c2i +.word Parse.a2i +.word Parse.a2i_aux +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Parse.read_input +.word Parse.parse_line +.word Parse.c2i +.word Parse.a2i +.word Parse.a2i_aux +.word Main.main +BoolOp_name: .asciiz "BoolOp" +BoolOp_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word BoolOp.and +.word BoolOp.or +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz " (" +msg_4: .asciiz "," +msg_5: .asciiz ")" +msg_6: .asciiz "0" +msg_7: .asciiz "1" +msg_8: .asciiz "2" +msg_9: .asciiz "3" +msg_10: .asciiz "4" +msg_11: .asciiz "5" +msg_12: .asciiz "6" +msg_13: .asciiz "7" +msg_14: .asciiz "8" +msg_15: .asciiz "9" +msg_16: .asciiz "-" +msg_17: .asciiz " " +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 7:tag Main:Class_name 7:Class_size +li $a0, 28 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 7 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 7 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Graph_init: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 5:tag VList:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, VList_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, VList_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode VList_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal VList_init +sw $a1, 12($sp) +#SetAttr Graphvertices = result_1 +lw $t0, 24($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 4:tag EList:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, EList_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, EList_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode EList_init +move $t0, $sp +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal EList_init +sw $a1, 20($sp) +#SetAttr Graphedges = result_3 +lw $t0, 24($sp) +lw $t1, 16($sp) +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 28 +jr $ra +Graph.add_vertice: +addi $sp, $sp, -28 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall outgoing +move $t0, $sp +# Arg v +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 36($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 8($sp) +#GetAttr Graph.edges = Graph.edges +lw $t0, 32($sp) +lw $t1, 20($t0) +sw $t1, 12($sp) +#VCall append +move $t0, $sp +# Arg Graph.edges +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 4($sp) +#SetAttr Graphedges = result_0 +lw $t0, 32($sp) +lw $t1, 4($sp) +sw $t1, 20($t0) +#GetAttr Graph.vertices = Graph.vertices +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#VCall cons +move $t0, $sp +# Arg v +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Graph.vertices +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 24($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 20($sp) +#SetAttr Graphvertices = result_4 +lw $t0, 32($sp) +lw $t1, 20($sp) +sw $t1, 16($t0) +#Return result_4 +lw $a1, 20($sp) +lw $ra, 0($sp) +addi $sp, $sp, 40 +jr $ra +Graph.print_E: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Graph.edges = Graph.edges +lw $t0, 12($sp) +lw $t1, 20($t0) +sw $t1, 8($sp) +#VCall print +move $t0, $sp +# Arg Graph.edges +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +Graph.print_V: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Graph.vertices = Graph.vertices +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#VCall print +move $t0, $sp +# Arg Graph.vertices +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +Vertice_init: +addi $sp, $sp, -24 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Verticenum = instance_1 +lw $t0, 28($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 4:tag EList:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, EList_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, EList_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode EList_init +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal EList_init +sw $a1, 24($sp) +#SetAttr Verticeout = result_4 +lw $t0, 28($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +Vertice.outgoing: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Vertice.out = Vertice.out +lw $t0, 8($sp) +lw $t1, 20($t0) +sw $t1, 4($sp) +#Return Vertice.out +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Vertice.number: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Vertice.num = Vertice.num +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return Vertice.num +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Vertice.init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Verticenum = n +lw $t0, 8($sp) +lw $t1, 12($sp) +sw $t1, 16($t0) +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +Vertice.add_out: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Vertice.out = Vertice.out +lw $t0, 16($sp) +lw $t1, 20($t0) +sw $t1, 8($sp) +#VCall cons +move $t0, $sp +# Arg s +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Vertice.out +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 4($sp) +#SetAttr Verticeout = result_0 +lw $t0, 16($sp) +lw $t1, 4($sp) +sw $t1, 20($t0) +#Return self +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Vertice.print: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Vertice.num = Vertice.num +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#VCall out_int +move $t0, $sp +# Arg Vertice.num +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr Vertice.out = Vertice.out +lw $t0, 20($sp) +lw $t1, 20($t0) +sw $t1, 16($sp) +#VCall print +move $t0, $sp +# Arg Vertice.out +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Edge_init: +addi $sp, $sp, -40 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Edgefrom = instance_1 +lw $t0, 44($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 28($sp) +#SetAttr Edgeto = instance_4 +lw $t0, 44($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#SetAttr Edgeweight = instance_7 +lw $t0, 44($sp) +lw $t1, 32($sp) +sw $t1, 24($t0) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +Edge.init: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Edgefrom = f +lw $t0, 16($sp) +lw $t1, 20($sp) +sw $t1, 16($t0) +#SetAttr Edgeto = t +lw $t0, 16($sp) +lw $t1, 24($sp) +sw $t1, 20($t0) +#SetAttr Edgeweight = w +lw $t0, 16($sp) +lw $t1, 28($sp) +sw $t1, 24($t0) +#Return self +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +Edge.print: +addi $sp, $sp, -72 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 76($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr Edge.from = Edge.from +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#VCall out_int +move $t0, $sp +# Arg Edge.from +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 76($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 20($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 32($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode String_init +move $t0, $sp +# Arg l_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 40($sp) +#VCall out_string +move $t0, $sp +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 76($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 28($sp) +#GetAttr Edge.to = Edge.to +lw $t0, 76($sp) +lw $t1, 20($t0) +sw $t1, 48($sp) +#VCall out_int +move $t0, $sp +# Arg Edge.to +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 76($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 44($sp) +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 76($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#GetAttr Edge.weight = Edge.weight +lw $t0, 76($sp) +lw $t1, 24($t0) +sw $t1, 72($sp) +#VCall out_int +move $t0, $sp +# Arg Edge.weight +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 76($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 68($sp) +#Return result_16 +lw $a1, 68($sp) +lw $ra, 0($sp) +addi $sp, $sp, 80 +jr $ra +EList_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr EListcar = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +EList.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +EList.head: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr EList.car = EList.car +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Return EList.car +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +EList.tail: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +EList.cons: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag ECons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, ECons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, ECons_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode ECons_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal ECons_init +sw $a1, 12($sp) +#VCall init +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg e +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +EList.append: +addi $sp, $sp, -24 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall isNil +move $t0, $sp +# Arg self +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 28($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 8($sp) +# IFGoto result_1 -> label_1 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#VCall tail +move $t0, $sp +# Arg self +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 28($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 20($sp) +#VCall append +move $t0, $sp +# Arg l +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 16($sp) +#VCall head +move $t0, $sp +# Arg self +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 28($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 24($sp) +#VCall cons +move $t0, $sp +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 12($sp) +#AssignNode result_0 = result_2 +lw $t1, 12($sp) +sw $t1, 4($sp) +#Goto label_2 +b label_2 +#LabelNode label_1 +label_1: +#AssignNode result_0 = l +lw $t1, 32($sp) +sw $t1, 4($sp) +#LabelNode label_2 +label_2: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +EList.print: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +ECons_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode EList_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal EList_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr EConscdr = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +ECons.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +ECons.head: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr ECons.car = ECons.car +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return ECons.car +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +ECons.tail: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr ECons.cdr = ECons.cdr +lw $t0, 8($sp) +lw $t1, 20($t0) +sw $t1, 4($sp) +#Return ECons.cdr +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +ECons.init: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr EConscar = e +lw $t0, 12($sp) +lw $t1, 16($sp) +sw $t1, 16($t0) +#SetAttr EConscdr = rest +lw $t0, 12($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +ECons.print: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr ECons.car = ECons.car +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#VCall print +move $t0, $sp +# Arg ECons.car +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr ECons.cdr = ECons.cdr +lw $t0, 20($sp) +lw $t1, 20($t0) +sw $t1, 16($sp) +#VCall print +move $t0, $sp +# Arg ECons.cdr +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +VList_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr VListcar = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +VList.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +VList.head: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr VList.car = VList.car +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Return VList.car +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +VList.tail: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +VList.cons: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 6:tag VCons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, VCons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, VCons_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode VCons_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal VCons_init +sw $a1, 12($sp) +#VCall init +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg v +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +VList.print: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +VCons_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode VList_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal VList_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr VConscdr = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +VCons.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +VCons.head: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr VCons.car = VCons.car +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return VCons.car +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +VCons.tail: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr VCons.cdr = VCons.cdr +lw $t0, 8($sp) +lw $t1, 20($t0) +sw $t1, 4($sp) +#Return VCons.cdr +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +VCons.init: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr VConscar = v +lw $t0, 12($sp) +lw $t1, 16($sp) +sw $t1, 16($t0) +#SetAttr VConscdr = rest +lw $t0, 12($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +VCons.print: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr VCons.car = VCons.car +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#VCall print +move $t0, $sp +# Arg VCons.car +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr VCons.cdr = VCons.cdr +lw $t0, 20($sp) +lw $t1, 20($t0) +sw $t1, 16($sp) +#VCall print +move $t0, $sp +# Arg VCons.cdr +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Parse_init: +addi $sp, $sp, -24 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 6:tag BoolOp:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, BoolOp_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, BoolOp_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode BoolOp_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal BoolOp_init +sw $a1, 12($sp) +#SetAttr Parseboolop = result_1 +lw $t0, 28($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg value_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#SetAttr Parserest = instance_3 +lw $t0, 28($sp) +lw $t1, 16($sp) +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +Parse.read_input: +addi $sp, $sp, -152 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag Graph:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Graph_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Graph_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Graph_init +move $t0, $sp +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Graph_init +sw $a1, 8($sp) +#AssignNode g_2 = result_0 +lw $t1, 4($sp) +sw $t1, 12($sp) +#VCall in_string +move $t0, $sp +# Arg self +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 156($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 16($sp) +#AssignNode line_4 = result_3 +lw $t1, 16($sp) +sw $t1, 20($sp) +#LabelNode label_3 +label_3: +#GetAttr Parse.boolop = Parse.boolop +lw $t0, 156($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 64($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode String_init +move $t0, $sp +# Arg l_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 72($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg line_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 76($sp) +#GetAttr l_10 = Bool.value +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 44($sp) +#UnaryOperator not l_10 +lw $t1, 44($sp) +xor $a0, $t1, 1 +sw $a0, 40($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 80($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 112($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode String_init +move $t0, $sp +# Arg l_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 120($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg line_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 100($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 124($sp) +#GetAttr l_22 = Bool.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#UnaryOperator not l_22 +lw $t1, 92($sp) +xor $a0, $t1, 1 +sw $a0, 88($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 128($sp) +#VCall and +move $t0, $sp +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Parse.boolop +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 32($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 28($sp) +# IFGoto result_6 -> label_4 +lw $t0, 28($sp) +lw $a0, 16($t0) +bnez $a0, label_4 +#Goto label_5 +b label_5 +#LabelNode label_4 +label_4: +#VCall parse_line +move $t0, $sp +# Arg line_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 156($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 136($sp) +#VCall add_vertice +move $t0, $sp +# Arg result_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg g_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 132($sp) +#VCall in_string +move $t0, $sp +# Arg self +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 156($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 140($sp) +#AssignNode line_4 = result_34 +lw $t1, 140($sp) +sw $t1, 20($sp) +#Goto label_3 +b label_3 +#LabelNode label_5 +label_5: +#AssignNode result_36 = result_5 +lw $t1, 24($sp) +sw $t1, 148($sp) +#AssignNode result_37 = g_2 +lw $t1, 12($sp) +sw $t1, 152($sp) +#Return result_37 +lw $a1, 152($sp) +lw $ra, 0($sp) +addi $sp, $sp, 160 +jr $ra +Parse.parse_line: +addi $sp, $sp, -136 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Vertice:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Vertice_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Vertice_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Vertice_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Vertice_init +sw $a1, 12($sp) +#VCall a2i +move $t0, $sp +# Arg s +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 16($sp) +#VCall init +move $t0, $sp +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 4($sp) +#AssignNode v_4 = result_0 +lw $t1, 4($sp) +sw $t1, 20($sp) +#LabelNode label_6 +label_6: +#GetAttr Parse.rest = Parse.rest +lw $t0, 140($sp) +lw $t1, 20($t0) +sw $t1, 100($sp) +#VCall length +move $t0, $sp +# Arg Parse.rest +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 56($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 64($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 72($sp) +#GetAttr left_11 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#GetAttr right_12 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#BinaryOperator left_11 = right_12 +lw $a0, 48($sp) +lw $t1, 52($sp) +seq $a0, $a0, $t1 +sw $a0, 44($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 76($sp) +#GetAttr l_8 = Bool.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#UnaryOperator not l_8 +lw $t1, 36($sp) +xor $a0, $t1, 1 +sw $a0, 32($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 80($sp) +# IFGoto result_6 -> label_7 +lw $t0, 28($sp) +lw $a0, 16($t0) +bnez $a0, label_7 +#Goto label_8 +b label_8 +#LabelNode label_7 +label_7: +#GetAttr Parse.rest = Parse.rest +lw $t0, 140($sp) +lw $t1, 20($t0) +sw $t1, 100($sp) +#VCall a2i +move $t0, $sp +# Arg Parse.rest +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 84($sp) +#AssignNode succ_22 = result_20 +lw $t1, 84($sp) +sw $t1, 92($sp) +#GetAttr Parse.rest = Parse.rest +lw $t0, 140($sp) +lw $t1, 20($t0) +sw $t1, 100($sp) +#VCall a2i +move $t0, $sp +# Arg Parse.rest +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 96($sp) +#AssignNode weight_25 = result_23 +lw $t1, 96($sp) +sw $t1, 104($sp) +#Allocate 3:tag Edge:Class_name 7:Class_size +li $a0, 28 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Edge_name +sw $t1, 4($t0) +li $t1, 7 +sw $t1, 8($t0) +la $t1, Edge_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Edge_init +move $t0, $sp +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Edge_init +sw $a1, 120($sp) +#VCall number +move $t0, $sp +# Arg v_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 124($sp) +#VCall init +move $t0, $sp +# Arg weight_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg succ_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 112($sp) +#VCall add_out +move $t0, $sp +# Arg result_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg v_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 108($sp) +#AssignNode result_31 = result_26 +lw $t1, 108($sp) +sw $t1, 128($sp) +#AssignNode result_32 = result_31 +lw $t1, 128($sp) +sw $t1, 132($sp) +#Goto label_6 +b label_6 +#LabelNode label_8 +label_8: +#AssignNode result_33 = v_4 +lw $t1, 20($sp) +sw $t1, 136($sp) +#Return result_33 +lw $a1, 136($sp) +lw $ra, 0($sp) +addi $sp, $sp, 148 +jr $ra +Parse.c2i: +addi $sp, $sp, -496 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_9 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_9 +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 60($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 64($sp) +#CallNode String_init +move $t0, $sp +# Arg l_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 68($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_10 -> label_10 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_10 +#LoadStr msg_8 +la $t0, msg_8 +sw $t0, 96($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode String_init +move $t0, $sp +# Arg l_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 104($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 84($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_19 -> label_11 +lw $t0, 80($sp) +lw $a0, 16($t0) +bnez $a0, label_11 +#LoadStr msg_9 +la $t0, msg_9 +sw $t0, 132($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#CallNode String_init +move $t0, $sp +# Arg l_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 140($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 120($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 144($sp) +# IFGoto result_28 -> label_12 +lw $t0, 116($sp) +lw $a0, 16($t0) +bnez $a0, label_12 +#LoadStr msg_10 +la $t0, msg_10 +sw $t0, 168($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#CallNode String_init +move $t0, $sp +# Arg l_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 176($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 156($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 180($sp) +# IFGoto result_37 -> label_13 +lw $t0, 152($sp) +lw $a0, 16($t0) +bnez $a0, label_13 +#LoadStr msg_11 +la $t0, msg_11 +sw $t0, 204($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 208($sp) +#CallNode String_init +move $t0, $sp +# Arg l_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 212($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 192($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 216($sp) +# IFGoto result_46 -> label_14 +lw $t0, 188($sp) +lw $a0, 16($t0) +bnez $a0, label_14 +#LoadStr msg_12 +la $t0, msg_12 +sw $t0, 240($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 244($sp) +#CallNode String_init +move $t0, $sp +# Arg l_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 248($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 228($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 224($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 252($sp) +# IFGoto result_55 -> label_15 +lw $t0, 224($sp) +lw $a0, 16($t0) +bnez $a0, label_15 +#LoadStr msg_13 +la $t0, msg_13 +sw $t0, 276($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 280($sp) +#CallNode String_init +move $t0, $sp +# Arg l_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 284($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 264($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 260($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_65 +lw $t1, 264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 288($sp) +# IFGoto result_64 -> label_16 +lw $t0, 260($sp) +lw $a0, 16($t0) +bnez $a0, label_16 +#LoadStr msg_14 +la $t0, msg_14 +sw $t0, 312($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 316($sp) +#CallNode String_init +move $t0, $sp +# Arg l_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 320($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 300($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 296($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 324($sp) +# IFGoto result_73 -> label_17 +lw $t0, 296($sp) +lw $a0, 16($t0) +bnez $a0, label_17 +#LoadStr msg_15 +la $t0, msg_15 +sw $t0, 348($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 352($sp) +#CallNode String_init +move $t0, $sp +# Arg l_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 356($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg char +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 336($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 360($sp) +# IFGoto result_82 -> label_18 +lw $t0, 332($sp) +lw $a0, 16($t0) +bnez $a0, label_18 +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 500($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 364($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 368($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 372($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 376($sp) +#AssignNode result_81 = instance_91 +lw $t1, 368($sp) +sw $t1, 328($sp) +#Goto label_19 +b label_19 +#LabelNode label_18 +label_18: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 380($sp) +#LoadInt 9 +li $t0, 9 +sw $t0, 384($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_95 +lw $t1, 384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 388($sp) +#AssignNode result_81 = instance_94 +lw $t1, 380($sp) +sw $t1, 328($sp) +#LabelNode label_19 +label_19: +#AssignNode result_72 = result_81 +lw $t1, 328($sp) +sw $t1, 292($sp) +#Goto label_20 +b label_20 +#LabelNode label_17 +label_17: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 392($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 396($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_98 +lw $t1, 396($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 400($sp) +#AssignNode result_72 = instance_97 +lw $t1, 392($sp) +sw $t1, 292($sp) +#LabelNode label_20 +label_20: +#AssignNode result_63 = result_72 +lw $t1, 292($sp) +sw $t1, 256($sp) +#Goto label_21 +b label_21 +#LabelNode label_16 +label_16: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 404($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 408($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 412($sp) +#AssignNode result_63 = instance_100 +lw $t1, 404($sp) +sw $t1, 256($sp) +#LabelNode label_21 +label_21: +#AssignNode result_54 = result_63 +lw $t1, 256($sp) +sw $t1, 220($sp) +#Goto label_22 +b label_22 +#LabelNode label_15 +label_15: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 416($sp) +#LoadInt 6 +li $t0, 6 +sw $t0, 420($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_103 +lw $t1, 416($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 424($sp) +#AssignNode result_54 = instance_103 +lw $t1, 416($sp) +sw $t1, 220($sp) +#LabelNode label_22 +label_22: +#AssignNode result_45 = result_54 +lw $t1, 220($sp) +sw $t1, 184($sp) +#Goto label_23 +b label_23 +#LabelNode label_14 +label_14: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 428($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 432($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_107 +lw $t1, 432($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 436($sp) +#AssignNode result_45 = instance_106 +lw $t1, 428($sp) +sw $t1, 184($sp) +#LabelNode label_23 +label_23: +#AssignNode result_36 = result_45 +lw $t1, 184($sp) +sw $t1, 148($sp) +#Goto label_24 +b label_24 +#LabelNode label_13 +label_13: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 440($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 444($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 448($sp) +#AssignNode result_36 = instance_109 +lw $t1, 440($sp) +sw $t1, 148($sp) +#LabelNode label_24 +label_24: +#AssignNode result_27 = result_36 +lw $t1, 148($sp) +sw $t1, 112($sp) +#Goto label_25 +b label_25 +#LabelNode label_12 +label_12: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 452($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 456($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_112 +lw $t1, 452($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 460($sp) +#AssignNode result_27 = instance_112 +lw $t1, 452($sp) +sw $t1, 112($sp) +#LabelNode label_25 +label_25: +#AssignNode result_18 = result_27 +lw $t1, 112($sp) +sw $t1, 76($sp) +#Goto label_26 +b label_26 +#LabelNode label_11 +label_11: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 464($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 468($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_116 +lw $t1, 468($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_115 +lw $t1, 464($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 472($sp) +#AssignNode result_18 = instance_115 +lw $t1, 464($sp) +sw $t1, 76($sp) +#LabelNode label_26 +label_26: +#AssignNode result_9 = result_18 +lw $t1, 76($sp) +sw $t1, 40($sp) +#Goto label_27 +b label_27 +#LabelNode label_10 +label_10: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 476($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 480($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 484($sp) +#AssignNode result_9 = instance_118 +lw $t1, 476($sp) +sw $t1, 40($sp) +#LabelNode label_27 +label_27: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_28 +b label_28 +#LabelNode label_9 +label_9: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 488($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 492($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 496($sp) +#AssignNode result_0 = instance_121 +lw $t1, 488($sp) +sw $t1, 4($sp) +#LabelNode label_28 +label_28: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 508 +jr $ra +Parse.a2i: +addi $sp, $sp, -312 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_1 -> label_29 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_29 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 88($sp) +#VCall substr +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 64($sp) +#LoadStr msg_16 +la $t0, msg_16 +sw $t0, 92($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#CallNode String_init +move $t0, $sp +# Arg l_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 100($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 104($sp) +# IFGoto result_11 -> label_30 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_30 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 136($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 148($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 152($sp) +#VCall substr +move $t0, $sp +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 128($sp) +#LoadStr msg_17 +la $t0, msg_17 +sw $t0, 156($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#CallNode String_init +move $t0, $sp +# Arg l_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 164($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 116($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 168($sp) +# IFGoto result_27 -> label_31 +lw $t0, 112($sp) +lw $a0, 16($t0) +bnez $a0, label_31 +#VCall a2i_aux +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 172($sp) +#AssignNode result_26 = result_42 +lw $t1, 172($sp) +sw $t1, 108($sp) +#Goto label_32 +b label_32 +#LabelNode label_31 +label_31: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 200($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 204($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 208($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 212($sp) +#GetAttr left_47 = Int.value +lw $t0, 200($sp) +lw $t1, 16($t0) +sw $t1, 192($sp) +#GetAttr right_48 = Int.value +lw $t0, 204($sp) +lw $t1, 16($t0) +sw $t1, 196($sp) +#BinaryOperator left_47 - right_48 +lw $a0, 192($sp) +lw $t1, 196($sp) +sub $a0, $a0, $t1 +sw $a0, 188($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 184($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 216($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 220($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 224($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 228($sp) +#VCall substr +move $t0, $sp +# Arg result_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 180($sp) +#VCall a2i +move $t0, $sp +# Arg result_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 176($sp) +#AssignNode result_26 = result_43 +lw $t1, 176($sp) +sw $t1, 108($sp) +#LabelNode label_32 +label_32: +#AssignNode result_10 = result_26 +lw $t1, 108($sp) +sw $t1, 44($sp) +#Goto label_33 +b label_33 +#LabelNode label_30 +label_30: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 268($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 272($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 276($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_67 +lw $t1, 272($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 280($sp) +#GetAttr left_64 = Int.value +lw $t0, 268($sp) +lw $t1, 16($t0) +sw $t1, 260($sp) +#GetAttr right_65 = Int.value +lw $t0, 272($sp) +lw $t1, 16($t0) +sw $t1, 264($sp) +#BinaryOperator left_64 - right_65 +lw $a0, 260($sp) +lw $t1, 264($sp) +sub $a0, $a0, $t1 +sw $a0, 256($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 284($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 288($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 292($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_72 +lw $t1, 292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 296($sp) +#VCall substr +move $t0, $sp +# Arg result_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 320($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 248($sp) +#VCall a2i_aux +move $t0, $sp +# Arg result_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 316($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 244($sp) +#GetAttr l_59 = Int.value +lw $t0, 244($sp) +lw $t1, 16($t0) +sw $t1, 240($sp) +#UnaryOperator ~ l_59 +lw $t1, 240($sp) +neg $a0, $t1 +sw $a0, 236($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 232($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 300($sp) +#AssignNode result_10 = result_57 +lw $t1, 232($sp) +sw $t1, 44($sp) +#LabelNode label_33 +label_33: +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#Goto label_34 +b label_34 +#LabelNode label_29 +label_29: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 304($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 308($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_76 +lw $t1, 308($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_75 +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 312($sp) +#AssignNode result_0 = instance_75 +lw $t1, 304($sp) +sw $t1, 4($sp) +#LabelNode label_34 +label_34: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 324 +jr $ra +Parse.a2i_aux: +addi $sp, $sp, -536 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode int_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#AssignNode j_5 = result_4 +lw $t1, 20($sp) +sw $t1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#AssignNode i_9 = instance_6 +lw $t1, 28($sp) +sw $t1, 40($sp) +#LabelNode label_35 +label_35: +#GetAttr left_13 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 < right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +slt $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 64($sp) +# IFGoto result_11 -> label_36 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_36 +#Goto label_37 +b label_37 +#LabelNode label_36 +label_36: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 80($sp) +#VCall substr +move $t0, $sp +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 68($sp) +#AssignNode c_20 = result_16 +lw $t1, 68($sp) +sw $t1, 84($sp) +#LoadStr msg_17 +la $t0, msg_17 +sw $t0, 108($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#CallNode String_init +move $t0, $sp +# Arg l_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 116($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg c_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 96($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 120($sp) +# IFGoto result_22 -> label_38 +lw $t0, 92($sp) +lw $a0, 16($t0) +bnez $a0, label_38 +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 144($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 148($sp) +#CallNode String_init +move $t0, $sp +# Arg l_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 152($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg c_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 132($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 128($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 156($sp) +# IFGoto result_31 -> label_39 +lw $t0, 128($sp) +lw $a0, 16($t0) +bnez $a0, label_39 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 192($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 196($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 200($sp) +#GetAttr left_45 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 184($sp) +#GetAttr right_46 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 188($sp) +#BinaryOperator left_45 * right_46 +lw $a0, 184($sp) +lw $t1, 188($sp) +mul $a0, $a0, $t1 +sw $a0, 180($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 176($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 204($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 216($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 220($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 224($sp) +#VCall substr +move $t0, $sp +# Arg instance_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 212($sp) +#VCall c2i +move $t0, $sp +# Arg result_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 540($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 540($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 208($sp) +#GetAttr left_41 = Int.value +lw $t0, 176($sp) +lw $t1, 16($t0) +sw $t1, 168($sp) +#GetAttr right_42 = Int.value +lw $t0, 208($sp) +lw $t1, 16($t0) +sw $t1, 172($sp) +#BinaryOperator left_41 + right_42 +lw $a0, 168($sp) +lw $t1, 172($sp) +add $a0, $a0, $t1 +sw $a0, 164($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 228($sp) +#AssignNode int_3 = result_39 +lw $t1, 160($sp) +sw $t1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 256($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 260($sp) +#GetAttr left_60 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 244($sp) +#GetAttr right_61 = Int.value +lw $t0, 252($sp) +lw $t1, 16($t0) +sw $t1, 248($sp) +#BinaryOperator left_60 + right_61 +lw $a0, 244($sp) +lw $t1, 248($sp) +add $a0, $a0, $t1 +sw $a0, 240($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 236($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 264($sp) +#AssignNode i_9 = result_58 +lw $t1, 236($sp) +sw $t1, 40($sp) +#GetAttr left_70 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 284($sp) +#GetAttr right_71 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 288($sp) +#BinaryOperator left_70 = right_71 +lw $a0, 284($sp) +lw $t1, 288($sp) +seq $a0, $a0, $t1 +sw $a0, 280($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 276($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 292($sp) +# IFGoto result_68 -> label_40 +lw $t0, 276($sp) +lw $a0, 16($t0) +bnez $a0, label_40 +#LoadStr empty_str +la $t0, empty_str +sw $t0, 296($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 300($sp) +#CallNode String_init +move $t0, $sp +# Arg l_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 304($sp) +#AssignNode result_67 = instance_74 +lw $t1, 300($sp) +sw $t1, 272($sp) +#Goto label_41 +b label_41 +#LabelNode label_40 +label_40: +#LoadStr empty_str +la $t0, empty_str +sw $t0, 308($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 312($sp) +#CallNode String_init +move $t0, $sp +# Arg l_76 +lw $t1, 308($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 316($sp) +#SetAttr Parserest = instance_77 +lw $t0, 540($sp) +lw $t1, 312($sp) +sw $t1, 20($t0) +#AssignNode result_67 = instance_77 +lw $t1, 312($sp) +sw $t1, 272($sp) +#LabelNode label_41 +label_41: +#AssignNode result_30 = result_67 +lw $t1, 272($sp) +sw $t1, 124($sp) +#Goto label_42 +b label_42 +#LabelNode label_39 +label_39: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 360($sp) +#GetAttr left_87 = Int.value +lw $t0, 360($sp) +lw $t1, 16($t0) +sw $t1, 352($sp) +#GetAttr right_88 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 356($sp) +#BinaryOperator left_87 - right_88 +lw $a0, 352($sp) +lw $t1, 356($sp) +sub $a0, $a0, $t1 +sw $a0, 348($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 344($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_85 +lw $t1, 344($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 364($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 368($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 372($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 376($sp) +#GetAttr left_83 = Int.value +lw $t0, 344($sp) +lw $t1, 16($t0) +sw $t1, 336($sp) +#GetAttr right_84 = Int.value +lw $t0, 368($sp) +lw $t1, 16($t0) +sw $t1, 340($sp) +#BinaryOperator left_83 - right_84 +lw $a0, 336($sp) +lw $t1, 340($sp) +sub $a0, $a0, $t1 +sw $a0, 332($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 328($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_81 +lw $t1, 328($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 380($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 400($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 404($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_99 +lw $t1, 400($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 408($sp) +#GetAttr left_97 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 392($sp) +#GetAttr right_98 = Int.value +lw $t0, 400($sp) +lw $t1, 16($t0) +sw $t1, 396($sp) +#BinaryOperator left_97 + right_98 +lw $a0, 392($sp) +lw $t1, 396($sp) +add $a0, $a0, $t1 +sw $a0, 388($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 384($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_96 +lw $t1, 388($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_95 +lw $t1, 384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 412($sp) +#VCall substr +move $t0, $sp +# Arg result_81 +lw $t1, 328($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_95 +lw $t1, 384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 324($sp) +#SetAttr Parserest = result_80 +lw $t0, 540($sp) +lw $t1, 324($sp) +sw $t1, 20($t0) +#AssignNode i_9 = j_5 +lw $t1, 24($sp) +sw $t1, 40($sp) +#AssignNode result_30 = j_5 +lw $t1, 24($sp) +sw $t1, 124($sp) +#LabelNode label_42 +label_42: +#AssignNode result_21 = result_30 +lw $t1, 124($sp) +sw $t1, 88($sp) +#Goto label_43 +b label_43 +#LabelNode label_38 +label_38: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 460($sp) +#GetAttr left_112 = Int.value +lw $t0, 460($sp) +lw $t1, 16($t0) +sw $t1, 452($sp) +#GetAttr right_113 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 456($sp) +#BinaryOperator left_112 - right_113 +lw $a0, 452($sp) +lw $t1, 456($sp) +sub $a0, $a0, $t1 +sw $a0, 448($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 444($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_111 +lw $t1, 448($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 464($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 468($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 472($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_117 +lw $t1, 472($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_116 +lw $t1, 468($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 476($sp) +#GetAttr left_108 = Int.value +lw $t0, 444($sp) +lw $t1, 16($t0) +sw $t1, 436($sp) +#GetAttr right_109 = Int.value +lw $t0, 468($sp) +lw $t1, 16($t0) +sw $t1, 440($sp) +#BinaryOperator left_108 - right_109 +lw $a0, 436($sp) +lw $t1, 440($sp) +sub $a0, $a0, $t1 +sw $a0, 432($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 428($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_107 +lw $t1, 432($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 480($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 500($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 504($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_125 +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_124 +lw $t1, 500($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 508($sp) +#GetAttr left_122 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 492($sp) +#GetAttr right_123 = Int.value +lw $t0, 500($sp) +lw $t1, 16($t0) +sw $t1, 496($sp) +#BinaryOperator left_122 + right_123 +lw $a0, 492($sp) +lw $t1, 496($sp) +add $a0, $a0, $t1 +sw $a0, 488($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 484($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_120 +lw $t1, 484($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 512($sp) +#VCall substr +move $t0, $sp +# Arg result_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_120 +lw $t1, 484($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 424($sp) +#SetAttr Parserest = result_105 +lw $t0, 540($sp) +lw $t1, 424($sp) +sw $t1, 20($t0) +#AssignNode i_9 = j_5 +lw $t1, 24($sp) +sw $t1, 40($sp) +#AssignNode result_21 = j_5 +lw $t1, 24($sp) +sw $t1, 88($sp) +#LabelNode label_43 +label_43: +#AssignNode result_130 = result_21 +lw $t1, 88($sp) +sw $t1, 524($sp) +#Goto label_35 +b label_35 +#LabelNode label_37 +label_37: +#AssignNode result_131 = result_10 +lw $t1, 44($sp) +sw $t1, 528($sp) +#AssignNode result_132 = result_131 +lw $t1, 528($sp) +sw $t1, 532($sp) +#AssignNode result_133 = int_3 +lw $t1, 16($sp) +sw $t1, 536($sp) +#Return result_133 +lw $a1, 536($sp) +lw $ra, 0($sp) +addi $sp, $sp, 548 +jr $ra +Main_init: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Parse_init +move $t0, $sp +# Arg self +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Parse_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#VCall read_input +move $t0, $sp +# Arg self +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 8($sp) +#SetAttr Maing = result_1 +lw $t0, 12($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +Main.main: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Main.g = Main.g +lw $t0, 20($sp) +lw $t1, 24($t0) +sw $t1, 16($sp) +#VCall print_V +move $t0, $sp +# Arg Main.g +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 4($sp) +#GetAttr Main.g = Main.g +lw $t0, 20($sp) +lw $t1, 24($t0) +sw $t1, 16($sp) +#VCall print_E +move $t0, $sp +# Arg Main.g +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +BoolOp_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +BoolOp.and: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +# IFGoto b1 -> label_44 +lw $t0, 24($sp) +lw $a0, 16($t0) +bnez $a0, label_44 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 16($sp) +#AssignNode result_0 = instance_1 +lw $t1, 8($sp) +sw $t1, 4($sp) +#Goto label_45 +b label_45 +#LabelNode label_44 +label_44: +#AssignNode result_0 = b2 +lw $t1, 28($sp) +sw $t1, 4($sp) +#LabelNode label_45 +label_45: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +BoolOp.or: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +# IFGoto b1 -> label_46 +lw $t0, 24($sp) +lw $a0, 16($t0) +bnez $a0, label_46 +#AssignNode result_0 = b2 +lw $t1, 28($sp) +sw $t1, 4($sp) +#Goto label_47 +b label_47 +#LabelNode label_46 +label_46: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 12($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 16($sp) +#AssignNode result_0 = instance_1 +lw $t1, 8($sp) +sw $t1, 4($sp) +#LabelNode label_47 +label_47: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra \ No newline at end of file diff --git a/tests/codegen/hairyscary.mips b/tests/codegen/hairyscary.mips new file mode 100644 index 000000000..ce4e92114 --- /dev/null +++ b/tests/codegen/hairyscary.mips @@ -0,0 +1,2042 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Foo_name: .asciiz "Foo" +Foo_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Bazz.printh +.word Foo.doh +Bar_name: .asciiz "Bar" +Bar_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Bazz.printh +.word Foo.doh +Razz_name: .asciiz "Razz" +Razz_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Bazz.printh +.word Foo.doh +Bazz_name: .asciiz "Bazz" +Bazz_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Bazz.printh +.word Bazz.doh +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "do nothing" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag Main:Class_name 8:Class_size +li $a0, 32 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 8 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Foo_init: +addi $sp, $sp, -120 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Bazz_init +move $t0, $sp +# Arg self +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bazz_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Case self +lw $t0, 124($sp) +lw $t1, 0($t0) +la $a0, void +bne $t1, $a0, label_1 +b case_void_error +#LabelNode label_1 +label_1: +#Action +blt $t1, 5, label_3 +bgt $t1, 5, label_3 +#AssignNode n_2 = self +lw $t1, 124($sp) +sw $t1, 12($sp) +#AssignNode result_1 = n_2 +lw $t1, 12($sp) +sw $t1, 8($sp) +#Goto label_2 +b label_2 +#LabelNode label_3 +label_3: +#Action +blt $t1, 4, label_4 +bgt $t1, 5, label_4 +#AssignNode n_3 = self +lw $t1, 124($sp) +sw $t1, 16($sp) +#Allocate 5:tag Bar:Class_name 13:Class_size +li $a0, 52 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Bar_name +sw $t1, 4($t0) +li $t1, 13 +sw $t1, 8($t0) +la $t1, Bar_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Bar_init +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bar_init +sw $a1, 24($sp) +#AssignNode result_1 = result_4 +lw $t1, 20($sp) +sw $t1, 8($sp) +#Goto label_2 +b label_2 +#LabelNode label_4 +label_4: +#Action +blt $t1, 3, label_5 +bgt $t1, 5, label_5 +#AssignNode n_6 = self +lw $t1, 124($sp) +sw $t1, 28($sp) +#Allocate 4:tag Razz:Class_name 11:Class_size +li $a0, 44 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Razz_name +sw $t1, 4($t0) +li $t1, 11 +sw $t1, 8($t0) +la $t1, Razz_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode Razz_init +move $t0, $sp +# Arg result_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Razz_init +sw $a1, 36($sp) +#AssignNode result_1 = result_7 +lw $t1, 32($sp) +sw $t1, 8($sp) +#Goto label_2 +b label_2 +#LabelNode label_5 +label_5: +#Goto case_no_match_error +b case_no_match_error +#LabelNode label_2 +label_2: +#SetAttr Fooa = result_1 +lw $t0, 124($sp) +lw $t1, 8($sp) +sw $t1, 28($t0) +#GetAttr Foo.a = Foo.a +lw $t0, 124($sp) +lw $t1, 28($t0) +sw $t1, 92($sp) +#VCall doh +move $t0, $sp +# Arg Foo.a +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 92($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 88($sp) +#GetAttr Foo.g = Foo.g +lw $t0, 124($sp) +lw $t1, 20($t0) +sw $t1, 100($sp) +#VCall doh +move $t0, $sp +# Arg Foo.g +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 96($sp) +#GetAttr left_19 = Int.value +lw $t0, 88($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#GetAttr right_20 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 84($sp) +#BinaryOperator left_19 + right_20 +lw $a0, 80($sp) +lw $t1, 84($sp) +add $a0, $a0, $t1 +sw $a0, 76($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#VCall doh +move $t0, $sp +# Arg self +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 124($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 108($sp) +#GetAttr left_15 = Int.value +lw $t0, 72($sp) +lw $t1, 16($t0) +sw $t1, 64($sp) +#GetAttr right_16 = Int.value +lw $t0, 108($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#BinaryOperator left_15 + right_16 +lw $a0, 64($sp) +lw $t1, 68($sp) +add $a0, $a0, $t1 +sw $a0, 60($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 56($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#VCall printh +move $t0, $sp +# Arg self +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 124($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 116($sp) +#GetAttr left_11 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#GetAttr right_12 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#BinaryOperator left_11 + right_12 +lw $a0, 48($sp) +lw $t1, 52($sp) +add $a0, $a0, $t1 +sw $a0, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 120($sp) +#SetAttr Foob = result_9 +lw $t0, 124($sp) +lw $t1, 40($sp) +sw $t1, 32($t0) +lw $ra, 0($sp) +addi $sp, $sp, 128 +jr $ra +Foo.doh: +addi $sp, $sp, -56 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Foo.h = Foo.h +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#AssignNode i_1 = Foo.h +lw $t1, 28($sp) +sw $t1, 8($sp) +#GetAttr Foo.h = Foo.h +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr right_5 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#BinaryOperator left_4 + right_5 +lw $a0, 20($sp) +lw $t1, 24($sp) +add $a0, $a0, $t1 +sw $a0, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 44($sp) +#SetAttr Fooh = result_2 +lw $t0, 60($sp) +lw $t1, 12($sp) +sw $t1, 16($t0) +#GetAttr Foo.i = Foo.i +lw $t0, 60($sp) +lw $t1, 24($t0) +sw $t1, 52($sp) +#AssignNode result_13 = Foo.i +lw $t1, 52($sp) +sw $t1, 56($sp) +#Return result_13 +lw $a1, 56($sp) +lw $ra, 0($sp) +addi $sp, $sp, 64 +jr $ra +Bar_init: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Razz_init +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Razz_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#VCall doh +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 8($sp) +#SetAttr Barc = result_1 +lw $t0, 16($sp) +lw $t1, 8($sp) +sw $t1, 44($t0) +#VCall printh +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 12($sp) +#SetAttr Bard = result_2 +lw $t0, 16($sp) +lw $t1, 12($sp) +sw $t1, 48($t0) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Razz_init: +addi $sp, $sp, -140 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Foo_init +move $t0, $sp +# Arg self +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Foo_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Case self +lw $t0, 144($sp) +lw $t1, 0($t0) +la $a0, void +bne $t1, $a0, label_6 +b case_void_error +#LabelNode label_6 +label_6: +#Action +blt $t1, 5, label_8 +bgt $t1, 5, label_8 +#AssignNode n_2 = self +lw $t1, 144($sp) +sw $t1, 12($sp) +#AssignNode result_1 = n_2 +lw $t1, 12($sp) +sw $t1, 8($sp) +#Goto label_7 +b label_7 +#LabelNode label_8 +label_8: +#Action +blt $t1, 4, label_9 +bgt $t1, 5, label_9 +#AssignNode n_3 = self +lw $t1, 144($sp) +sw $t1, 16($sp) +#Allocate 5:tag Bar:Class_name 13:Class_size +li $a0, 52 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Bar_name +sw $t1, 4($t0) +li $t1, 13 +sw $t1, 8($t0) +la $t1, Bar_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Bar_init +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bar_init +sw $a1, 24($sp) +#AssignNode result_1 = result_4 +lw $t1, 20($sp) +sw $t1, 8($sp) +#Goto label_7 +b label_7 +#LabelNode label_9 +label_9: +#Goto case_no_match_error +b case_no_match_error +#LabelNode label_7 +label_7: +#SetAttr Razze = result_1 +lw $t0, 144($sp) +lw $t1, 8($sp) +sw $t1, 36($t0) +#GetAttr Razz.a = Razz.a +lw $t0, 144($sp) +lw $t1, 28($t0) +sw $t1, 96($sp) +#Allocate 2:tag Bazz:Class_name 7:Class_size +li $a0, 28 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Bazz_name +sw $t1, 4($t0) +li $t1, 7 +sw $t1, 8($t0) +la $t1, Bazz_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#VCall doh +move $t0, $sp +# Arg Razz.a +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 92($sp) +#GetAttr Razz.g = Razz.g +lw $t0, 144($sp) +lw $t1, 20($t0) +sw $t1, 108($sp) +#VCall doh +move $t0, $sp +# Arg Razz.g +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 108($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 104($sp) +#GetAttr left_20 = Int.value +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 84($sp) +#GetAttr right_21 = Int.value +lw $t0, 104($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#BinaryOperator left_20 + right_21 +lw $a0, 84($sp) +lw $t1, 88($sp) +add $a0, $a0, $t1 +sw $a0, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#GetAttr Razz.e = Razz.e +lw $t0, 144($sp) +lw $t1, 36($t0) +sw $t1, 120($sp) +#VCall doh +move $t0, $sp +# Arg Razz.e +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 120($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 116($sp) +#GetAttr left_16 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#GetAttr right_17 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 72($sp) +#BinaryOperator left_16 + right_17 +lw $a0, 68($sp) +lw $t1, 72($sp) +add $a0, $a0, $t1 +sw $a0, 64($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 124($sp) +#VCall doh +move $t0, $sp +# Arg self +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 144($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 128($sp) +#GetAttr left_12 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 128($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 + right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +add $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#VCall printh +move $t0, $sp +# Arg self +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 144($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 136($sp) +#GetAttr left_8 = Int.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr right_9 = Int.value +lw $t0, 136($sp) +lw $t1, 16($t0) +sw $t1, 40($sp) +#BinaryOperator left_8 + right_9 +lw $a0, 36($sp) +lw $t1, 40($sp) +add $a0, $a0, $t1 +sw $a0, 32($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#SetAttr Razzf = result_6 +lw $t0, 144($sp) +lw $t1, 28($sp) +sw $t1, 40($t0) +lw $ra, 0($sp) +addi $sp, $sp, 148 +jr $ra +Bazz_init: +addi $sp, $sp, -64 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Bazzh = instance_1 +lw $t0, 68($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Case self +lw $t0, 68($sp) +lw $t1, 0($t0) +la $a0, void +bne $t1, $a0, label_10 +b case_void_error +#LabelNode label_10 +label_10: +#Action +blt $t1, 5, label_12 +bgt $t1, 5, label_12 +#AssignNode n_5 = self +lw $t1, 68($sp) +sw $t1, 24($sp) +#AssignNode result_4 = n_5 +lw $t1, 24($sp) +sw $t1, 20($sp) +#Goto label_11 +b label_11 +#LabelNode label_12 +label_12: +#Action +blt $t1, 4, label_13 +bgt $t1, 5, label_13 +#AssignNode n_6 = self +lw $t1, 68($sp) +sw $t1, 28($sp) +#Allocate 5:tag Bar:Class_name 13:Class_size +li $a0, 52 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Bar_name +sw $t1, 4($t0) +li $t1, 13 +sw $t1, 8($t0) +la $t1, Bar_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode Bar_init +move $t0, $sp +# Arg result_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bar_init +sw $a1, 36($sp) +#AssignNode result_4 = result_7 +lw $t1, 32($sp) +sw $t1, 20($sp) +#Goto label_11 +b label_11 +#LabelNode label_13 +label_13: +#Action +blt $t1, 3, label_14 +bgt $t1, 5, label_14 +#AssignNode n_9 = self +lw $t1, 68($sp) +sw $t1, 40($sp) +#Allocate 4:tag Razz:Class_name 11:Class_size +li $a0, 44 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Razz_name +sw $t1, 4($t0) +li $t1, 11 +sw $t1, 8($t0) +la $t1, Razz_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Razz_init +move $t0, $sp +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Razz_init +sw $a1, 48($sp) +#AssignNode result_4 = result_10 +lw $t1, 44($sp) +sw $t1, 20($sp) +#Goto label_11 +b label_11 +#LabelNode label_14 +label_14: +#Action +blt $t1, 2, label_15 +bgt $t1, 5, label_15 +#AssignNode n_12 = self +lw $t1, 68($sp) +sw $t1, 52($sp) +#Allocate 3:tag Foo:Class_name 9:Class_size +li $a0, 36 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Foo_name +sw $t1, 4($t0) +li $t1, 9 +sw $t1, 8($t0) +la $t1, Foo_methods +sw $t1, 12($t0) +sw $t0, 56($sp) +#CallNode Foo_init +move $t0, $sp +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Foo_init +sw $a1, 60($sp) +#AssignNode result_4 = result_13 +lw $t1, 56($sp) +sw $t1, 20($sp) +#Goto label_11 +b label_11 +#LabelNode label_15 +label_15: +#Goto case_no_match_error +b case_no_match_error +#LabelNode label_11 +label_11: +#SetAttr Bazzg = result_4 +lw $t0, 68($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#VCall printh +move $t0, $sp +# Arg self +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 68($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 64($sp) +#SetAttr Bazzi = result_15 +lw $t0, 68($sp) +lw $t1, 64($sp) +sw $t1, 24($t0) +lw $ra, 0($sp) +addi $sp, $sp, 72 +jr $ra +Bazz.printh: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Bazz.h = Bazz.h +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#VCall out_int +move $t0, $sp +# Arg Bazz.h +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 24($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 16($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 20($sp) +#Return instance_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 28 +jr $ra +Bazz.doh: +addi $sp, $sp, -56 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Bazz.h = Bazz.h +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#AssignNode i_1 = Bazz.h +lw $t1, 28($sp) +sw $t1, 8($sp) +#GetAttr Bazz.h = Bazz.h +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr right_5 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#BinaryOperator left_4 + right_5 +lw $a0, 20($sp) +lw $t1, 24($sp) +add $a0, $a0, $t1 +sw $a0, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 44($sp) +#SetAttr Bazzh = result_2 +lw $t0, 60($sp) +lw $t1, 12($sp) +sw $t1, 16($t0) +#GetAttr Bazz.i = Bazz.i +lw $t0, 60($sp) +lw $t1, 24($t0) +sw $t1, 52($sp) +#AssignNode result_13 = Bazz.i +lw $t1, 52($sp) +sw $t1, 56($sp) +#Return result_13 +lw $a1, 56($sp) +lw $ra, 0($sp) +addi $sp, $sp, 64 +jr $ra +Main_init: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 2:tag Bazz:Class_name 7:Class_size +li $a0, 28 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Bazz_name +sw $t1, 4($t0) +li $t1, 7 +sw $t1, 8($t0) +la $t1, Bazz_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bazz_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bazz_init +sw $a1, 12($sp) +#SetAttr Maina = result_1 +lw $t0, 40($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 3:tag Foo:Class_name 9:Class_size +li $a0, 36 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Foo_name +sw $t1, 4($t0) +li $t1, 9 +sw $t1, 8($t0) +la $t1, Foo_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode Foo_init +move $t0, $sp +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Foo_init +sw $a1, 20($sp) +#SetAttr Mainb = result_3 +lw $t0, 40($sp) +lw $t1, 16($sp) +sw $t1, 20($t0) +#Allocate 4:tag Razz:Class_name 11:Class_size +li $a0, 44 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Razz_name +sw $t1, 4($t0) +li $t1, 11 +sw $t1, 8($t0) +la $t1, Razz_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Razz_init +move $t0, $sp +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Razz_init +sw $a1, 28($sp) +#SetAttr Mainc = result_5 +lw $t0, 40($sp) +lw $t1, 24($sp) +sw $t1, 24($t0) +#Allocate 5:tag Bar:Class_name 13:Class_size +li $a0, 52 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, Bar_name +sw $t1, 4($t0) +li $t1, 13 +sw $t1, 8($t0) +la $t1, Bar_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode Bar_init +move $t0, $sp +# Arg result_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bar_init +sw $a1, 36($sp) +#SetAttr Maind = result_7 +lw $t0, 40($sp) +lw $t1, 32($sp) +sw $t1, 28($t0) +lw $ra, 0($sp) +addi $sp, $sp, 44 +jr $ra +Main.main: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg l_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra \ No newline at end of file diff --git a/tests/codegen/hello_world.mips b/tests/codegen/hello_world.mips new file mode 100644 index 000000000..53b2b8d54 --- /dev/null +++ b/tests/codegen/hello_world.mips @@ -0,0 +1,754 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "Hello, World. +" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra \ No newline at end of file diff --git a/tests/codegen/io.mips b/tests/codegen/io.mips new file mode 100644 index 000000000..fc82c9bf8 --- /dev/null +++ b/tests/codegen/io.mips @@ -0,0 +1,1267 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +A_name: .asciiz "A" +A_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A.out_a +B_name: .asciiz "B" +B_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word A.out_a +.word B.out_b +C_name: .asciiz "C" +C_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word C.out_c +D_name: .asciiz "D" +D_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word C.out_c +.word D.out_d +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "A: Hello world +" +msg_4: .asciiz "B: Hello world +" +msg_5: .asciiz "C: Hello world +" +msg_6: .asciiz "D: Hello world +" +msg_7: .asciiz "Done. +" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Main:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +A_init: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 1:tag IO:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 1 +sw $t1, 0($t0) +la $t1, IO_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, IO_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode IO_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 12($sp) +#SetAttr Aio = result_1 +lw $t0, 16($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +A.out_a: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr A.io = A.io +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg l_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#VCall out_string +move $t0, $sp +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg A.io +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 28 +jr $ra +B_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode A_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +B.out_b: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr B.io = B.io +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg l_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#VCall out_string +move $t0, $sp +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg B.io +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 28 +jr $ra +C_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +C.out_c: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +D_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode C_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal C_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +D.out_d: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -64 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag A:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, A_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, A_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode A_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal A_init +sw $a1, 12($sp) +#VCall out_a +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 6:tag B:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, B_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, B_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode B_init +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal B_init +sw $a1, 24($sp) +#VCall out_b +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 16($sp) +#Allocate 2:tag C:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, C_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, C_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode C_init +move $t0, $sp +# Arg result_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal C_init +sw $a1, 36($sp) +#VCall out_c +move $t0, $sp +# Arg result_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 32($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 28($sp) +#Allocate 3:tag D:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, D_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, D_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode D_init +move $t0, $sp +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal D_init +sw $a1, 48($sp) +#VCall out_d +move $t0, $sp +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 44($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 40($sp) +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 68($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#Return result_12 +lw $a1, 52($sp) +lw $ra, 0($sp) +addi $sp, $sp, 72 +jr $ra \ No newline at end of file diff --git a/tests/codegen/life.mips b/tests/codegen/life.mips new file mode 100644 index 000000000..d5b51b896 --- /dev/null +++ b/tests/codegen/life.mips @@ -0,0 +1,12958 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Board_name: .asciiz "Board" +Board_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Board.size_of_board +.word Board.board_init +CellularAutomaton_name: .asciiz "CellularAutomaton" +CellularAutomaton_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Board.size_of_board +.word Board.board_init +.word CellularAutomaton.init +.word CellularAutomaton.print +.word CellularAutomaton.num_cells +.word CellularAutomaton.cell +.word CellularAutomaton.north +.word CellularAutomaton.south +.word CellularAutomaton.east +.word CellularAutomaton.west +.word CellularAutomaton.northwest +.word CellularAutomaton.northeast +.word CellularAutomaton.southeast +.word CellularAutomaton.southwest +.word CellularAutomaton.neighbors +.word CellularAutomaton.cell_at_next_evolution +.word CellularAutomaton.evolve +.word CellularAutomaton.option +.word CellularAutomaton.prompt +.word CellularAutomaton.prompt2 +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Board.size_of_board +.word Board.board_init +.word CellularAutomaton.init +.word CellularAutomaton.print +.word CellularAutomaton.num_cells +.word CellularAutomaton.cell +.word CellularAutomaton.north +.word CellularAutomaton.south +.word CellularAutomaton.east +.word CellularAutomaton.west +.word CellularAutomaton.northwest +.word CellularAutomaton.northeast +.word CellularAutomaton.southeast +.word CellularAutomaton.southwest +.word CellularAutomaton.neighbors +.word CellularAutomaton.cell_at_next_evolution +.word CellularAutomaton.evolve +.word CellularAutomaton.option +.word CellularAutomaton.prompt +.word CellularAutomaton.prompt2 +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz " " +msg_4: .asciiz "X" +msg_5: .asciiz "-" +msg_6: .asciiz " +Please chose a number: +" +msg_7: .asciiz " 1: A cross +" +msg_8: .asciiz " 2: A slash from the upper left to lower right +" +msg_9: .asciiz " 3: A slash from the upper right to lower left +" +msg_10: .asciiz " 4: An X +" +msg_11: .asciiz " 5: A greater than sign +" +msg_12: .asciiz " 6: A less than sign +" +msg_13: .asciiz " 7: Two greater than signs +" +msg_14: .asciiz " 8: Two less than signs +" +msg_15: .asciiz " 9: A 'V' +" +msg_16: .asciiz " 10: An inverse 'V' +" +msg_17: .asciiz " 11: Numbers 9 and 10 combined +" +msg_18: .asciiz " 12: A full grid +" +msg_19: .asciiz " 13: A 'T' +" +msg_20: .asciiz " 14: A plus '+' +" +msg_21: .asciiz " 15: A 'W' +" +msg_22: .asciiz " 16: An 'M' +" +msg_23: .asciiz " 17: An 'E' +" +msg_24: .asciiz " 18: A '3' +" +msg_25: .asciiz " 19: An 'O' +" +msg_26: .asciiz " 20: An '8' +" +msg_27: .asciiz " 21: An 'S' +" +msg_28: .asciiz "Your choice => " +msg_29: .asciiz " " +msg_30: .asciiz " XXXX X XX X XXXX " +msg_31: .asciiz " XX X XX X XX X XX X XX " +msg_32: .asciiz " XX X XX X XX " +msg_33: .asciiz "XXX X X X X XXXX " +msg_34: .asciiz "XXXXX X XXXXX X XXXX" +msg_35: .asciiz " X X X X X X X" +msg_36: .asciiz "X X X X X X X " +msg_37: .asciiz " X X XXXXX X X " +msg_38: .asciiz "XXXXX X X X X " +msg_39: .asciiz "XXXXXXXXXXXXXXXXXXXXXXXXX" +msg_40: .asciiz "X X X X X X X X" +msg_41: .asciiz " X X X X X" +msg_42: .asciiz "X X X X X " +msg_43: .asciiz " X XX X X X " +msg_44: .asciiz "X X X XX X " +msg_45: .asciiz " X X X X X" +msg_46: .asciiz "X X X X X " +msg_47: .asciiz "X X X X X X X X X" +msg_48: .asciiz "X X X X X" +msg_49: .asciiz " X X X X X " +msg_50: .asciiz " XX XXXX XXXX XX " +msg_51: .asciiz "Would you like to continue with the next generation? +" +msg_52: .asciiz "Please use lowercase y or n for your answer [y]: " +msg_53: .asciiz "n" +msg_54: .asciiz " + +" +msg_55: .asciiz "Would you like to choose a background pattern? +" +msg_56: .asciiz "Please use lowercase y or n for your answer [n]: " +msg_57: .asciiz "y" +msg_58: .asciiz "Welcome to the Game of Life. +" +msg_59: .asciiz "There are many initial states to choose from. +" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Main:Class_name 9:Class_size +li $a0, 36 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 9 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Board_init: +addi $sp, $sp, -40 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Boardrows = instance_1 +lw $t0, 44($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 28($sp) +#SetAttr Boardcolumns = instance_4 +lw $t0, 44($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#SetAttr Boardboard_size = instance_7 +lw $t0, 44($sp) +lw $t1, 32($sp) +sw $t1, 24($t0) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +Board.size_of_board: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall length +move $t0, $sp +# Arg initial +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +Board.board_init: +addi $sp, $sp, -480 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall size_of_board +move $t0, $sp +# Arg start +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 484($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 484($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 4($sp) +#AssignNode size_1 = result_0 +lw $t1, 4($sp) +sw $t1, 8($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#LoadInt 15 +li $t0, 15 +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_5 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#GetAttr right_6 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#BinaryOperator left_5 = right_6 +lw $a0, 24($sp) +lw $t1, 28($sp) +seq $a0, $a0, $t1 +sw $a0, 20($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +# IFGoto result_3 -> label_1 +lw $t0, 16($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 16 +li $t0, 16 +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#GetAttr left_14 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#GetAttr right_15 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 64($sp) +#BinaryOperator left_14 = right_15 +lw $a0, 60($sp) +lw $t1, 64($sp) +seq $a0, $a0, $t1 +sw $a0, 56($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 52($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 80($sp) +# IFGoto result_12 -> label_2 +lw $t0, 52($sp) +lw $a0, 16($t0) +bnez $a0, label_2 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#LoadInt 20 +li $t0, 20 +sw $t0, 108($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#GetAttr left_23 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#GetAttr right_24 = Int.value +lw $t0, 104($sp) +lw $t1, 16($t0) +sw $t1, 100($sp) +#BinaryOperator left_23 = right_24 +lw $a0, 96($sp) +lw $t1, 100($sp) +seq $a0, $a0, $t1 +sw $a0, 92($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 116($sp) +# IFGoto result_21 -> label_3 +lw $t0, 88($sp) +lw $a0, 16($t0) +bnez $a0, label_3 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 140($sp) +#LoadInt 21 +li $t0, 21 +sw $t0, 144($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 148($sp) +#GetAttr left_32 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 132($sp) +#GetAttr right_33 = Int.value +lw $t0, 140($sp) +lw $t1, 16($t0) +sw $t1, 136($sp) +#BinaryOperator left_32 = right_33 +lw $a0, 132($sp) +lw $t1, 136($sp) +seq $a0, $a0, $t1 +sw $a0, 128($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 152($sp) +# IFGoto result_30 -> label_4 +lw $t0, 124($sp) +lw $a0, 16($t0) +bnez $a0, label_4 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 176($sp) +#LoadInt 25 +li $t0, 25 +sw $t0, 180($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 184($sp) +#GetAttr left_41 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 168($sp) +#GetAttr right_42 = Int.value +lw $t0, 176($sp) +lw $t1, 16($t0) +sw $t1, 172($sp) +#BinaryOperator left_41 = right_42 +lw $a0, 168($sp) +lw $t1, 172($sp) +seq $a0, $a0, $t1 +sw $a0, 164($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 188($sp) +# IFGoto result_39 -> label_5 +lw $t0, 160($sp) +lw $a0, 16($t0) +bnez $a0, label_5 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 212($sp) +#LoadInt 28 +li $t0, 28 +sw $t0, 216($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 220($sp) +#GetAttr left_50 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 204($sp) +#GetAttr right_51 = Int.value +lw $t0, 212($sp) +lw $t1, 16($t0) +sw $t1, 208($sp) +#BinaryOperator left_50 = right_51 +lw $a0, 204($sp) +lw $t1, 208($sp) +seq $a0, $a0, $t1 +sw $a0, 200($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 196($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_49 +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 224($sp) +# IFGoto result_48 -> label_6 +lw $t0, 196($sp) +lw $a0, 16($t0) +bnez $a0, label_6 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 228($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 232($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 236($sp) +#SetAttr Boardrows = instance_56 +lw $t0, 484($sp) +lw $t1, 228($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 244($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 248($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 252($sp) +#SetAttr Boardcolumns = instance_60 +lw $t0, 484($sp) +lw $t1, 244($sp) +sw $t1, 20($t0) +#SetAttr Boardboard_size = size_1 +lw $t0, 484($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +#AssignNode result_47 = size_1 +lw $t1, 8($sp) +sw $t1, 192($sp) +#Goto label_7 +b label_7 +#LabelNode label_6 +label_6: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 264($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 268($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_66 +lw $t1, 268($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_65 +lw $t1, 264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 272($sp) +#SetAttr Boardrows = instance_65 +lw $t0, 484($sp) +lw $t1, 264($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 280($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 284($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_70 +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 288($sp) +#SetAttr Boardcolumns = instance_69 +lw $t0, 484($sp) +lw $t1, 280($sp) +sw $t1, 20($t0) +#SetAttr Boardboard_size = size_1 +lw $t0, 484($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +#AssignNode result_47 = size_1 +lw $t1, 8($sp) +sw $t1, 192($sp) +#LabelNode label_7 +label_7: +#AssignNode result_38 = result_47 +lw $t1, 192($sp) +sw $t1, 156($sp) +#Goto label_8 +b label_8 +#LabelNode label_5 +label_5: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 300($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 304($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_75 +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 308($sp) +#SetAttr Boardrows = instance_74 +lw $t0, 484($sp) +lw $t1, 300($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 316($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 320($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_79 +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 324($sp) +#SetAttr Boardcolumns = instance_78 +lw $t0, 484($sp) +lw $t1, 316($sp) +sw $t1, 20($t0) +#SetAttr Boardboard_size = size_1 +lw $t0, 484($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +#AssignNode result_38 = size_1 +lw $t1, 8($sp) +sw $t1, 156($sp) +#LabelNode label_8 +label_8: +#AssignNode result_29 = result_38 +lw $t1, 156($sp) +sw $t1, 120($sp) +#Goto label_9 +b label_9 +#LabelNode label_4 +label_4: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 336($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 340($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_84 +lw $t1, 340($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 344($sp) +#SetAttr Boardrows = instance_83 +lw $t0, 484($sp) +lw $t1, 336($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 352($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 356($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_88 +lw $t1, 356($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_87 +lw $t1, 352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 360($sp) +#SetAttr Boardcolumns = instance_87 +lw $t0, 484($sp) +lw $t1, 352($sp) +sw $t1, 20($t0) +#SetAttr Boardboard_size = size_1 +lw $t0, 484($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +#AssignNode result_29 = size_1 +lw $t1, 8($sp) +sw $t1, 120($sp) +#LabelNode label_9 +label_9: +#AssignNode result_20 = result_29 +lw $t1, 120($sp) +sw $t1, 84($sp) +#Goto label_10 +b label_10 +#LabelNode label_3 +label_3: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 372($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 376($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_93 +lw $t1, 376($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 380($sp) +#SetAttr Boardrows = instance_92 +lw $t0, 484($sp) +lw $t1, 372($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 388($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 392($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_96 +lw $t1, 388($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 396($sp) +#SetAttr Boardcolumns = instance_96 +lw $t0, 484($sp) +lw $t1, 388($sp) +sw $t1, 20($t0) +#SetAttr Boardboard_size = size_1 +lw $t0, 484($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +#AssignNode result_20 = size_1 +lw $t1, 8($sp) +sw $t1, 84($sp) +#LabelNode label_10 +label_10: +#AssignNode result_11 = result_20 +lw $t1, 84($sp) +sw $t1, 48($sp) +#Goto label_11 +b label_11 +#LabelNode label_2 +label_2: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 408($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 412($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_102 +lw $t1, 412($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 416($sp) +#SetAttr Boardrows = instance_101 +lw $t0, 484($sp) +lw $t1, 408($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 424($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 428($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_105 +lw $t1, 424($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 432($sp) +#SetAttr Boardcolumns = instance_105 +lw $t0, 484($sp) +lw $t1, 424($sp) +sw $t1, 20($t0) +#SetAttr Boardboard_size = size_1 +lw $t0, 484($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +#AssignNode result_11 = size_1 +lw $t1, 8($sp) +sw $t1, 48($sp) +#LabelNode label_11 +label_11: +#AssignNode result_2 = result_11 +lw $t1, 48($sp) +sw $t1, 12($sp) +#Goto label_12 +b label_12 +#LabelNode label_1 +label_1: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 444($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 448($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_111 +lw $t1, 448($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 452($sp) +#SetAttr Boardrows = instance_110 +lw $t0, 484($sp) +lw $t1, 444($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 460($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 464($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_115 +lw $t1, 464($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_114 +lw $t1, 460($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 468($sp) +#SetAttr Boardcolumns = instance_114 +lw $t0, 484($sp) +lw $t1, 460($sp) +sw $t1, 20($t0) +#SetAttr Boardboard_size = size_1 +lw $t0, 484($sp) +lw $t1, 8($sp) +sw $t1, 24($t0) +#AssignNode result_2 = size_1 +lw $t1, 8($sp) +sw $t1, 12($sp) +#LabelNode label_12 +label_12: +#AssignNode result_119 = self +lw $t1, 484($sp) +sw $t1, 480($sp) +#Return result_119 +lw $a1, 480($sp) +lw $ra, 0($sp) +addi $sp, $sp, 492 +jr $ra +CellularAutomaton_init: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Board_init +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Board_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#SetAttr CellularAutomatonpopulation_map = instance_1 +lw $t0, 20($sp) +lw $t1, 8($sp) +sw $t1, 28($t0) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +CellularAutomaton.init: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr CellularAutomatonpopulation_map = map +lw $t0, 12($sp) +lw $t1, 16($sp) +sw $t1, 28($t0) +#VCall board_init +move $t0, $sp +# Arg map +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 32($t2) +jal $t3 +sw $a1, 8($sp) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +CellularAutomaton.print: +addi $sp, $sp, -148 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode i_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#GetAttr CellularAutomaton.board_size = CellularAutomaton.board_size +lw $t0, 152($sp) +lw $t1, 24($t0) +sw $t1, 20($sp) +#AssignNode num_5 = CellularAutomaton.board_size +lw $t1, 20($sp) +sw $t1, 24($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 32($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode String_init +move $t0, $sp +# Arg l_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 40($sp) +#VCall out_string +move $t0, $sp +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 152($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 28($sp) +#LabelNode label_13 +label_13: +#GetAttr left_13 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 < right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +slt $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 64($sp) +# IFGoto result_11 -> label_14 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_14 +#Goto label_15 +b label_15 +#LabelNode label_14 +label_14: +#GetAttr CellularAutomaton.population_map = CellularAutomaton.population_map +lw $t0, 152($sp) +lw $t1, 28($t0) +sw $t1, 76($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 152($sp) +lw $t1, 20($t0) +sw $t1, 116($sp) +#VCall substr +move $t0, $sp +# Arg CellularAutomaton.columns +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg CellularAutomaton.population_map +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 76($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 72($sp) +#VCall out_string +move $t0, $sp +# Arg result_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 152($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 68($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 88($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#CallNode String_init +move $t0, $sp +# Arg l_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 96($sp) +#VCall out_string +move $t0, $sp +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 152($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 84($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 152($sp) +lw $t1, 20($t0) +sw $t1, 116($sp) +#GetAttr left_26 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#GetAttr right_27 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#BinaryOperator left_26 + right_27 +lw $a0, 108($sp) +lw $t1, 112($sp) +add $a0, $a0, $t1 +sw $a0, 104($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 120($sp) +#AssignNode i_3 = result_24 +lw $t1, 100($sp) +sw $t1, 16($sp) +#Goto label_13 +b label_13 +#LabelNode label_15 +label_15: +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 132($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#CallNode String_init +move $t0, $sp +# Arg l_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 140($sp) +#VCall out_string +move $t0, $sp +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 152($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 128($sp) +#AssignNode result_35 = self +lw $t1, 152($sp) +sw $t1, 144($sp) +#AssignNode result_36 = result_35 +lw $t1, 144($sp) +sw $t1, 148($sp) +#Return result_36 +lw $a1, 148($sp) +lw $ra, 0($sp) +addi $sp, $sp, 156 +jr $ra +CellularAutomaton.num_cells: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.population_map = CellularAutomaton.population_map +lw $t0, 12($sp) +lw $t1, 28($t0) +sw $t1, 8($sp) +#VCall length +move $t0, $sp +# Arg CellularAutomaton.population_map +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +CellularAutomaton.cell: +addi $sp, $sp, -92 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.board_size = CellularAutomaton.board_size +lw $t0, 96($sp) +lw $t1, 24($t0) +sw $t1, 40($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 48($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 52($sp) +#GetAttr left_7 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#GetAttr right_8 = Int.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#BinaryOperator left_7 - right_8 +lw $a0, 32($sp) +lw $t1, 36($sp) +sub $a0, $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 56($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 60($sp) +# IFGoto result_1 -> label_16 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_16 +#GetAttr CellularAutomaton.population_map = CellularAutomaton.population_map +lw $t0, 96($sp) +lw $t1, 28($t0) +sw $t1, 68($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 80($sp) +#VCall substr +move $t0, $sp +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg position +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg CellularAutomaton.population_map +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 68($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 64($sp) +#AssignNode result_0 = result_15 +lw $t1, 64($sp) +sw $t1, 4($sp) +#Goto label_17 +b label_17 +#LabelNode label_16 +label_16: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 84($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode String_init +move $t0, $sp +# Arg l_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 92($sp) +#AssignNode result_0 = instance_21 +lw $t1, 88($sp) +sw $t1, 4($sp) +#LabelNode label_17 +label_17: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 104 +jr $ra +CellularAutomaton.north: +addi $sp, $sp, -100 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 104($sp) +lw $t1, 20($t0) +sw $t1, 84($sp) +#GetAttr left_7 = Int.value +lw $t0, 108($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#GetAttr right_8 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#BinaryOperator left_7 - right_8 +lw $a0, 32($sp) +lw $t1, 36($sp) +sub $a0, $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 52($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 56($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 60($sp) +# IFGoto result_1 -> label_18 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_18 +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 104($sp) +lw $t1, 20($t0) +sw $t1, 84($sp) +#GetAttr left_18 = Int.value +lw $t0, 108($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 - right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +sub $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 88($sp) +#VCall cell +move $t0, $sp +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 64($sp) +#AssignNode result_0 = result_15 +lw $t1, 64($sp) +sw $t1, 4($sp) +#Goto label_19 +b label_19 +#LabelNode label_18 +label_18: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 92($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#CallNode String_init +move $t0, $sp +# Arg l_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 100($sp) +#AssignNode result_0 = instance_23 +lw $t1, 96($sp) +sw $t1, 4($sp) +#LabelNode label_19 +label_19: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 112 +jr $ra +CellularAutomaton.south: +addi $sp, $sp, -92 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.board_size = CellularAutomaton.board_size +lw $t0, 96($sp) +lw $t1, 24($t0) +sw $t1, 24($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 96($sp) +lw $t1, 20($t0) +sw $t1, 76($sp) +#GetAttr left_8 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr right_9 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 40($sp) +#BinaryOperator left_8 + right_9 +lw $a0, 36($sp) +lw $t1, 40($sp) +add $a0, $a0, $t1 +sw $a0, 32($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 48($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 52($sp) +# IFGoto result_1 -> label_20 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_20 +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 96($sp) +lw $t1, 20($t0) +sw $t1, 76($sp) +#GetAttr left_16 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#GetAttr right_17 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 72($sp) +#BinaryOperator left_16 + right_17 +lw $a0, 68($sp) +lw $t1, 72($sp) +add $a0, $a0, $t1 +sw $a0, 64($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 80($sp) +#VCall cell +move $t0, $sp +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 96($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 56($sp) +#AssignNode result_0 = result_13 +lw $t1, 56($sp) +sw $t1, 4($sp) +#Goto label_21 +b label_21 +#LabelNode label_20 +label_20: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 84($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode String_init +move $t0, $sp +# Arg l_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 92($sp) +#AssignNode result_0 = instance_21 +lw $t1, 88($sp) +sw $t1, 4($sp) +#LabelNode label_21 +label_21: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 104 +jr $ra +CellularAutomaton.east: +addi $sp, $sp, -184 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 80($sp) +#GetAttr left_15 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 64($sp) +#GetAttr right_16 = Int.value +lw $t0, 72($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#BinaryOperator left_15 + right_16 +lw $a0, 64($sp) +lw $t1, 68($sp) +add $a0, $a0, $t1 +sw $a0, 60($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 56($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 84($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 188($sp) +lw $t1, 20($t0) +sw $t1, 96($sp) +#GetAttr left_11 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#GetAttr right_12 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#BinaryOperator left_11 / right_12 +lw $a0, 48($sp) +lw $t1, 52($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 92($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 188($sp) +lw $t1, 20($t0) +sw $t1, 96($sp) +#GetAttr left_7 = Int.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#GetAttr right_8 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#BinaryOperator left_7 * right_8 +lw $a0, 32($sp) +lw $t1, 36($sp) +mul $a0, $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 100($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 124($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 128($sp) +#GetAttr left_27 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#GetAttr right_28 = Int.value +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#BinaryOperator left_27 + right_28 +lw $a0, 112($sp) +lw $t1, 116($sp) +add $a0, $a0, $t1 +sw $a0, 108($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 104($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 136($sp) +# IFGoto result_1 -> label_22 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_22 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 160($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 164($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 168($sp) +#GetAttr left_37 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 152($sp) +#GetAttr right_38 = Int.value +lw $t0, 160($sp) +lw $t1, 16($t0) +sw $t1, 156($sp) +#BinaryOperator left_37 + right_38 +lw $a0, 152($sp) +lw $t1, 156($sp) +add $a0, $a0, $t1 +sw $a0, 148($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 172($sp) +#VCall cell +move $t0, $sp +# Arg result_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 188($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 140($sp) +#AssignNode result_0 = result_34 +lw $t1, 140($sp) +sw $t1, 4($sp) +#Goto label_23 +b label_23 +#LabelNode label_22 +label_22: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 176($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 180($sp) +#CallNode String_init +move $t0, $sp +# Arg l_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 184($sp) +#AssignNode result_0 = instance_44 +lw $t1, 180($sp) +sw $t1, 4($sp) +#LabelNode label_23 +label_23: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 196 +jr $ra +CellularAutomaton.west: +addi $sp, $sp, -168 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#GetAttr left_3 = Int.value +lw $t0, 176($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 36($sp) +# IFGoto result_1 -> label_24 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_24 +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 172($sp) +lw $t1, 20($t0) +sw $t1, 100($sp) +#GetAttr left_20 = Int.value +lw $t0, 176($sp) +lw $t1, 16($t0) +sw $t1, 84($sp) +#GetAttr right_21 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#BinaryOperator left_20 / right_21 +lw $a0, 84($sp) +lw $t1, 88($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 96($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 172($sp) +lw $t1, 20($t0) +sw $t1, 100($sp) +#GetAttr left_16 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#GetAttr right_17 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 72($sp) +#BinaryOperator left_16 * right_17 +lw $a0, 68($sp) +lw $t1, 72($sp) +mul $a0, $a0, $t1 +sw $a0, 64($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#GetAttr left_12 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr right_13 = Int.value +lw $t0, 176($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#BinaryOperator left_12 = right_13 +lw $a0, 52($sp) +lw $t1, 56($sp) +seq $a0, $a0, $t1 +sw $a0, 48($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_10 -> label_25 +lw $t0, 44($sp) +lw $a0, 16($t0) +bnez $a0, label_25 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 136($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#GetAttr left_30 = Int.value +lw $t0, 176($sp) +lw $t1, 16($t0) +sw $t1, 124($sp) +#GetAttr right_31 = Int.value +lw $t0, 132($sp) +lw $t1, 16($t0) +sw $t1, 128($sp) +#BinaryOperator left_30 - right_31 +lw $a0, 124($sp) +lw $t1, 128($sp) +sub $a0, $a0, $t1 +sw $a0, 120($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 144($sp) +#VCall cell +move $t0, $sp +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 172($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 112($sp) +#AssignNode result_9 = result_27 +lw $t1, 112($sp) +sw $t1, 40($sp) +#Goto label_26 +b label_26 +#LabelNode label_25 +label_25: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 148($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode String_init +move $t0, $sp +# Arg l_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 156($sp) +#AssignNode result_9 = instance_37 +lw $t1, 152($sp) +sw $t1, 40($sp) +#LabelNode label_26 +label_26: +#AssignNode result_0 = result_9 +lw $t1, 40($sp) +sw $t1, 4($sp) +#Goto label_27 +b label_27 +#LabelNode label_24 +label_24: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 160($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 164($sp) +#CallNode String_init +move $t0, $sp +# Arg l_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 168($sp) +#AssignNode result_0 = instance_40 +lw $t1, 164($sp) +sw $t1, 4($sp) +#LabelNode label_27 +label_27: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 180 +jr $ra +CellularAutomaton.northwest: +addi $sp, $sp, -192 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 196($sp) +lw $t1, 20($t0) +sw $t1, 124($sp) +#GetAttr left_7 = Int.value +lw $t0, 200($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#GetAttr right_8 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#BinaryOperator left_7 - right_8 +lw $a0, 32($sp) +lw $t1, 36($sp) +sub $a0, $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 52($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 56($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 60($sp) +# IFGoto result_1 -> label_28 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_28 +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 196($sp) +lw $t1, 20($t0) +sw $t1, 124($sp) +#GetAttr left_26 = Int.value +lw $t0, 200($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#GetAttr right_27 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#BinaryOperator left_26 / right_27 +lw $a0, 108($sp) +lw $t1, 112($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 104($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 120($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 196($sp) +lw $t1, 20($t0) +sw $t1, 124($sp) +#GetAttr left_22 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 * right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +mul $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 128($sp) +#GetAttr left_18 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 200($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 = right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +seq $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 132($sp) +# IFGoto result_16 -> label_29 +lw $t0, 68($sp) +lw $a0, 16($t0) +bnez $a0, label_29 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 156($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 160($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 164($sp) +#GetAttr left_36 = Int.value +lw $t0, 200($sp) +lw $t1, 16($t0) +sw $t1, 148($sp) +#GetAttr right_37 = Int.value +lw $t0, 156($sp) +lw $t1, 16($t0) +sw $t1, 152($sp) +#BinaryOperator left_36 - right_37 +lw $a0, 148($sp) +lw $t1, 152($sp) +sub $a0, $a0, $t1 +sw $a0, 144($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 140($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 168($sp) +#VCall north +move $t0, $sp +# Arg result_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 196($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 136($sp) +#AssignNode result_15 = result_33 +lw $t1, 136($sp) +sw $t1, 64($sp) +#Goto label_30 +b label_30 +#LabelNode label_29 +label_29: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 172($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 176($sp) +#CallNode String_init +move $t0, $sp +# Arg l_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 180($sp) +#AssignNode result_15 = instance_43 +lw $t1, 176($sp) +sw $t1, 64($sp) +#LabelNode label_30 +label_30: +#AssignNode result_0 = result_15 +lw $t1, 64($sp) +sw $t1, 4($sp) +#Goto label_31 +b label_31 +#LabelNode label_28 +label_28: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 184($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#CallNode String_init +move $t0, $sp +# Arg l_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 192($sp) +#AssignNode result_0 = instance_46 +lw $t1, 188($sp) +sw $t1, 4($sp) +#LabelNode label_31 +label_31: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 204 +jr $ra +CellularAutomaton.northeast: +addi $sp, $sp, -256 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 260($sp) +lw $t1, 20($t0) +sw $t1, 156($sp) +#GetAttr left_7 = Int.value +lw $t0, 264($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#GetAttr right_8 = Int.value +lw $t0, 156($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#BinaryOperator left_7 - right_8 +lw $a0, 32($sp) +lw $t1, 36($sp) +sub $a0, $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 44($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 52($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 56($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 60($sp) +# IFGoto result_1 -> label_32 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_32 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 136($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 140($sp) +#GetAttr left_30 = Int.value +lw $t0, 264($sp) +lw $t1, 16($t0) +sw $t1, 124($sp) +#GetAttr right_31 = Int.value +lw $t0, 132($sp) +lw $t1, 16($t0) +sw $t1, 128($sp) +#BinaryOperator left_30 + right_31 +lw $a0, 124($sp) +lw $t1, 128($sp) +add $a0, $a0, $t1 +sw $a0, 120($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 116($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 144($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 260($sp) +lw $t1, 20($t0) +sw $t1, 156($sp) +#GetAttr left_26 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#GetAttr right_27 = Int.value +lw $t0, 156($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#BinaryOperator left_26 / right_27 +lw $a0, 108($sp) +lw $t1, 112($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 104($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 152($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 260($sp) +lw $t1, 20($t0) +sw $t1, 156($sp) +#GetAttr left_22 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 156($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 * right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +mul $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 160($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 180($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 184($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 188($sp) +#GetAttr left_42 = Int.value +lw $t0, 264($sp) +lw $t1, 16($t0) +sw $t1, 172($sp) +#GetAttr right_43 = Int.value +lw $t0, 180($sp) +lw $t1, 16($t0) +sw $t1, 176($sp) +#BinaryOperator left_42 + right_43 +lw $a0, 172($sp) +lw $t1, 176($sp) +add $a0, $a0, $t1 +sw $a0, 168($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 164($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 192($sp) +#GetAttr left_18 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 = right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +seq $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 196($sp) +# IFGoto result_16 -> label_33 +lw $t0, 68($sp) +lw $a0, 16($t0) +bnez $a0, label_33 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 220($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 224($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 228($sp) +#GetAttr left_52 = Int.value +lw $t0, 264($sp) +lw $t1, 16($t0) +sw $t1, 212($sp) +#GetAttr right_53 = Int.value +lw $t0, 220($sp) +lw $t1, 16($t0) +sw $t1, 216($sp) +#BinaryOperator left_52 + right_53 +lw $a0, 212($sp) +lw $t1, 216($sp) +add $a0, $a0, $t1 +sw $a0, 208($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 204($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 232($sp) +#VCall north +move $t0, $sp +# Arg result_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 260($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 200($sp) +#AssignNode result_15 = result_49 +lw $t1, 200($sp) +sw $t1, 64($sp) +#Goto label_34 +b label_34 +#LabelNode label_33 +label_33: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 236($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 240($sp) +#CallNode String_init +move $t0, $sp +# Arg l_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 244($sp) +#AssignNode result_15 = instance_59 +lw $t1, 240($sp) +sw $t1, 64($sp) +#LabelNode label_34 +label_34: +#AssignNode result_0 = result_15 +lw $t1, 64($sp) +sw $t1, 4($sp) +#Goto label_35 +b label_35 +#LabelNode label_32 +label_32: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 248($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#CallNode String_init +move $t0, $sp +# Arg l_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 256($sp) +#AssignNode result_0 = instance_62 +lw $t1, 252($sp) +sw $t1, 4($sp) +#LabelNode label_35 +label_35: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 268 +jr $ra +CellularAutomaton.southeast: +addi $sp, $sp, -248 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.board_size = CellularAutomaton.board_size +lw $t0, 252($sp) +lw $t1, 24($t0) +sw $t1, 24($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 252($sp) +lw $t1, 20($t0) +sw $t1, 148($sp) +#GetAttr left_8 = Int.value +lw $t0, 256($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr right_9 = Int.value +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 40($sp) +#BinaryOperator left_8 + right_9 +lw $a0, 36($sp) +lw $t1, 40($sp) +add $a0, $a0, $t1 +sw $a0, 32($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 48($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 52($sp) +# IFGoto result_1 -> label_36 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_36 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 128($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 132($sp) +#GetAttr left_28 = Int.value +lw $t0, 256($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#GetAttr right_29 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 120($sp) +#BinaryOperator left_28 + right_29 +lw $a0, 116($sp) +lw $t1, 120($sp) +add $a0, $a0, $t1 +sw $a0, 112($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 108($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 136($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 252($sp) +lw $t1, 20($t0) +sw $t1, 148($sp) +#GetAttr left_24 = Int.value +lw $t0, 108($sp) +lw $t1, 16($t0) +sw $t1, 100($sp) +#GetAttr right_25 = Int.value +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 104($sp) +#BinaryOperator left_24 / right_25 +lw $a0, 100($sp) +lw $t1, 104($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 96($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 144($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 252($sp) +lw $t1, 20($t0) +sw $t1, 148($sp) +#GetAttr left_20 = Int.value +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 84($sp) +#GetAttr right_21 = Int.value +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#BinaryOperator left_20 * right_21 +lw $a0, 84($sp) +lw $t1, 88($sp) +mul $a0, $a0, $t1 +sw $a0, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 152($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 176($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 180($sp) +#GetAttr left_40 = Int.value +lw $t0, 256($sp) +lw $t1, 16($t0) +sw $t1, 164($sp) +#GetAttr right_41 = Int.value +lw $t0, 172($sp) +lw $t1, 16($t0) +sw $t1, 168($sp) +#BinaryOperator left_40 + right_41 +lw $a0, 164($sp) +lw $t1, 168($sp) +add $a0, $a0, $t1 +sw $a0, 160($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 156($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 184($sp) +#GetAttr left_16 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#GetAttr right_17 = Int.value +lw $t0, 156($sp) +lw $t1, 16($t0) +sw $t1, 72($sp) +#BinaryOperator left_16 = right_17 +lw $a0, 68($sp) +lw $t1, 72($sp) +seq $a0, $a0, $t1 +sw $a0, 64($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 188($sp) +# IFGoto result_14 -> label_37 +lw $t0, 60($sp) +lw $a0, 16($t0) +bnez $a0, label_37 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 212($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 216($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 220($sp) +#GetAttr left_50 = Int.value +lw $t0, 256($sp) +lw $t1, 16($t0) +sw $t1, 204($sp) +#GetAttr right_51 = Int.value +lw $t0, 212($sp) +lw $t1, 16($t0) +sw $t1, 208($sp) +#BinaryOperator left_50 + right_51 +lw $a0, 204($sp) +lw $t1, 208($sp) +add $a0, $a0, $t1 +sw $a0, 200($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 196($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_49 +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 224($sp) +#VCall south +move $t0, $sp +# Arg result_48 +lw $t1, 196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 252($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 192($sp) +#AssignNode result_13 = result_47 +lw $t1, 192($sp) +sw $t1, 56($sp) +#Goto label_38 +b label_38 +#LabelNode label_37 +label_37: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 228($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 232($sp) +#CallNode String_init +move $t0, $sp +# Arg l_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 236($sp) +#AssignNode result_13 = instance_57 +lw $t1, 232($sp) +sw $t1, 56($sp) +#LabelNode label_38 +label_38: +#AssignNode result_0 = result_13 +lw $t1, 56($sp) +sw $t1, 4($sp) +#Goto label_39 +b label_39 +#LabelNode label_36 +label_36: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 240($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 244($sp) +#CallNode String_init +move $t0, $sp +# Arg l_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 248($sp) +#AssignNode result_0 = instance_60 +lw $t1, 244($sp) +sw $t1, 4($sp) +#LabelNode label_39 +label_39: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 260 +jr $ra +CellularAutomaton.southwest: +addi $sp, $sp, -184 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr CellularAutomaton.board_size = CellularAutomaton.board_size +lw $t0, 188($sp) +lw $t1, 24($t0) +sw $t1, 24($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 188($sp) +lw $t1, 20($t0) +sw $t1, 116($sp) +#GetAttr left_8 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr right_9 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 40($sp) +#BinaryOperator left_8 + right_9 +lw $a0, 36($sp) +lw $t1, 40($sp) +add $a0, $a0, $t1 +sw $a0, 32($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 48($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 52($sp) +# IFGoto result_1 -> label_40 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_40 +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 188($sp) +lw $t1, 20($t0) +sw $t1, 116($sp) +#GetAttr left_24 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 100($sp) +#GetAttr right_25 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 104($sp) +#BinaryOperator left_24 / right_25 +lw $a0, 100($sp) +lw $t1, 104($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 96($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#GetAttr CellularAutomaton.columns = CellularAutomaton.columns +lw $t0, 188($sp) +lw $t1, 20($t0) +sw $t1, 116($sp) +#GetAttr left_20 = Int.value +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 84($sp) +#GetAttr right_21 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#BinaryOperator left_20 * right_21 +lw $a0, 84($sp) +lw $t1, 88($sp) +mul $a0, $a0, $t1 +sw $a0, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 120($sp) +#GetAttr left_16 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 68($sp) +#GetAttr right_17 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 72($sp) +#BinaryOperator left_16 = right_17 +lw $a0, 68($sp) +lw $t1, 72($sp) +seq $a0, $a0, $t1 +sw $a0, 64($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 124($sp) +# IFGoto result_14 -> label_41 +lw $t0, 60($sp) +lw $a0, 16($t0) +bnez $a0, label_41 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 148($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 152($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 156($sp) +#GetAttr left_34 = Int.value +lw $t0, 192($sp) +lw $t1, 16($t0) +sw $t1, 140($sp) +#GetAttr right_35 = Int.value +lw $t0, 148($sp) +lw $t1, 16($t0) +sw $t1, 144($sp) +#BinaryOperator left_34 - right_35 +lw $a0, 140($sp) +lw $t1, 144($sp) +sub $a0, $a0, $t1 +sw $a0, 136($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 132($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 160($sp) +#VCall south +move $t0, $sp +# Arg result_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 188($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 128($sp) +#AssignNode result_13 = result_31 +lw $t1, 128($sp) +sw $t1, 56($sp) +#Goto label_42 +b label_42 +#LabelNode label_41 +label_41: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 164($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 168($sp) +#CallNode String_init +move $t0, $sp +# Arg l_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 172($sp) +#AssignNode result_13 = instance_41 +lw $t1, 168($sp) +sw $t1, 56($sp) +#LabelNode label_42 +label_42: +#AssignNode result_0 = result_13 +lw $t1, 56($sp) +sw $t1, 4($sp) +#Goto label_43 +b label_43 +#LabelNode label_40 +label_40: +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 176($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 180($sp) +#CallNode String_init +move $t0, $sp +# Arg l_43 +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_44 +lw $t1, 180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 184($sp) +#AssignNode result_0 = instance_44 +lw $t1, 180($sp) +sw $t1, 4($sp) +#LabelNode label_43 +label_43: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 196 +jr $ra +CellularAutomaton.neighbors: +addi $sp, $sp, -652 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall north +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 136($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 140($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#CallNode String_init +move $t0, $sp +# Arg l_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 148($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 124($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 152($sp) +# IFGoto result_29 -> label_44 +lw $t0, 120($sp) +lw $a0, 16($t0) +bnez $a0, label_44 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 156($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 160($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 164($sp) +#AssignNode result_28 = instance_38 +lw $t1, 156($sp) +sw $t1, 116($sp) +#Goto label_45 +b label_45 +#LabelNode label_44 +label_44: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 168($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 172($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 176($sp) +#AssignNode result_28 = instance_41 +lw $t1, 168($sp) +sw $t1, 116($sp) +#LabelNode label_45 +label_45: +#VCall south +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 200($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 204($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 208($sp) +#CallNode String_init +move $t0, $sp +# Arg l_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 212($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_49 +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 188($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 184($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 216($sp) +# IFGoto result_45 -> label_46 +lw $t0, 184($sp) +lw $a0, 16($t0) +bnez $a0, label_46 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 220($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 224($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_55 +lw $t1, 224($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 228($sp) +#AssignNode result_44 = instance_54 +lw $t1, 220($sp) +sw $t1, 180($sp) +#Goto label_47 +b label_47 +#LabelNode label_46 +label_46: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 232($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 236($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 240($sp) +#AssignNode result_44 = instance_57 +lw $t1, 232($sp) +sw $t1, 180($sp) +#LabelNode label_47 +label_47: +#GetAttr left_26 = Int.value +lw $t0, 116($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#GetAttr right_27 = Int.value +lw $t0, 180($sp) +lw $t1, 16($t0) +sw $t1, 112($sp) +#BinaryOperator left_26 + right_27 +lw $a0, 108($sp) +lw $t1, 112($sp) +add $a0, $a0, $t1 +sw $a0, 104($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 244($sp) +#VCall east +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 60($t2) +jal $t3 +sw $a1, 268($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 272($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 276($sp) +#CallNode String_init +move $t0, $sp +# Arg l_67 +lw $t1, 272($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 280($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_68 +lw $t1, 276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_66 +lw $t1, 268($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 256($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 284($sp) +# IFGoto result_62 -> label_48 +lw $t0, 252($sp) +lw $a0, 16($t0) +bnez $a0, label_48 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 288($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 292($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_72 +lw $t1, 292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_71 +lw $t1, 288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 296($sp) +#AssignNode result_61 = instance_71 +lw $t1, 288($sp) +sw $t1, 248($sp) +#Goto label_49 +b label_49 +#LabelNode label_48 +label_48: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 300($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 304($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_75 +lw $t1, 304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 308($sp) +#AssignNode result_61 = instance_74 +lw $t1, 300($sp) +sw $t1, 248($sp) +#LabelNode label_49 +label_49: +#GetAttr left_22 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#GetAttr right_23 = Int.value +lw $t0, 248($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#BinaryOperator left_22 + right_23 +lw $a0, 92($sp) +lw $t1, 96($sp) +add $a0, $a0, $t1 +sw $a0, 88($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 312($sp) +#VCall west +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 64($t2) +jal $t3 +sw $a1, 336($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 340($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 344($sp) +#CallNode String_init +move $t0, $sp +# Arg l_84 +lw $t1, 340($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_85 +lw $t1, 344($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 348($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_85 +lw $t1, 344($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 324($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 320($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_80 +lw $t1, 324($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_79 +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 352($sp) +# IFGoto result_79 -> label_50 +lw $t0, 320($sp) +lw $a0, 16($t0) +bnez $a0, label_50 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 356($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 360($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_89 +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_88 +lw $t1, 356($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 364($sp) +#AssignNode result_78 = instance_88 +lw $t1, 356($sp) +sw $t1, 316($sp) +#Goto label_51 +b label_51 +#LabelNode label_50 +label_50: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 368($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 372($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_92 +lw $t1, 372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 376($sp) +#AssignNode result_78 = instance_91 +lw $t1, 368($sp) +sw $t1, 316($sp) +#LabelNode label_51 +label_51: +#GetAttr left_18 = Int.value +lw $t0, 84($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#GetAttr right_19 = Int.value +lw $t0, 316($sp) +lw $t1, 16($t0) +sw $t1, 80($sp) +#BinaryOperator left_18 + right_19 +lw $a0, 76($sp) +lw $t1, 80($sp) +add $a0, $a0, $t1 +sw $a0, 72($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 380($sp) +#VCall northeast +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 72($t2) +jal $t3 +sw $a1, 404($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 408($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 412($sp) +#CallNode String_init +move $t0, $sp +# Arg l_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_102 +lw $t1, 412($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 416($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_102 +lw $t1, 412($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 392($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 388($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_96 +lw $t1, 388($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 420($sp) +# IFGoto result_96 -> label_52 +lw $t0, 388($sp) +lw $a0, 16($t0) +bnez $a0, label_52 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 424($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 428($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_106 +lw $t1, 428($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_105 +lw $t1, 424($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 432($sp) +#AssignNode result_95 = instance_105 +lw $t1, 424($sp) +sw $t1, 384($sp) +#Goto label_53 +b label_53 +#LabelNode label_52 +label_52: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 436($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 440($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_108 +lw $t1, 436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 444($sp) +#AssignNode result_95 = instance_108 +lw $t1, 436($sp) +sw $t1, 384($sp) +#LabelNode label_53 +label_53: +#GetAttr left_14 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#GetAttr right_15 = Int.value +lw $t0, 384($sp) +lw $t1, 16($t0) +sw $t1, 64($sp) +#BinaryOperator left_14 + right_15 +lw $a0, 60($sp) +lw $t1, 64($sp) +add $a0, $a0, $t1 +sw $a0, 56($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 52($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 448($sp) +#VCall northwest +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 68($t2) +jal $t3 +sw $a1, 472($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 476($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 480($sp) +#CallNode String_init +move $t0, $sp +# Arg l_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 484($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_119 +lw $t1, 480($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_117 +lw $t1, 472($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 460($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 456($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_114 +lw $t1, 460($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 488($sp) +# IFGoto result_113 -> label_54 +lw $t0, 456($sp) +lw $a0, 16($t0) +bnez $a0, label_54 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 492($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 496($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_123 +lw $t1, 496($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 500($sp) +#AssignNode result_112 = instance_122 +lw $t1, 492($sp) +sw $t1, 452($sp) +#Goto label_55 +b label_55 +#LabelNode label_54 +label_54: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 504($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 508($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_126 +lw $t1, 508($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_125 +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 512($sp) +#AssignNode result_112 = instance_125 +lw $t1, 504($sp) +sw $t1, 452($sp) +#LabelNode label_55 +label_55: +#GetAttr left_10 = Int.value +lw $t0, 52($sp) +lw $t1, 16($t0) +sw $t1, 44($sp) +#GetAttr right_11 = Int.value +lw $t0, 452($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#BinaryOperator left_10 + right_11 +lw $a0, 44($sp) +lw $t1, 48($sp) +add $a0, $a0, $t1 +sw $a0, 40($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 516($sp) +#VCall southeast +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 76($t2) +jal $t3 +sw $a1, 540($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 544($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 548($sp) +#CallNode String_init +move $t0, $sp +# Arg l_135 +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_136 +lw $t1, 548($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 552($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_136 +lw $t1, 548($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_134 +lw $t1, 540($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 528($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 524($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_131 +lw $t1, 528($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_130 +lw $t1, 524($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 556($sp) +# IFGoto result_130 -> label_56 +lw $t0, 524($sp) +lw $a0, 16($t0) +bnez $a0, label_56 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 560($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 564($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_140 +lw $t1, 564($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_139 +lw $t1, 560($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 568($sp) +#AssignNode result_129 = instance_139 +lw $t1, 560($sp) +sw $t1, 520($sp) +#Goto label_57 +b label_57 +#LabelNode label_56 +label_56: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 572($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 576($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_143 +lw $t1, 576($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_142 +lw $t1, 572($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 580($sp) +#AssignNode result_129 = instance_142 +lw $t1, 572($sp) +sw $t1, 520($sp) +#LabelNode label_57 +label_57: +#GetAttr left_6 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 28($sp) +#GetAttr right_7 = Int.value +lw $t0, 520($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#BinaryOperator left_6 + right_7 +lw $a0, 28($sp) +lw $t1, 32($sp) +add $a0, $a0, $t1 +sw $a0, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 584($sp) +#VCall southwest +move $t0, $sp +# Arg position +lw $t1, 660($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 656($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 656($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 80($t2) +jal $t3 +sw $a1, 608($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 612($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 616($sp) +#CallNode String_init +move $t0, $sp +# Arg l_152 +lw $t1, 612($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_153 +lw $t1, 616($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 620($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_153 +lw $t1, 616($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_151 +lw $t1, 608($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 596($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 592($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_148 +lw $t1, 596($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_147 +lw $t1, 592($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 624($sp) +# IFGoto result_147 -> label_58 +lw $t0, 592($sp) +lw $a0, 16($t0) +bnez $a0, label_58 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 628($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 632($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_157 +lw $t1, 632($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_156 +lw $t1, 628($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 636($sp) +#AssignNode result_146 = instance_156 +lw $t1, 628($sp) +sw $t1, 588($sp) +#Goto label_59 +b label_59 +#LabelNode label_58 +label_58: +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 640($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 644($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_160 +lw $t1, 644($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_159 +lw $t1, 640($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 648($sp) +#AssignNode result_146 = instance_159 +lw $t1, 640($sp) +sw $t1, 588($sp) +#LabelNode label_59 +label_59: +#GetAttr left_2 = Int.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 588($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 + right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +add $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 652($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 664 +jr $ra +CellularAutomaton.cell_at_next_evolution: +addi $sp, $sp, -168 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall neighbors +move $t0, $sp +# Arg position +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 172($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 84($t2) +jal $t3 +sw $a1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_1 -> label_60 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_60 +#VCall neighbors +move $t0, $sp +# Arg position +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 172($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 84($t2) +jal $t3 +sw $a1, 64($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#GetAttr left_13 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 80($sp) +# IFGoto result_11 -> label_61 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_61 +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 84($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode String_init +move $t0, $sp +# Arg l_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 92($sp) +#AssignNode result_10 = instance_21 +lw $t1, 88($sp) +sw $t1, 44($sp) +#Goto label_62 +b label_62 +#LabelNode label_61 +label_61: +#VCall cell +move $t0, $sp +# Arg position +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 172($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 116($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 120($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#CallNode String_init +move $t0, $sp +# Arg l_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 128($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 104($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 132($sp) +# IFGoto result_24 -> label_63 +lw $t0, 100($sp) +lw $a0, 16($t0) +bnez $a0, label_63 +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 136($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 140($sp) +#CallNode String_init +move $t0, $sp +# Arg l_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 144($sp) +#AssignNode result_23 = instance_34 +lw $t1, 140($sp) +sw $t1, 96($sp) +#Goto label_64 +b label_64 +#LabelNode label_63 +label_63: +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 148($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode String_init +move $t0, $sp +# Arg l_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 156($sp) +#AssignNode result_23 = instance_37 +lw $t1, 152($sp) +sw $t1, 96($sp) +#LabelNode label_64 +label_64: +#AssignNode result_10 = result_23 +lw $t1, 96($sp) +sw $t1, 44($sp) +#LabelNode label_62 +label_62: +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#Goto label_65 +b label_65 +#LabelNode label_60 +label_60: +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 160($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 164($sp) +#CallNode String_init +move $t0, $sp +# Arg l_39 +lw $t1, 160($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 168($sp) +#AssignNode result_0 = instance_40 +lw $t1, 164($sp) +sw $t1, 4($sp) +#LabelNode label_65 +label_65: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 180 +jr $ra +CellularAutomaton.evolve: +addi $sp, $sp, -128 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode position_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#VCall num_cells +move $t0, $sp +# Arg self +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 20($sp) +#AssignNode num_5 = result_4 +lw $t1, 20($sp) +sw $t1, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#AssignNode temp_9 = instance_6 +lw $t1, 28($sp) +sw $t1, 40($sp) +#LabelNode label_66 +label_66: +#GetAttr left_13 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 < right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +slt $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 64($sp) +# IFGoto result_11 -> label_67 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_67 +#Goto label_68 +b label_68 +#LabelNode label_67 +label_67: +#VCall cell_at_next_evolution +move $t0, $sp +# Arg position_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 132($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 88($t2) +jal $t3 +sw $a1, 72($sp) +#VCall concat +move $t0, $sp +# Arg result_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg temp_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 68($sp) +#AssignNode temp_9 = result_16 +lw $t1, 68($sp) +sw $t1, 40($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 96($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 100($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#GetAttr left_21 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#GetAttr right_22 = Int.value +lw $t0, 96($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#BinaryOperator left_21 + right_22 +lw $a0, 88($sp) +lw $t1, 92($sp) +add $a0, $a0, $t1 +sw $a0, 84($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#AssignNode position_3 = result_19 +lw $t1, 80($sp) +sw $t1, 16($sp) +#Goto label_66 +b label_66 +#LabelNode label_68 +label_68: +#SetAttr CellularAutomatonpopulation_map = temp_9 +lw $t0, 132($sp) +lw $t1, 40($sp) +sw $t1, 28($t0) +#AssignNode result_29 = self +lw $t1, 132($sp) +sw $t1, 120($sp) +#AssignNode result_30 = result_29 +lw $t1, 120($sp) +sw $t1, 124($sp) +#AssignNode result_31 = result_30 +lw $t1, 124($sp) +sw $t1, 128($sp) +#Return result_31 +lw $a1, 128($sp) +lw $ra, 0($sp) +addi $sp, $sp, 136 +jr $ra +CellularAutomaton.option: +addi $sp, $sp, -1432 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#AssignNode num_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#VCall out_string +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#LoadStr msg_7 +la $t0, msg_7 +sw $t0, 40($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode String_init +move $t0, $sp +# Arg l_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 48($sp) +#VCall out_string +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 36($sp) +#LoadStr msg_8 +la $t0, msg_8 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#LoadStr msg_9 +la $t0, msg_9 +sw $t0, 72($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode String_init +move $t0, $sp +# Arg l_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 80($sp) +#VCall out_string +move $t0, $sp +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 68($sp) +#LoadStr msg_10 +la $t0, msg_10 +sw $t0, 88($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#CallNode String_init +move $t0, $sp +# Arg l_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 96($sp) +#VCall out_string +move $t0, $sp +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 84($sp) +#LoadStr msg_11 +la $t0, msg_11 +sw $t0, 104($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 108($sp) +#CallNode String_init +move $t0, $sp +# Arg l_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 112($sp) +#VCall out_string +move $t0, $sp +# Arg instance_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 100($sp) +#LoadStr msg_12 +la $t0, msg_12 +sw $t0, 120($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#CallNode String_init +move $t0, $sp +# Arg l_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 128($sp) +#VCall out_string +move $t0, $sp +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 116($sp) +#LoadStr msg_13 +la $t0, msg_13 +sw $t0, 136($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 140($sp) +#CallNode String_init +move $t0, $sp +# Arg l_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 144($sp) +#VCall out_string +move $t0, $sp +# Arg instance_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 132($sp) +#LoadStr msg_14 +la $t0, msg_14 +sw $t0, 152($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 156($sp) +#CallNode String_init +move $t0, $sp +# Arg l_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 160($sp) +#VCall out_string +move $t0, $sp +# Arg instance_38 +lw $t1, 156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 148($sp) +#LoadStr msg_15 +la $t0, msg_15 +sw $t0, 168($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 172($sp) +#CallNode String_init +move $t0, $sp +# Arg l_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 176($sp) +#VCall out_string +move $t0, $sp +# Arg instance_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 164($sp) +#LoadStr msg_16 +la $t0, msg_16 +sw $t0, 184($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#CallNode String_init +move $t0, $sp +# Arg l_45 +lw $t1, 184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 192($sp) +#VCall out_string +move $t0, $sp +# Arg instance_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 180($sp) +#LoadStr msg_17 +la $t0, msg_17 +sw $t0, 200($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 204($sp) +#CallNode String_init +move $t0, $sp +# Arg l_49 +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 208($sp) +#VCall out_string +move $t0, $sp +# Arg instance_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 196($sp) +#LoadStr msg_18 +la $t0, msg_18 +sw $t0, 216($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 220($sp) +#CallNode String_init +move $t0, $sp +# Arg l_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 224($sp) +#VCall out_string +move $t0, $sp +# Arg instance_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 212($sp) +#LoadStr msg_19 +la $t0, msg_19 +sw $t0, 232($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 236($sp) +#CallNode String_init +move $t0, $sp +# Arg l_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 240($sp) +#VCall out_string +move $t0, $sp +# Arg instance_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 228($sp) +#LoadStr msg_20 +la $t0, msg_20 +sw $t0, 248($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 252($sp) +#CallNode String_init +move $t0, $sp +# Arg l_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 256($sp) +#VCall out_string +move $t0, $sp +# Arg instance_62 +lw $t1, 252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 244($sp) +#LoadStr msg_21 +la $t0, msg_21 +sw $t0, 264($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 268($sp) +#CallNode String_init +move $t0, $sp +# Arg l_65 +lw $t1, 264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_66 +lw $t1, 268($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 272($sp) +#VCall out_string +move $t0, $sp +# Arg instance_66 +lw $t1, 268($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 260($sp) +#LoadStr msg_22 +la $t0, msg_22 +sw $t0, 280($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 284($sp) +#CallNode String_init +move $t0, $sp +# Arg l_69 +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_70 +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 288($sp) +#VCall out_string +move $t0, $sp +# Arg instance_70 +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 276($sp) +#LoadStr msg_23 +la $t0, msg_23 +sw $t0, 296($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 300($sp) +#CallNode String_init +move $t0, $sp +# Arg l_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 304($sp) +#VCall out_string +move $t0, $sp +# Arg instance_74 +lw $t1, 300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 292($sp) +#LoadStr msg_24 +la $t0, msg_24 +sw $t0, 312($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 316($sp) +#CallNode String_init +move $t0, $sp +# Arg l_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 320($sp) +#VCall out_string +move $t0, $sp +# Arg instance_78 +lw $t1, 316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 308($sp) +#LoadStr msg_25 +la $t0, msg_25 +sw $t0, 328($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#CallNode String_init +move $t0, $sp +# Arg l_81 +lw $t1, 328($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 336($sp) +#VCall out_string +move $t0, $sp +# Arg instance_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 324($sp) +#LoadStr msg_26 +la $t0, msg_26 +sw $t0, 344($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 348($sp) +#CallNode String_init +move $t0, $sp +# Arg l_85 +lw $t1, 344($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 352($sp) +#VCall out_string +move $t0, $sp +# Arg instance_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 340($sp) +#LoadStr msg_27 +la $t0, msg_27 +sw $t0, 360($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 364($sp) +#CallNode String_init +move $t0, $sp +# Arg l_89 +lw $t1, 360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_90 +lw $t1, 364($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 368($sp) +#VCall out_string +move $t0, $sp +# Arg instance_90 +lw $t1, 364($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 356($sp) +#LoadStr msg_28 +la $t0, msg_28 +sw $t0, 376($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 380($sp) +#CallNode String_init +move $t0, $sp +# Arg l_93 +lw $t1, 376($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 384($sp) +#VCall out_string +move $t0, $sp +# Arg instance_94 +lw $t1, 380($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 372($sp) +#VCall in_int +move $t0, $sp +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 388($sp) +#AssignNode num_3 = result_96 +lw $t1, 388($sp) +sw $t1, 16($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 400($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 404($sp) +#CallNode String_init +move $t0, $sp +# Arg l_99 +lw $t1, 400($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 408($sp) +#VCall out_string +move $t0, $sp +# Arg instance_100 +lw $t1, 404($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 1436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 1436($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 396($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 432($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 436($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_108 +lw $t1, 436($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_107 +lw $t1, 432($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 440($sp) +#GetAttr left_105 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 424($sp) +#GetAttr right_106 = Int.value +lw $t0, 432($sp) +lw $t1, 16($t0) +sw $t1, 428($sp) +#BinaryOperator left_105 = right_106 +lw $a0, 424($sp) +lw $t1, 428($sp) +seq $a0, $a0, $t1 +sw $a0, 420($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 416($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_104 +lw $t1, 420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_103 +lw $t1, 416($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 444($sp) +# IFGoto result_103 -> label_69 +lw $t0, 416($sp) +lw $a0, 16($t0) +bnez $a0, label_69 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 468($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 472($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_117 +lw $t1, 472($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_116 +lw $t1, 468($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 476($sp) +#GetAttr left_114 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 460($sp) +#GetAttr right_115 = Int.value +lw $t0, 468($sp) +lw $t1, 16($t0) +sw $t1, 464($sp) +#BinaryOperator left_114 = right_115 +lw $a0, 460($sp) +lw $t1, 464($sp) +seq $a0, $a0, $t1 +sw $a0, 456($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 452($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_113 +lw $t1, 456($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_112 +lw $t1, 452($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 480($sp) +# IFGoto result_112 -> label_70 +lw $t0, 452($sp) +lw $a0, 16($t0) +bnez $a0, label_70 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 504($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 508($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_126 +lw $t1, 508($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_125 +lw $t1, 504($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 512($sp) +#GetAttr left_123 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 496($sp) +#GetAttr right_124 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 500($sp) +#BinaryOperator left_123 = right_124 +lw $a0, 496($sp) +lw $t1, 500($sp) +seq $a0, $a0, $t1 +sw $a0, 492($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 488($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 516($sp) +# IFGoto result_121 -> label_71 +lw $t0, 488($sp) +lw $a0, 16($t0) +bnez $a0, label_71 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 540($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 544($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_135 +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_134 +lw $t1, 540($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 548($sp) +#GetAttr left_132 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 532($sp) +#GetAttr right_133 = Int.value +lw $t0, 540($sp) +lw $t1, 16($t0) +sw $t1, 536($sp) +#BinaryOperator left_132 = right_133 +lw $a0, 532($sp) +lw $t1, 536($sp) +seq $a0, $a0, $t1 +sw $a0, 528($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 524($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_131 +lw $t1, 528($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_130 +lw $t1, 524($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 552($sp) +# IFGoto result_130 -> label_72 +lw $t0, 524($sp) +lw $a0, 16($t0) +bnez $a0, label_72 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 576($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 580($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_144 +lw $t1, 580($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_143 +lw $t1, 576($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 584($sp) +#GetAttr left_141 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 568($sp) +#GetAttr right_142 = Int.value +lw $t0, 576($sp) +lw $t1, 16($t0) +sw $t1, 572($sp) +#BinaryOperator left_141 = right_142 +lw $a0, 568($sp) +lw $t1, 572($sp) +seq $a0, $a0, $t1 +sw $a0, 564($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 560($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_140 +lw $t1, 564($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_139 +lw $t1, 560($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 588($sp) +# IFGoto result_139 -> label_73 +lw $t0, 560($sp) +lw $a0, 16($t0) +bnez $a0, label_73 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 612($sp) +#LoadInt 6 +li $t0, 6 +sw $t0, 616($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_153 +lw $t1, 616($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_152 +lw $t1, 612($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 620($sp) +#GetAttr left_150 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 604($sp) +#GetAttr right_151 = Int.value +lw $t0, 612($sp) +lw $t1, 16($t0) +sw $t1, 608($sp) +#BinaryOperator left_150 = right_151 +lw $a0, 604($sp) +lw $t1, 608($sp) +seq $a0, $a0, $t1 +sw $a0, 600($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 596($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_149 +lw $t1, 600($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_148 +lw $t1, 596($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 624($sp) +# IFGoto result_148 -> label_74 +lw $t0, 596($sp) +lw $a0, 16($t0) +bnez $a0, label_74 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 648($sp) +#LoadInt 7 +li $t0, 7 +sw $t0, 652($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_162 +lw $t1, 652($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_161 +lw $t1, 648($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 656($sp) +#GetAttr left_159 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 640($sp) +#GetAttr right_160 = Int.value +lw $t0, 648($sp) +lw $t1, 16($t0) +sw $t1, 644($sp) +#BinaryOperator left_159 = right_160 +lw $a0, 640($sp) +lw $t1, 644($sp) +seq $a0, $a0, $t1 +sw $a0, 636($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 632($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_158 +lw $t1, 636($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_157 +lw $t1, 632($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 660($sp) +# IFGoto result_157 -> label_75 +lw $t0, 632($sp) +lw $a0, 16($t0) +bnez $a0, label_75 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 684($sp) +#LoadInt 8 +li $t0, 8 +sw $t0, 688($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_171 +lw $t1, 688($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_170 +lw $t1, 684($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 692($sp) +#GetAttr left_168 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 676($sp) +#GetAttr right_169 = Int.value +lw $t0, 684($sp) +lw $t1, 16($t0) +sw $t1, 680($sp) +#BinaryOperator left_168 = right_169 +lw $a0, 676($sp) +lw $t1, 680($sp) +seq $a0, $a0, $t1 +sw $a0, 672($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 668($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_167 +lw $t1, 672($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_166 +lw $t1, 668($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 696($sp) +# IFGoto result_166 -> label_76 +lw $t0, 668($sp) +lw $a0, 16($t0) +bnez $a0, label_76 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 720($sp) +#LoadInt 9 +li $t0, 9 +sw $t0, 724($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_180 +lw $t1, 724($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_179 +lw $t1, 720($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 728($sp) +#GetAttr left_177 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 712($sp) +#GetAttr right_178 = Int.value +lw $t0, 720($sp) +lw $t1, 16($t0) +sw $t1, 716($sp) +#BinaryOperator left_177 = right_178 +lw $a0, 712($sp) +lw $t1, 716($sp) +seq $a0, $a0, $t1 +sw $a0, 708($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 704($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_176 +lw $t1, 708($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_175 +lw $t1, 704($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 732($sp) +# IFGoto result_175 -> label_77 +lw $t0, 704($sp) +lw $a0, 16($t0) +bnez $a0, label_77 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 756($sp) +#LoadInt 10 +li $t0, 10 +sw $t0, 760($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_189 +lw $t1, 760($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_188 +lw $t1, 756($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 764($sp) +#GetAttr left_186 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 748($sp) +#GetAttr right_187 = Int.value +lw $t0, 756($sp) +lw $t1, 16($t0) +sw $t1, 752($sp) +#BinaryOperator left_186 = right_187 +lw $a0, 748($sp) +lw $t1, 752($sp) +seq $a0, $a0, $t1 +sw $a0, 744($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 740($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_185 +lw $t1, 744($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_184 +lw $t1, 740($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 768($sp) +# IFGoto result_184 -> label_78 +lw $t0, 740($sp) +lw $a0, 16($t0) +bnez $a0, label_78 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 792($sp) +#LoadInt 11 +li $t0, 11 +sw $t0, 796($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_198 +lw $t1, 796($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_197 +lw $t1, 792($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 800($sp) +#GetAttr left_195 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 784($sp) +#GetAttr right_196 = Int.value +lw $t0, 792($sp) +lw $t1, 16($t0) +sw $t1, 788($sp) +#BinaryOperator left_195 = right_196 +lw $a0, 784($sp) +lw $t1, 788($sp) +seq $a0, $a0, $t1 +sw $a0, 780($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 776($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_194 +lw $t1, 780($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_193 +lw $t1, 776($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 804($sp) +# IFGoto result_193 -> label_79 +lw $t0, 776($sp) +lw $a0, 16($t0) +bnez $a0, label_79 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 828($sp) +#LoadInt 12 +li $t0, 12 +sw $t0, 832($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_207 +lw $t1, 832($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_206 +lw $t1, 828($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 836($sp) +#GetAttr left_204 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 820($sp) +#GetAttr right_205 = Int.value +lw $t0, 828($sp) +lw $t1, 16($t0) +sw $t1, 824($sp) +#BinaryOperator left_204 = right_205 +lw $a0, 820($sp) +lw $t1, 824($sp) +seq $a0, $a0, $t1 +sw $a0, 816($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 812($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_203 +lw $t1, 816($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_202 +lw $t1, 812($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 840($sp) +# IFGoto result_202 -> label_80 +lw $t0, 812($sp) +lw $a0, 16($t0) +bnez $a0, label_80 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 864($sp) +#LoadInt 13 +li $t0, 13 +sw $t0, 868($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_216 +lw $t1, 868($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_215 +lw $t1, 864($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 872($sp) +#GetAttr left_213 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 856($sp) +#GetAttr right_214 = Int.value +lw $t0, 864($sp) +lw $t1, 16($t0) +sw $t1, 860($sp) +#BinaryOperator left_213 = right_214 +lw $a0, 856($sp) +lw $t1, 860($sp) +seq $a0, $a0, $t1 +sw $a0, 852($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 848($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_212 +lw $t1, 852($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_211 +lw $t1, 848($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 876($sp) +# IFGoto result_211 -> label_81 +lw $t0, 848($sp) +lw $a0, 16($t0) +bnez $a0, label_81 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 900($sp) +#LoadInt 14 +li $t0, 14 +sw $t0, 904($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_225 +lw $t1, 904($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_224 +lw $t1, 900($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 908($sp) +#GetAttr left_222 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 892($sp) +#GetAttr right_223 = Int.value +lw $t0, 900($sp) +lw $t1, 16($t0) +sw $t1, 896($sp) +#BinaryOperator left_222 = right_223 +lw $a0, 892($sp) +lw $t1, 896($sp) +seq $a0, $a0, $t1 +sw $a0, 888($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 884($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_221 +lw $t1, 888($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_220 +lw $t1, 884($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 912($sp) +# IFGoto result_220 -> label_82 +lw $t0, 884($sp) +lw $a0, 16($t0) +bnez $a0, label_82 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 936($sp) +#LoadInt 15 +li $t0, 15 +sw $t0, 940($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_234 +lw $t1, 940($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_233 +lw $t1, 936($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 944($sp) +#GetAttr left_231 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 928($sp) +#GetAttr right_232 = Int.value +lw $t0, 936($sp) +lw $t1, 16($t0) +sw $t1, 932($sp) +#BinaryOperator left_231 = right_232 +lw $a0, 928($sp) +lw $t1, 932($sp) +seq $a0, $a0, $t1 +sw $a0, 924($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 920($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_230 +lw $t1, 924($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_229 +lw $t1, 920($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 948($sp) +# IFGoto result_229 -> label_83 +lw $t0, 920($sp) +lw $a0, 16($t0) +bnez $a0, label_83 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 972($sp) +#LoadInt 16 +li $t0, 16 +sw $t0, 976($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_243 +lw $t1, 976($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_242 +lw $t1, 972($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 980($sp) +#GetAttr left_240 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 964($sp) +#GetAttr right_241 = Int.value +lw $t0, 972($sp) +lw $t1, 16($t0) +sw $t1, 968($sp) +#BinaryOperator left_240 = right_241 +lw $a0, 964($sp) +lw $t1, 968($sp) +seq $a0, $a0, $t1 +sw $a0, 960($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 956($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_239 +lw $t1, 960($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_238 +lw $t1, 956($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 984($sp) +# IFGoto result_238 -> label_84 +lw $t0, 956($sp) +lw $a0, 16($t0) +bnez $a0, label_84 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 1008($sp) +#LoadInt 17 +li $t0, 17 +sw $t0, 1012($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_252 +lw $t1, 1012($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_251 +lw $t1, 1008($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 1016($sp) +#GetAttr left_249 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 1000($sp) +#GetAttr right_250 = Int.value +lw $t0, 1008($sp) +lw $t1, 16($t0) +sw $t1, 1004($sp) +#BinaryOperator left_249 = right_250 +lw $a0, 1000($sp) +lw $t1, 1004($sp) +seq $a0, $a0, $t1 +sw $a0, 996($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 992($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_248 +lw $t1, 996($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_247 +lw $t1, 992($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 1020($sp) +# IFGoto result_247 -> label_85 +lw $t0, 992($sp) +lw $a0, 16($t0) +bnez $a0, label_85 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 1044($sp) +#LoadInt 18 +li $t0, 18 +sw $t0, 1048($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_261 +lw $t1, 1048($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_260 +lw $t1, 1044($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 1052($sp) +#GetAttr left_258 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 1036($sp) +#GetAttr right_259 = Int.value +lw $t0, 1044($sp) +lw $t1, 16($t0) +sw $t1, 1040($sp) +#BinaryOperator left_258 = right_259 +lw $a0, 1036($sp) +lw $t1, 1040($sp) +seq $a0, $a0, $t1 +sw $a0, 1032($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 1028($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_257 +lw $t1, 1032($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_256 +lw $t1, 1028($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 1056($sp) +# IFGoto result_256 -> label_86 +lw $t0, 1028($sp) +lw $a0, 16($t0) +bnez $a0, label_86 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 1080($sp) +#LoadInt 19 +li $t0, 19 +sw $t0, 1084($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_270 +lw $t1, 1084($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_269 +lw $t1, 1080($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 1088($sp) +#GetAttr left_267 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 1072($sp) +#GetAttr right_268 = Int.value +lw $t0, 1080($sp) +lw $t1, 16($t0) +sw $t1, 1076($sp) +#BinaryOperator left_267 = right_268 +lw $a0, 1072($sp) +lw $t1, 1076($sp) +seq $a0, $a0, $t1 +sw $a0, 1068($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 1064($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_266 +lw $t1, 1068($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_265 +lw $t1, 1064($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 1092($sp) +# IFGoto result_265 -> label_87 +lw $t0, 1064($sp) +lw $a0, 16($t0) +bnez $a0, label_87 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 1116($sp) +#LoadInt 20 +li $t0, 20 +sw $t0, 1120($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_279 +lw $t1, 1120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_278 +lw $t1, 1116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 1124($sp) +#GetAttr left_276 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 1108($sp) +#GetAttr right_277 = Int.value +lw $t0, 1116($sp) +lw $t1, 16($t0) +sw $t1, 1112($sp) +#BinaryOperator left_276 = right_277 +lw $a0, 1108($sp) +lw $t1, 1112($sp) +seq $a0, $a0, $t1 +sw $a0, 1104($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 1100($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_275 +lw $t1, 1104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_274 +lw $t1, 1100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 1128($sp) +# IFGoto result_274 -> label_88 +lw $t0, 1100($sp) +lw $a0, 16($t0) +bnez $a0, label_88 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 1152($sp) +#LoadInt 21 +li $t0, 21 +sw $t0, 1156($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_288 +lw $t1, 1156($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_287 +lw $t1, 1152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 1160($sp) +#GetAttr left_285 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 1144($sp) +#GetAttr right_286 = Int.value +lw $t0, 1152($sp) +lw $t1, 16($t0) +sw $t1, 1148($sp) +#BinaryOperator left_285 = right_286 +lw $a0, 1144($sp) +lw $t1, 1148($sp) +seq $a0, $a0, $t1 +sw $a0, 1140($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 1136($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_284 +lw $t1, 1140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_283 +lw $t1, 1136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 1164($sp) +# IFGoto result_283 -> label_89 +lw $t0, 1136($sp) +lw $a0, 16($t0) +bnez $a0, label_89 +#LoadStr msg_29 +la $t0, msg_29 +sw $t0, 1168($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1172($sp) +#CallNode String_init +move $t0, $sp +# Arg l_291 +lw $t1, 1168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_292 +lw $t1, 1172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1176($sp) +#AssignNode result_282 = instance_292 +lw $t1, 1172($sp) +sw $t1, 1132($sp) +#Goto label_90 +b label_90 +#LabelNode label_89 +label_89: +#LoadStr msg_30 +la $t0, msg_30 +sw $t0, 1180($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1184($sp) +#CallNode String_init +move $t0, $sp +# Arg l_294 +lw $t1, 1180($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_295 +lw $t1, 1184($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1188($sp) +#AssignNode result_282 = instance_295 +lw $t1, 1184($sp) +sw $t1, 1132($sp) +#LabelNode label_90 +label_90: +#AssignNode result_273 = result_282 +lw $t1, 1132($sp) +sw $t1, 1096($sp) +#Goto label_91 +b label_91 +#LabelNode label_88 +label_88: +#LoadStr msg_31 +la $t0, msg_31 +sw $t0, 1192($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1196($sp) +#CallNode String_init +move $t0, $sp +# Arg l_297 +lw $t1, 1192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_298 +lw $t1, 1196($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1200($sp) +#AssignNode result_273 = instance_298 +lw $t1, 1196($sp) +sw $t1, 1096($sp) +#LabelNode label_91 +label_91: +#AssignNode result_264 = result_273 +lw $t1, 1096($sp) +sw $t1, 1060($sp) +#Goto label_92 +b label_92 +#LabelNode label_87 +label_87: +#LoadStr msg_32 +la $t0, msg_32 +sw $t0, 1204($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1208($sp) +#CallNode String_init +move $t0, $sp +# Arg l_300 +lw $t1, 1204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_301 +lw $t1, 1208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1212($sp) +#AssignNode result_264 = instance_301 +lw $t1, 1208($sp) +sw $t1, 1060($sp) +#LabelNode label_92 +label_92: +#AssignNode result_255 = result_264 +lw $t1, 1060($sp) +sw $t1, 1024($sp) +#Goto label_93 +b label_93 +#LabelNode label_86 +label_86: +#LoadStr msg_33 +la $t0, msg_33 +sw $t0, 1216($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1220($sp) +#CallNode String_init +move $t0, $sp +# Arg l_303 +lw $t1, 1216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_304 +lw $t1, 1220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1224($sp) +#AssignNode result_255 = instance_304 +lw $t1, 1220($sp) +sw $t1, 1024($sp) +#LabelNode label_93 +label_93: +#AssignNode result_246 = result_255 +lw $t1, 1024($sp) +sw $t1, 988($sp) +#Goto label_94 +b label_94 +#LabelNode label_85 +label_85: +#LoadStr msg_34 +la $t0, msg_34 +sw $t0, 1228($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1232($sp) +#CallNode String_init +move $t0, $sp +# Arg l_306 +lw $t1, 1228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_307 +lw $t1, 1232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1236($sp) +#AssignNode result_246 = instance_307 +lw $t1, 1232($sp) +sw $t1, 988($sp) +#LabelNode label_94 +label_94: +#AssignNode result_237 = result_246 +lw $t1, 988($sp) +sw $t1, 952($sp) +#Goto label_95 +b label_95 +#LabelNode label_84 +label_84: +#LoadStr msg_35 +la $t0, msg_35 +sw $t0, 1240($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1244($sp) +#CallNode String_init +move $t0, $sp +# Arg l_309 +lw $t1, 1240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_310 +lw $t1, 1244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1248($sp) +#AssignNode result_237 = instance_310 +lw $t1, 1244($sp) +sw $t1, 952($sp) +#LabelNode label_95 +label_95: +#AssignNode result_228 = result_237 +lw $t1, 952($sp) +sw $t1, 916($sp) +#Goto label_96 +b label_96 +#LabelNode label_83 +label_83: +#LoadStr msg_36 +la $t0, msg_36 +sw $t0, 1252($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1256($sp) +#CallNode String_init +move $t0, $sp +# Arg l_312 +lw $t1, 1252($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_313 +lw $t1, 1256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1260($sp) +#AssignNode result_228 = instance_313 +lw $t1, 1256($sp) +sw $t1, 916($sp) +#LabelNode label_96 +label_96: +#AssignNode result_219 = result_228 +lw $t1, 916($sp) +sw $t1, 880($sp) +#Goto label_97 +b label_97 +#LabelNode label_82 +label_82: +#LoadStr msg_37 +la $t0, msg_37 +sw $t0, 1264($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1268($sp) +#CallNode String_init +move $t0, $sp +# Arg l_315 +lw $t1, 1264($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_316 +lw $t1, 1268($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1272($sp) +#AssignNode result_219 = instance_316 +lw $t1, 1268($sp) +sw $t1, 880($sp) +#LabelNode label_97 +label_97: +#AssignNode result_210 = result_219 +lw $t1, 880($sp) +sw $t1, 844($sp) +#Goto label_98 +b label_98 +#LabelNode label_81 +label_81: +#LoadStr msg_38 +la $t0, msg_38 +sw $t0, 1276($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1280($sp) +#CallNode String_init +move $t0, $sp +# Arg l_318 +lw $t1, 1276($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_319 +lw $t1, 1280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1284($sp) +#AssignNode result_210 = instance_319 +lw $t1, 1280($sp) +sw $t1, 844($sp) +#LabelNode label_98 +label_98: +#AssignNode result_201 = result_210 +lw $t1, 844($sp) +sw $t1, 808($sp) +#Goto label_99 +b label_99 +#LabelNode label_80 +label_80: +#LoadStr msg_39 +la $t0, msg_39 +sw $t0, 1288($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1292($sp) +#CallNode String_init +move $t0, $sp +# Arg l_321 +lw $t1, 1288($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_322 +lw $t1, 1292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1296($sp) +#AssignNode result_201 = instance_322 +lw $t1, 1292($sp) +sw $t1, 808($sp) +#LabelNode label_99 +label_99: +#AssignNode result_192 = result_201 +lw $t1, 808($sp) +sw $t1, 772($sp) +#Goto label_100 +b label_100 +#LabelNode label_79 +label_79: +#LoadStr msg_40 +la $t0, msg_40 +sw $t0, 1300($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1304($sp) +#CallNode String_init +move $t0, $sp +# Arg l_324 +lw $t1, 1300($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_325 +lw $t1, 1304($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1308($sp) +#AssignNode result_192 = instance_325 +lw $t1, 1304($sp) +sw $t1, 772($sp) +#LabelNode label_100 +label_100: +#AssignNode result_183 = result_192 +lw $t1, 772($sp) +sw $t1, 736($sp) +#Goto label_101 +b label_101 +#LabelNode label_78 +label_78: +#LoadStr msg_41 +la $t0, msg_41 +sw $t0, 1312($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1316($sp) +#CallNode String_init +move $t0, $sp +# Arg l_327 +lw $t1, 1312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_328 +lw $t1, 1316($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1320($sp) +#AssignNode result_183 = instance_328 +lw $t1, 1316($sp) +sw $t1, 736($sp) +#LabelNode label_101 +label_101: +#AssignNode result_174 = result_183 +lw $t1, 736($sp) +sw $t1, 700($sp) +#Goto label_102 +b label_102 +#LabelNode label_77 +label_77: +#LoadStr msg_42 +la $t0, msg_42 +sw $t0, 1324($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1328($sp) +#CallNode String_init +move $t0, $sp +# Arg l_330 +lw $t1, 1324($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_331 +lw $t1, 1328($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1332($sp) +#AssignNode result_174 = instance_331 +lw $t1, 1328($sp) +sw $t1, 700($sp) +#LabelNode label_102 +label_102: +#AssignNode result_165 = result_174 +lw $t1, 700($sp) +sw $t1, 664($sp) +#Goto label_103 +b label_103 +#LabelNode label_76 +label_76: +#LoadStr msg_43 +la $t0, msg_43 +sw $t0, 1336($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1340($sp) +#CallNode String_init +move $t0, $sp +# Arg l_333 +lw $t1, 1336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_334 +lw $t1, 1340($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1344($sp) +#AssignNode result_165 = instance_334 +lw $t1, 1340($sp) +sw $t1, 664($sp) +#LabelNode label_103 +label_103: +#AssignNode result_156 = result_165 +lw $t1, 664($sp) +sw $t1, 628($sp) +#Goto label_104 +b label_104 +#LabelNode label_75 +label_75: +#LoadStr msg_44 +la $t0, msg_44 +sw $t0, 1348($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1352($sp) +#CallNode String_init +move $t0, $sp +# Arg l_336 +lw $t1, 1348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_337 +lw $t1, 1352($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1356($sp) +#AssignNode result_156 = instance_337 +lw $t1, 1352($sp) +sw $t1, 628($sp) +#LabelNode label_104 +label_104: +#AssignNode result_147 = result_156 +lw $t1, 628($sp) +sw $t1, 592($sp) +#Goto label_105 +b label_105 +#LabelNode label_74 +label_74: +#LoadStr msg_45 +la $t0, msg_45 +sw $t0, 1360($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1364($sp) +#CallNode String_init +move $t0, $sp +# Arg l_339 +lw $t1, 1360($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_340 +lw $t1, 1364($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1368($sp) +#AssignNode result_147 = instance_340 +lw $t1, 1364($sp) +sw $t1, 592($sp) +#LabelNode label_105 +label_105: +#AssignNode result_138 = result_147 +lw $t1, 592($sp) +sw $t1, 556($sp) +#Goto label_106 +b label_106 +#LabelNode label_73 +label_73: +#LoadStr msg_46 +la $t0, msg_46 +sw $t0, 1372($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1376($sp) +#CallNode String_init +move $t0, $sp +# Arg l_342 +lw $t1, 1372($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_343 +lw $t1, 1376($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1380($sp) +#AssignNode result_138 = instance_343 +lw $t1, 1376($sp) +sw $t1, 556($sp) +#LabelNode label_106 +label_106: +#AssignNode result_129 = result_138 +lw $t1, 556($sp) +sw $t1, 520($sp) +#Goto label_107 +b label_107 +#LabelNode label_72 +label_72: +#LoadStr msg_47 +la $t0, msg_47 +sw $t0, 1384($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1388($sp) +#CallNode String_init +move $t0, $sp +# Arg l_345 +lw $t1, 1384($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_346 +lw $t1, 1388($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1392($sp) +#AssignNode result_129 = instance_346 +lw $t1, 1388($sp) +sw $t1, 520($sp) +#LabelNode label_107 +label_107: +#AssignNode result_120 = result_129 +lw $t1, 520($sp) +sw $t1, 484($sp) +#Goto label_108 +b label_108 +#LabelNode label_71 +label_71: +#LoadStr msg_48 +la $t0, msg_48 +sw $t0, 1396($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1400($sp) +#CallNode String_init +move $t0, $sp +# Arg l_348 +lw $t1, 1396($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_349 +lw $t1, 1400($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1404($sp) +#AssignNode result_120 = instance_349 +lw $t1, 1400($sp) +sw $t1, 484($sp) +#LabelNode label_108 +label_108: +#AssignNode result_111 = result_120 +lw $t1, 484($sp) +sw $t1, 448($sp) +#Goto label_109 +b label_109 +#LabelNode label_70 +label_70: +#LoadStr msg_49 +la $t0, msg_49 +sw $t0, 1408($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1412($sp) +#CallNode String_init +move $t0, $sp +# Arg l_351 +lw $t1, 1408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_352 +lw $t1, 1412($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1416($sp) +#AssignNode result_111 = instance_352 +lw $t1, 1412($sp) +sw $t1, 448($sp) +#LabelNode label_109 +label_109: +#AssignNode result_102 = result_111 +lw $t1, 448($sp) +sw $t1, 412($sp) +#Goto label_110 +b label_110 +#LabelNode label_69 +label_69: +#LoadStr msg_50 +la $t0, msg_50 +sw $t0, 1420($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 1424($sp) +#CallNode String_init +move $t0, $sp +# Arg l_354 +lw $t1, 1420($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_355 +lw $t1, 1424($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 1428($sp) +#AssignNode result_102 = instance_355 +lw $t1, 1424($sp) +sw $t1, 412($sp) +#LabelNode label_110 +label_110: +#AssignNode result_357 = result_102 +lw $t1, 412($sp) +sw $t1, 1432($sp) +#Return result_357 +lw $a1, 1432($sp) +lw $ra, 0($sp) +addi $sp, $sp, 1440 +jr $ra +CellularAutomaton.prompt: +addi $sp, $sp, -136 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#AssignNode ans_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#LoadStr msg_51 +la $t0, msg_51 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#VCall out_string +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#LoadStr msg_52 +la $t0, msg_52 +sw $t0, 40($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode String_init +move $t0, $sp +# Arg l_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 48($sp) +#VCall out_string +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 36($sp) +#VCall in_string +move $t0, $sp +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 52($sp) +#AssignNode ans_3 = result_12 +lw $t1, 52($sp) +sw $t1, 16($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 64($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode String_init +move $t0, $sp +# Arg l_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 72($sp) +#VCall out_string +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 60($sp) +#LoadStr msg_53 +la $t0, msg_53 +sw $t0, 96($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode String_init +move $t0, $sp +# Arg l_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 104($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg ans_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 84($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_19 -> label_111 +lw $t0, 80($sp) +lw $a0, 16($t0) +bnez $a0, label_111 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 120($sp) +#AssignNode result_18 = instance_27 +lw $t1, 112($sp) +sw $t1, 76($sp) +#Goto label_112 +b label_112 +#LabelNode label_111 +label_111: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 128($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 132($sp) +#AssignNode result_18 = instance_30 +lw $t1, 124($sp) +sw $t1, 76($sp) +#LabelNode label_112 +label_112: +#AssignNode result_33 = result_18 +lw $t1, 76($sp) +sw $t1, 136($sp) +#Return result_33 +lw $a1, 136($sp) +lw $ra, 0($sp) +addi $sp, $sp, 144 +jr $ra +CellularAutomaton.prompt2: +addi $sp, $sp, -136 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#AssignNode ans_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#LoadStr msg_54 +la $t0, msg_54 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#VCall out_string +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#LoadStr msg_55 +la $t0, msg_55 +sw $t0, 40($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode String_init +move $t0, $sp +# Arg l_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 48($sp) +#VCall out_string +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 36($sp) +#LoadStr msg_56 +la $t0, msg_56 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#VCall in_string +move $t0, $sp +# Arg self +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 140($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 68($sp) +#AssignNode ans_3 = result_16 +lw $t1, 68($sp) +sw $t1, 16($sp) +#LoadStr msg_57 +la $t0, msg_57 +sw $t0, 96($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode String_init +move $t0, $sp +# Arg l_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 104($sp) +#CallNode String_equals +move $t0, $sp +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg ans_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 84($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 108($sp) +# IFGoto result_19 -> label_113 +lw $t0, 80($sp) +lw $a0, 16($t0) +bnez $a0, label_113 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 112($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 116($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 120($sp) +#AssignNode result_18 = instance_27 +lw $t1, 112($sp) +sw $t1, 76($sp) +#Goto label_114 +b label_114 +#LabelNode label_113 +label_113: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 124($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 128($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_31 +lw $t1, 128($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 132($sp) +#AssignNode result_18 = instance_30 +lw $t1, 124($sp) +sw $t1, 76($sp) +#LabelNode label_114 +label_114: +#AssignNode result_33 = result_18 +lw $t1, 76($sp) +sw $t1, 136($sp) +#Return result_33 +lw $a1, 136($sp) +lw $ra, 0($sp) +addi $sp, $sp, 144 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode CellularAutomaton_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal CellularAutomaton_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr Maincells = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 32($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -172 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#AssignNode continue_3 = instance_0 +lw $t1, 4($sp) +sw $t1, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadStr empty_str +la $t0, empty_str +sw $t0, 24($sp) +#CallNode String_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 28($sp) +#AssignNode choice_7 = instance_4 +lw $t1, 20($sp) +sw $t1, 32($sp) +#LoadStr msg_58 +la $t0, msg_58 +sw $t0, 40($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode String_init +move $t0, $sp +# Arg l_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 48($sp) +#VCall out_string +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 176($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 36($sp) +#LoadStr msg_59 +la $t0, msg_59 +sw $t0, 56($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode String_init +move $t0, $sp +# Arg l_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 64($sp) +#VCall out_string +move $t0, $sp +# Arg instance_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 176($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#LabelNode label_115 +label_115: +#VCall prompt2 +move $t0, $sp +# Arg self +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 176($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 104($t2) +jal $t3 +sw $a1, 72($sp) +# IFGoto result_17 -> label_116 +lw $t0, 72($sp) +lw $a0, 16($t0) +bnez $a0, label_116 +#Goto label_117 +b label_117 +#LabelNode label_116 +label_116: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 80($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 84($sp) +#AssignNode continue_3 = instance_18 +lw $t1, 76($sp) +sw $t1, 16($sp) +#VCall option +move $t0, $sp +# Arg self +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 176($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 96($t2) +jal $t3 +sw $a1, 92($sp) +#AssignNode choice_7 = result_22 +lw $t1, 92($sp) +sw $t1, 32($sp) +#Allocate 3:tag CellularAutomaton:Class_name 8:Class_size +li $a0, 32 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, CellularAutomaton_name +sw $t1, 4($t0) +li $t1, 8 +sw $t1, 8($t0) +la $t1, CellularAutomaton_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode CellularAutomaton_init +move $t0, $sp +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal CellularAutomaton_init +sw $a1, 108($sp) +#VCall init +move $t0, $sp +# Arg choice_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 104($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 100($sp) +#SetAttr Maincells = result_24 +lw $t0, 176($sp) +lw $t1, 100($sp) +sw $t1, 32($t0) +#GetAttr Main.cells = Main.cells +lw $t0, 176($sp) +lw $t1, 32($t0) +sw $t1, 164($sp) +#VCall print +move $t0, $sp +# Arg Main.cells +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 164($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 116($sp) +#LabelNode label_118 +label_118: +# IFGoto continue_3 -> label_119 +lw $t0, 16($sp) +lw $a0, 16($t0) +bnez $a0, label_119 +#Goto label_120 +b label_120 +#LabelNode label_119 +label_119: +#VCall prompt +move $t0, $sp +# Arg self +lw $t1, 176($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 176($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 100($t2) +jal $t3 +sw $a1, 132($sp) +# IFGoto result_32 -> label_121 +lw $t0, 132($sp) +lw $a0, 16($t0) +bnez $a0, label_121 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 140($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 144($sp) +#AssignNode continue_3 = instance_33 +lw $t1, 136($sp) +sw $t1, 16($sp) +#AssignNode result_31 = instance_33 +lw $t1, 136($sp) +sw $t1, 128($sp) +#Goto label_122 +b label_122 +#LabelNode label_121 +label_121: +#GetAttr Main.cells = Main.cells +lw $t0, 176($sp) +lw $t1, 32($t0) +sw $t1, 164($sp) +#VCall evolve +move $t0, $sp +# Arg Main.cells +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 164($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 92($t2) +jal $t3 +sw $a1, 152($sp) +#GetAttr Main.cells = Main.cells +lw $t0, 176($sp) +lw $t1, 32($t0) +sw $t1, 164($sp) +#VCall print +move $t0, $sp +# Arg Main.cells +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 164($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 160($sp) +#AssignNode result_31 = result_39 +lw $t1, 160($sp) +sw $t1, 128($sp) +#LabelNode label_122 +label_122: +#Goto label_118 +b label_118 +#LabelNode label_120 +label_120: +#Goto label_115 +b label_115 +#LabelNode label_117 +label_117: +#AssignNode result_41 = self +lw $t1, 176($sp) +sw $t1, 168($sp) +#AssignNode result_42 = result_41 +lw $t1, 168($sp) +sw $t1, 172($sp) +#Return result_42 +lw $a1, 172($sp) +lw $ra, 0($sp) +addi $sp, $sp, 180 +jr $ra \ No newline at end of file diff --git a/tests/codegen/list.mips b/tests/codegen/list.mips new file mode 100644 index 000000000..42db39e8e --- /dev/null +++ b/tests/codegen/list.mips @@ -0,0 +1,1612 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +List_name: .asciiz "List" +List_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word List.isNil +.word List.head +.word List.tail +.word List.cons +Cons_name: .asciiz "Cons" +Cons_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word Cons.isNil +.word Cons.head +.word Cons.tail +.word List.cons +.word Cons.init +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.print_list +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz " " +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +List_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode Object_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +List.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +List.head: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +List.tail: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +List.cons: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 6:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 6 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 12($sp) +#VCall init +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Cons_init: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode List_init +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal List_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Conscar = instance_1 +lw $t0, 20($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#SetAttr Conscdr = void +lw $t0, 20($sp) +la $t1, void +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Cons.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Cons.head: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.car = Cons.car +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return Cons.car +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons.tail: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.cdr = Cons.cdr +lw $t0, 8($sp) +lw $t1, 20($t0) +sw $t1, 4($sp) +#Return Cons.cdr +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons.init: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Conscar = i +lw $t0, 12($sp) +lw $t1, 16($sp) +sw $t1, 16($t0) +#SetAttr Conscdr = rest +lw $t0, 12($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr Mainmylist = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.print_list: +addi $sp, $sp, -56 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall isNil +move $t0, $sp +# Arg l +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 64($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 8($sp) +# IFGoto result_1 -> label_1 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#VCall head +move $t0, $sp +# Arg l +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 64($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 16($sp) +#VCall out_int +move $t0, $sp +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 12($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 24($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode String_init +move $t0, $sp +# Arg l_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 32($sp) +#VCall out_string +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 20($sp) +#VCall tail +move $t0, $sp +# Arg l +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 64($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 40($sp) +#VCall print_list +move $t0, $sp +# Arg result_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 36($sp) +#AssignNode result_0 = result_8 +lw $t1, 36($sp) +sw $t1, 4($sp) +#Goto label_2 +b label_2 +#LabelNode label_1 +label_1: +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 48($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 52($sp) +#CallNode String_init +move $t0, $sp +# Arg l_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 56($sp) +#VCall out_string +move $t0, $sp +# Arg instance_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 44($sp) +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#LabelNode label_2 +label_2: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 68 +jr $ra +Main.main: +addi $sp, $sp, -140 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 5:tag List:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 5 +sw $t1, 0($t0) +la $t1, List_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, List_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode List_init +move $t0, $sp +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal List_init +sw $a1, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 36($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#VCall cons +move $t0, $sp +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 24($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 20($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 48($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 52($sp) +#VCall cons +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 56($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 60($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 64($sp) +#VCall cons +move $t0, $sp +# Arg instance_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 12($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#VCall cons +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 8($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#LoadInt 5 +li $t0, 5 +sw $t0, 84($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 88($sp) +#VCall cons +move $t0, $sp +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 4($sp) +#SetAttr Mainmylist = result_0 +lw $t0, 144($sp) +lw $t1, 4($sp) +sw $t1, 16($t0) +#LabelNode label_3 +label_3: +#GetAttr Main.mylist = Main.mylist +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 136($sp) +#VCall isNil +move $t0, $sp +# Arg Main.mylist +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 136($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 112($sp) +#GetAttr l_26 = Bool.value +lw $t0, 112($sp) +lw $t1, 16($t0) +sw $t1, 108($sp) +#UnaryOperator not l_26 +lw $t1, 108($sp) +xor $a0, $t1, 1 +sw $a0, 104($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 120($sp) +# IFGoto result_24 -> label_4 +lw $t0, 100($sp) +lw $a0, 16($t0) +bnez $a0, label_4 +#Goto label_5 +b label_5 +#LabelNode label_4 +label_4: +#GetAttr Main.mylist = Main.mylist +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 136($sp) +#VCall print_list +move $t0, $sp +# Arg Main.mylist +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 144($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 124($sp) +#GetAttr Main.mylist = Main.mylist +lw $t0, 144($sp) +lw $t1, 16($t0) +sw $t1, 136($sp) +#VCall tail +move $t0, $sp +# Arg Main.mylist +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 136($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 132($sp) +#SetAttr Mainmylist = result_32 +lw $t0, 144($sp) +lw $t1, 132($sp) +sw $t1, 16($t0) +#Goto label_3 +b label_3 +#LabelNode label_5 +label_5: +#Return result_23 +lw $a1, 96($sp) +lw $ra, 0($sp) +addi $sp, $sp, 148 +jr $ra \ No newline at end of file diff --git a/tests/codegen/new_complex.mips b/tests/codegen/new_complex.mips new file mode 100644 index 000000000..e1c9ce4c4 --- /dev/null +++ b/tests/codegen/new_complex.mips @@ -0,0 +1,2246 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +Complex_name: .asciiz "Complex" +Complex_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Complex.init +.word Complex.print +.word Complex.reflect_0 +.word Complex.reflect_X +.word Complex.reflect_Y +.word Complex.equal +.word Complex.x_value +.word Complex.y_value +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "=( +" +msg_4: .asciiz "=) +" +msg_5: .asciiz "+" +msg_6: .asciiz "I" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -160 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Complex:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Complex_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Complex_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Complex_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Complex_init +sw $a1, 12($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#VCall init +move $t0, $sp +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 4($sp) +#AssignNode c_9 = result_0 +lw $t1, 4($sp) +sw $t1, 40($sp) +#VCall reflect_X +move $t0, $sp +# Arg c_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 64($sp) +#VCall reflect_0 +move $t0, $sp +# Arg c_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 68($sp) +#AssignNode left_13 = result_15 +lw $t1, 64($sp) +sw $t1, 56($sp) +#AssignNode right_14 = result_16 +lw $t1, 68($sp) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 72($sp) +# IFGoto result_11 -> label_1 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 80($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode String_init +move $t0, $sp +# Arg l_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 88($sp) +#VCall out_string +move $t0, $sp +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 164($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 76($sp) +#AssignNode result_10 = result_18 +lw $t1, 76($sp) +sw $t1, 44($sp) +#Goto label_2 +b label_2 +#LabelNode label_1 +label_1: +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 96($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#CallNode String_init +move $t0, $sp +# Arg l_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 104($sp) +#VCall out_string +move $t0, $sp +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 164($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 92($sp) +#AssignNode result_10 = result_22 +lw $t1, 92($sp) +sw $t1, 44($sp) +#LabelNode label_2 +label_2: +#VCall reflect_X +move $t0, $sp +# Arg c_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 120($sp) +#VCall reflect_Y +move $t0, $sp +# Arg result_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 120($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 116($sp) +#VCall reflect_0 +move $t0, $sp +# Arg c_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 36($t2) +jal $t3 +sw $a1, 124($sp) +#VCall equal +move $t0, $sp +# Arg result_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_28 +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 116($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 112($sp) +# IFGoto result_27 -> label_3 +lw $t0, 112($sp) +lw $a0, 16($t0) +bnez $a0, label_3 +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 132($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#CallNode String_init +move $t0, $sp +# Arg l_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 140($sp) +#VCall out_string +move $t0, $sp +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 164($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 128($sp) +#AssignNode result_26 = result_31 +lw $t1, 128($sp) +sw $t1, 108($sp) +#Goto label_4 +b label_4 +#LabelNode label_3 +label_3: +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 148($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 152($sp) +#CallNode String_init +move $t0, $sp +# Arg l_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 156($sp) +#VCall out_string +move $t0, $sp +# Arg instance_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 164($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 144($sp) +#AssignNode result_26 = result_35 +lw $t1, 144($sp) +sw $t1, 108($sp) +#LabelNode label_4 +label_4: +#AssignNode result_39 = result_26 +lw $t1, 108($sp) +sw $t1, 160($sp) +#Return result_39 +lw $a1, 160($sp) +lw $ra, 0($sp) +addi $sp, $sp, 168 +jr $ra +Complex_init: +addi $sp, $sp, -28 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Complexx = instance_1 +lw $t0, 32($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 28($sp) +#SetAttr Complexy = instance_4 +lw $t0, 32($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Complex.init: +addi $sp, $sp, -48 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 52($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr left_2 = Int.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 56($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 24($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 52($sp) +lw $t1, 20($t0) +sw $t1, 44($sp) +#GetAttr left_8 = Int.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr right_9 = Int.value +lw $t0, 60($sp) +lw $t1, 16($t0) +sw $t1, 40($sp) +#BinaryOperator left_8 = right_9 +lw $a0, 36($sp) +lw $t1, 40($sp) +seq $a0, $a0, $t1 +sw $a0, 32($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 48($sp) +#Return self +lw $a1, 52($sp) +lw $ra, 0($sp) +addi $sp, $sp, 64 +jr $ra +Complex.print: +addi $sp, $sp, -96 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 100($sp) +lw $t1, 20($t0) +sw $t1, 76($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_3 = Int.value +lw $t0, 76($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_1 -> label_5 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_5 +#GetAttr Complex.x = Complex.x +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#VCall out_int +move $t0, $sp +# Arg Complex.x +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 56($sp) +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 64($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode String_init +move $t0, $sp +# Arg l_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 72($sp) +#VCall out_string +move $t0, $sp +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 56($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 52($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 100($sp) +lw $t1, 20($t0) +sw $t1, 76($sp) +#VCall out_int +move $t0, $sp +# Arg Complex.y +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 52($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 48($sp) +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 80($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#CallNode String_init +move $t0, $sp +# Arg l_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 88($sp) +#VCall out_string +move $t0, $sp +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 44($sp) +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#Goto label_6 +b label_6 +#LabelNode label_5 +label_5: +#GetAttr Complex.x = Complex.x +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 96($sp) +#VCall out_int +move $t0, $sp +# Arg Complex.x +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 100($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 92($sp) +#AssignNode result_0 = result_22 +lw $t1, 92($sp) +sw $t1, 4($sp) +#LabelNode label_6 +label_6: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 104 +jr $ra +Complex.reflect_0: +addi $sp, $sp, -88 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr l_7 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#UnaryOperator ~ l_7 +lw $t1, 32($sp) +neg $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_2 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 92($sp) +lw $t1, 20($t0) +sw $t1, 80($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 92($sp) +lw $t1, 20($t0) +sw $t1, 80($sp) +#GetAttr l_18 = Int.value +lw $t0, 80($sp) +lw $t1, 16($t0) +sw $t1, 76($sp) +#UnaryOperator ~ l_18 +lw $t1, 76($sp) +neg $a0, $t1 +sw $a0, 72($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 84($sp) +#GetAttr left_13 = Int.value +lw $t0, 80($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 88($sp) +#Return self +lw $a1, 92($sp) +lw $ra, 0($sp) +addi $sp, $sp, 96 +jr $ra +Complex.reflect_X: +addi $sp, $sp, -44 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 48($sp) +lw $t1, 20($t0) +sw $t1, 36($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 48($sp) +lw $t1, 20($t0) +sw $t1, 36($sp) +#GetAttr l_7 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#UnaryOperator ~ l_7 +lw $t1, 32($sp) +neg $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_2 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +#Return self +lw $a1, 48($sp) +lw $ra, 0($sp) +addi $sp, $sp, 52 +jr $ra +Complex.reflect_Y: +addi $sp, $sp, -44 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 48($sp) +lw $t1, 16($t0) +sw $t1, 36($sp) +#GetAttr l_7 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 32($sp) +#UnaryOperator ~ l_7 +lw $t1, 32($sp) +neg $a0, $t1 +sw $a0, 28($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 40($sp) +#GetAttr left_2 = Int.value +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#GetAttr right_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#BinaryOperator left_2 = right_3 +lw $a0, 12($sp) +lw $t1, 16($sp) +seq $a0, $a0, $t1 +sw $a0, 8($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +#Return self +lw $a1, 48($sp) +lw $ra, 0($sp) +addi $sp, $sp, 52 +jr $ra +Complex.equal: +addi $sp, $sp, -100 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 104($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#VCall x_value +move $t0, $sp +# Arg d +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 108($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 28($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 32($sp) +# IFGoto result_1 -> label_7 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_7 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 40($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 44($sp) +#AssignNode result_0 = instance_8 +lw $t1, 36($sp) +sw $t1, 4($sp) +#Goto label_8 +b label_8 +#LabelNode label_7 +label_7: +#GetAttr Complex.y = Complex.y +lw $t0, 104($sp) +lw $t1, 20($t0) +sw $t1, 68($sp) +#VCall y_value +move $t0, $sp +# Arg d +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 108($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 72($sp) +#GetAttr left_14 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#GetAttr right_15 = Int.value +lw $t0, 72($sp) +lw $t1, 16($t0) +sw $t1, 64($sp) +#BinaryOperator left_14 = right_15 +lw $a0, 60($sp) +lw $t1, 64($sp) +seq $a0, $a0, $t1 +sw $a0, 56($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 52($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 76($sp) +# IFGoto result_12 -> label_9 +lw $t0, 52($sp) +lw $a0, 16($t0) +bnez $a0, label_9 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 84($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 88($sp) +#AssignNode result_11 = instance_19 +lw $t1, 80($sp) +sw $t1, 48($sp) +#Goto label_10 +b label_10 +#LabelNode label_9 +label_9: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 96($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 100($sp) +#AssignNode result_11 = instance_22 +lw $t1, 92($sp) +sw $t1, 48($sp) +#LabelNode label_10 +label_10: +#AssignNode result_0 = result_11 +lw $t1, 48($sp) +sw $t1, 4($sp) +#LabelNode label_8 +label_8: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 112 +jr $ra +Complex.x_value: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.x = Complex.x +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return Complex.x +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Complex.y_value: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Complex.y = Complex.y +lw $t0, 8($sp) +lw $t1, 20($t0) +sw $t1, 4($sp) +#Return Complex.y +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra \ No newline at end of file diff --git a/tests/codegen/palindrome.mips b/tests/codegen/palindrome.mips new file mode 100644 index 000000000..5abbb53af --- /dev/null +++ b/tests/codegen/palindrome.mips @@ -0,0 +1,1720 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.pal +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "enter a string +" +msg_4: .asciiz "that was not a palindrome +" +msg_5: .asciiz "that was a palindrome +" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Maini = instance_1 +lw $t0, 20($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main.pal: +addi $sp, $sp, -276 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 284($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 24($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#GetAttr left_3 = Int.value +lw $t0, 24($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 = right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +seq $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 40($sp) +# IFGoto result_1 -> label_1 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#VCall length +move $t0, $sp +# Arg s +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 284($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 64($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 72($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 76($sp) +#GetAttr left_13 = Int.value +lw $t0, 64($sp) +lw $t1, 16($t0) +sw $t1, 56($sp) +#GetAttr right_14 = Int.value +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 60($sp) +#BinaryOperator left_13 = right_14 +lw $a0, 56($sp) +lw $t1, 60($sp) +seq $a0, $a0, $t1 +sw $a0, 52($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 48($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_11 +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 80($sp) +# IFGoto result_11 -> label_2 +lw $t0, 48($sp) +lw $a0, 16($t0) +bnez $a0, label_2 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 108($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 112($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_27 +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 116($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 124($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 128($sp) +#VCall substr +move $t0, $sp +# Arg instance_26 +lw $t1, 108($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 284($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 104($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 136($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 140($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_34 +lw $t1, 140($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 144($sp) +#VCall length +move $t0, $sp +# Arg s +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 284($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 164($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 168($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 172($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_42 +lw $t1, 172($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 176($sp) +#GetAttr left_38 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 156($sp) +#GetAttr right_39 = Int.value +lw $t0, 168($sp) +lw $t1, 16($t0) +sw $t1, 160($sp) +#BinaryOperator left_38 - right_39 +lw $a0, 156($sp) +lw $t1, 160($sp) +sub $a0, $a0, $t1 +sw $a0, 152($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 148($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_37 +lw $t1, 152($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 180($sp) +#VCall substr +move $t0, $sp +# Arg instance_33 +lw $t1, 136($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 284($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 132($sp) +#CallNode String_equals +move $t0, $sp +# Arg result_32 +lw $t1, 132($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_equals +sw $a1, 92($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 184($sp) +# IFGoto result_21 -> label_3 +lw $t0, 88($sp) +lw $a0, 16($t0) +bnez $a0, label_3 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 188($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 192($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_47 +lw $t1, 192($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_46 +lw $t1, 188($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 196($sp) +#AssignNode result_20 = instance_46 +lw $t1, 188($sp) +sw $t1, 84($sp) +#Goto label_4 +b label_4 +#LabelNode label_3 +label_3: +#VCall length +move $t0, $sp +# Arg s +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 284($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 224($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 228($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 232($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_57 +lw $t1, 232($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_56 +lw $t1, 228($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 236($sp) +#GetAttr left_53 = Int.value +lw $t0, 224($sp) +lw $t1, 16($t0) +sw $t1, 216($sp) +#GetAttr right_54 = Int.value +lw $t0, 228($sp) +lw $t1, 16($t0) +sw $t1, 220($sp) +#BinaryOperator left_53 - right_54 +lw $a0, 216($sp) +lw $t1, 220($sp) +sub $a0, $a0, $t1 +sw $a0, 212($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 208($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_52 +lw $t1, 212($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 240($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 244($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 248($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_61 +lw $t1, 248($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 252($sp) +#VCall substr +move $t0, $sp +# Arg result_51 +lw $t1, 208($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_60 +lw $t1, 244($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg s +lw $t1, 284($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 284($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 204($sp) +#VCall pal +move $t0, $sp +# Arg result_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 280($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 280($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 200($sp) +#AssignNode result_20 = result_49 +lw $t1, 200($sp) +sw $t1, 84($sp) +#LabelNode label_4 +label_4: +#AssignNode result_10 = result_20 +lw $t1, 84($sp) +sw $t1, 44($sp) +#Goto label_5 +b label_5 +#LabelNode label_2 +label_2: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 256($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 260($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 264($sp) +#AssignNode result_10 = instance_63 +lw $t1, 256($sp) +sw $t1, 44($sp) +#LabelNode label_5 +label_5: +#AssignNode result_0 = result_10 +lw $t1, 44($sp) +sw $t1, 4($sp) +#Goto label_6 +b label_6 +#LabelNode label_1 +label_1: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 268($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 272($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_67 +lw $t1, 272($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_66 +lw $t1, 268($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 276($sp) +#AssignNode result_0 = instance_66 +lw $t1, 268($sp) +sw $t1, 4($sp) +#LabelNode label_6 +label_6: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 288 +jr $ra +Main.main: +addi $sp, $sp, -92 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 24($sp) +#GetAttr l_2 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#UnaryOperator ~ l_2 +lw $t1, 12($sp) +neg $a0, $t1 +sw $a0, 8($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 28($sp) +#SetAttr Maini = result_0 +lw $t0, 96($sp) +lw $t1, 4($sp) +sw $t1, 16($t0) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 40($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 44($sp) +#CallNode String_init +move $t0, $sp +# Arg l_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 48($sp) +#VCall out_string +move $t0, $sp +# Arg instance_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 96($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 36($sp) +#VCall in_string +move $t0, $sp +# Arg self +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 96($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 60($sp) +#VCall pal +move $t0, $sp +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 96($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 56($sp) +# IFGoto result_13 -> label_7 +lw $t0, 56($sp) +lw $a0, 16($t0) +bnez $a0, label_7 +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 68($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#CallNode String_init +move $t0, $sp +# Arg l_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 76($sp) +#VCall out_string +move $t0, $sp +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 96($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 64($sp) +#AssignNode result_12 = result_15 +lw $t1, 64($sp) +sw $t1, 52($sp) +#Goto label_8 +b label_8 +#LabelNode label_7 +label_7: +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 84($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 88($sp) +#CallNode String_init +move $t0, $sp +# Arg l_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 92($sp) +#VCall out_string +move $t0, $sp +# Arg instance_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 96($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 80($sp) +#AssignNode result_12 = result_19 +lw $t1, 80($sp) +sw $t1, 52($sp) +#LabelNode label_8 +label_8: +#Return result_12 +lw $a1, 52($sp) +lw $ra, 0($sp) +addi $sp, $sp, 100 +jr $ra \ No newline at end of file diff --git a/tests/codegen/primes.mips b/tests/codegen/primes.mips new file mode 100644 index 000000000..3fe419af7 --- /dev/null +++ b/tests/codegen/primes.mips @@ -0,0 +1,1922 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "2 is trivially prime. +" +msg_4: .asciiz " is prime. +" +msg_5: .asciiz "continue" +msg_6: .asciiz "halt" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 9:Class_size +li $a0, 36 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 9 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -540 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg l_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#VCall out_string +move $t0, $sp +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 8($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 24($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 28($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 32($sp) +#SetAttr Mainout = instance_5 +lw $t0, 544($sp) +lw $t1, 24($sp) +sw $t1, 16($t0) +#GetAttr Main.out = Main.out +lw $t0, 544($sp) +lw $t1, 16($t0) +sw $t1, 464($sp) +#SetAttr Maintestee = Main.out +lw $t0, 544($sp) +lw $t1, 464($sp) +sw $t1, 20($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 44($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 48($sp) +#SetAttr Maindivisor = instance_9 +lw $t0, 544($sp) +lw $t1, 40($sp) +sw $t1, 24($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 52($sp) +#LoadInt 500 +li $t0, 500 +sw $t0, 56($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 60($sp) +#SetAttr Mainstop = instance_12 +lw $t0, 544($sp) +lw $t1, 52($sp) +sw $t1, 28($t0) +#LabelNode label_1 +label_1: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 68($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 72($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_16 +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 76($sp) +# IFGoto instance_16 -> label_2 +lw $t0, 68($sp) +lw $a0, 16($t0) +bnez $a0, label_2 +#Goto label_3 +b label_3 +#LabelNode label_2 +label_2: +#GetAttr Main.testee = Main.testee +lw $t0, 544($sp) +lw $t1, 20($t0) +sw $t1, 508($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 100($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 104($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 108($sp) +#GetAttr left_21 = Int.value +lw $t0, 508($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#GetAttr right_22 = Int.value +lw $t0, 100($sp) +lw $t1, 16($t0) +sw $t1, 92($sp) +#BinaryOperator left_21 + right_22 +lw $a0, 88($sp) +lw $t1, 92($sp) +add $a0, $a0, $t1 +sw $a0, 84($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 80($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 112($sp) +#SetAttr Maintestee = result_19 +lw $t0, 544($sp) +lw $t1, 80($sp) +sw $t1, 20($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 120($sp) +#LoadInt 2 +li $t0, 2 +sw $t0, 124($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_30 +lw $t1, 124($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_29 +lw $t1, 120($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 128($sp) +#SetAttr Maindivisor = instance_29 +lw $t0, 544($sp) +lw $t1, 120($sp) +sw $t1, 24($t0) +#LabelNode label_4 +label_4: +#GetAttr Main.testee = Main.testee +lw $t0, 544($sp) +lw $t1, 20($t0) +sw $t1, 508($sp) +#GetAttr Main.divisor = Main.divisor +lw $t0, 544($sp) +lw $t1, 24($t0) +sw $t1, 428($sp) +#GetAttr Main.divisor = Main.divisor +lw $t0, 544($sp) +lw $t1, 24($t0) +sw $t1, 428($sp) +#GetAttr left_42 = Int.value +lw $t0, 428($sp) +lw $t1, 16($t0) +sw $t1, 172($sp) +#GetAttr right_43 = Int.value +lw $t0, 428($sp) +lw $t1, 16($t0) +sw $t1, 176($sp) +#BinaryOperator left_42 * right_43 +lw $a0, 172($sp) +lw $t1, 176($sp) +mul $a0, $a0, $t1 +sw $a0, 168($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 164($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_41 +lw $t1, 168($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_40 +lw $t1, 164($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 188($sp) +#GetAttr left_37 = Int.value +lw $t0, 508($sp) +lw $t1, 16($t0) +sw $t1, 152($sp) +#GetAttr right_38 = Int.value +lw $t0, 164($sp) +lw $t1, 16($t0) +sw $t1, 156($sp) +#BinaryOperator left_37 < right_38 +lw $a0, 152($sp) +lw $t1, 156($sp) +slt $a0, $a0, $t1 +sw $a0, 148($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 144($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_36 +lw $t1, 148($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_35 +lw $t1, 144($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 192($sp) +# IFGoto result_35 -> label_7 +lw $t0, 144($sp) +lw $a0, 16($t0) +bnez $a0, label_7 +#GetAttr Main.testee = Main.testee +lw $t0, 544($sp) +lw $t1, 20($t0) +sw $t1, 508($sp) +#GetAttr Main.divisor = Main.divisor +lw $t0, 544($sp) +lw $t1, 24($t0) +sw $t1, 428($sp) +#GetAttr Main.testee = Main.testee +lw $t0, 544($sp) +lw $t1, 20($t0) +sw $t1, 508($sp) +#GetAttr Main.divisor = Main.divisor +lw $t0, 544($sp) +lw $t1, 24($t0) +sw $t1, 428($sp) +#GetAttr left_65 = Int.value +lw $t0, 508($sp) +lw $t1, 16($t0) +sw $t1, 264($sp) +#GetAttr right_66 = Int.value +lw $t0, 428($sp) +lw $t1, 16($t0) +sw $t1, 268($sp) +#BinaryOperator left_65 / right_66 +lw $a0, 264($sp) +lw $t1, 268($sp) +beq $t1, 0, div_zero_error +div $a0, $a0, $t1 +sw $a0, 260($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 256($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_64 +lw $t1, 260($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_63 +lw $t1, 256($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 280($sp) +#GetAttr left_60 = Int.value +lw $t0, 428($sp) +lw $t1, 16($t0) +sw $t1, 244($sp) +#GetAttr right_61 = Int.value +lw $t0, 256($sp) +lw $t1, 16($t0) +sw $t1, 248($sp) +#BinaryOperator left_60 * right_61 +lw $a0, 244($sp) +lw $t1, 248($sp) +mul $a0, $a0, $t1 +sw $a0, 240($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 236($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_59 +lw $t1, 240($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_58 +lw $t1, 236($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 284($sp) +#GetAttr left_55 = Int.value +lw $t0, 508($sp) +lw $t1, 16($t0) +sw $t1, 224($sp) +#GetAttr right_56 = Int.value +lw $t0, 236($sp) +lw $t1, 16($t0) +sw $t1, 228($sp) +#BinaryOperator left_55 - right_56 +lw $a0, 224($sp) +lw $t1, 228($sp) +sub $a0, $a0, $t1 +sw $a0, 220($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 216($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_54 +lw $t1, 220($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_53 +lw $t1, 216($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 288($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 292($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 296($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_73 +lw $t1, 296($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_72 +lw $t1, 292($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 300($sp) +#GetAttr left_51 = Int.value +lw $t0, 216($sp) +lw $t1, 16($t0) +sw $t1, 208($sp) +#GetAttr right_52 = Int.value +lw $t0, 292($sp) +lw $t1, 16($t0) +sw $t1, 212($sp) +#BinaryOperator left_51 = right_52 +lw $a0, 208($sp) +lw $t1, 212($sp) +seq $a0, $a0, $t1 +sw $a0, 204($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 200($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_50 +lw $t1, 204($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_49 +lw $t1, 200($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 304($sp) +# IFGoto result_49 -> label_8 +lw $t0, 200($sp) +lw $a0, 16($t0) +bnez $a0, label_8 +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 308($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 312($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_77 +lw $t1, 312($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_76 +lw $t1, 308($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 316($sp) +#AssignNode result_48 = instance_76 +lw $t1, 308($sp) +sw $t1, 196($sp) +#Goto label_9 +b label_9 +#LabelNode label_8 +label_8: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 320($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 324($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_80 +lw $t1, 324($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_79 +lw $t1, 320($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 328($sp) +#AssignNode result_48 = instance_79 +lw $t1, 320($sp) +sw $t1, 196($sp) +#LabelNode label_9 +label_9: +#AssignNode result_34 = result_48 +lw $t1, 196($sp) +sw $t1, 140($sp) +#Goto label_10 +b label_10 +#LabelNode label_7 +label_7: +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 332($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 336($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_83 +lw $t1, 336($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_82 +lw $t1, 332($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 340($sp) +#AssignNode result_34 = instance_82 +lw $t1, 332($sp) +sw $t1, 140($sp) +#LabelNode label_10 +label_10: +# IFGoto result_34 -> label_5 +lw $t0, 140($sp) +lw $a0, 16($t0) +bnez $a0, label_5 +#Goto label_6 +b label_6 +#LabelNode label_5 +label_5: +#GetAttr Main.divisor = Main.divisor +lw $t0, 544($sp) +lw $t1, 24($t0) +sw $t1, 428($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 364($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 368($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_91 +lw $t1, 368($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_90 +lw $t1, 364($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 372($sp) +#GetAttr left_87 = Int.value +lw $t0, 428($sp) +lw $t1, 16($t0) +sw $t1, 352($sp) +#GetAttr right_88 = Int.value +lw $t0, 364($sp) +lw $t1, 16($t0) +sw $t1, 356($sp) +#BinaryOperator left_87 + right_88 +lw $a0, 352($sp) +lw $t1, 356($sp) +add $a0, $a0, $t1 +sw $a0, 348($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 344($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_86 +lw $t1, 348($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_85 +lw $t1, 344($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 376($sp) +#SetAttr Maindivisor = result_85 +lw $t0, 544($sp) +lw $t1, 344($sp) +sw $t1, 24($t0) +#Goto label_4 +b label_4 +#LabelNode label_6 +label_6: +#GetAttr Main.testee = Main.testee +lw $t0, 544($sp) +lw $t1, 20($t0) +sw $t1, 508($sp) +#GetAttr Main.divisor = Main.divisor +lw $t0, 544($sp) +lw $t1, 24($t0) +sw $t1, 428($sp) +#GetAttr Main.divisor = Main.divisor +lw $t0, 544($sp) +lw $t1, 24($t0) +sw $t1, 428($sp) +#GetAttr left_103 = Int.value +lw $t0, 428($sp) +lw $t1, 16($t0) +sw $t1, 416($sp) +#GetAttr right_104 = Int.value +lw $t0, 428($sp) +lw $t1, 16($t0) +sw $t1, 420($sp) +#BinaryOperator left_103 * right_104 +lw $a0, 416($sp) +lw $t1, 420($sp) +mul $a0, $a0, $t1 +sw $a0, 412($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 408($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_102 +lw $t1, 412($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_101 +lw $t1, 408($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 432($sp) +#GetAttr left_98 = Int.value +lw $t0, 508($sp) +lw $t1, 16($t0) +sw $t1, 396($sp) +#GetAttr right_99 = Int.value +lw $t0, 408($sp) +lw $t1, 16($t0) +sw $t1, 400($sp) +#BinaryOperator left_98 < right_99 +lw $a0, 396($sp) +lw $t1, 400($sp) +slt $a0, $a0, $t1 +sw $a0, 392($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 388($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_97 +lw $t1, 392($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_96 +lw $t1, 388($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 436($sp) +# IFGoto result_96 -> label_11 +lw $t0, 388($sp) +lw $a0, 16($t0) +bnez $a0, label_11 +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 440($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 444($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_110 +lw $t1, 444($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_109 +lw $t1, 440($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 448($sp) +#AssignNode result_95 = instance_109 +lw $t1, 440($sp) +sw $t1, 384($sp) +#Goto label_12 +b label_12 +#LabelNode label_11 +label_11: +#GetAttr Main.testee = Main.testee +lw $t0, 544($sp) +lw $t1, 20($t0) +sw $t1, 508($sp) +#SetAttr Mainout = Main.testee +lw $t0, 544($sp) +lw $t1, 508($sp) +sw $t1, 16($t0) +#GetAttr Main.out = Main.out +lw $t0, 544($sp) +lw $t1, 16($t0) +sw $t1, 464($sp) +#VCall out_int +move $t0, $sp +# Arg Main.out +lw $t1, 464($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 460($sp) +#LoadStr msg_4 +la $t0, msg_4 +sw $t0, 472($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 476($sp) +#CallNode String_init +move $t0, $sp +# Arg l_117 +lw $t1, 472($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 480($sp) +#VCall out_string +move $t0, $sp +# Arg instance_118 +lw $t1, 476($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 544($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 544($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 468($sp) +#AssignNode result_95 = result_116 +lw $t1, 468($sp) +sw $t1, 384($sp) +#LabelNode label_12 +label_12: +#GetAttr Main.stop = Main.stop +lw $t0, 544($sp) +lw $t1, 28($t0) +sw $t1, 504($sp) +#GetAttr Main.testee = Main.testee +lw $t0, 544($sp) +lw $t1, 20($t0) +sw $t1, 508($sp) +#GetAttr left_123 = Int.value +lw $t0, 504($sp) +lw $t1, 16($t0) +sw $t1, 496($sp) +#GetAttr right_124 = Int.value +lw $t0, 508($sp) +lw $t1, 16($t0) +sw $t1, 500($sp) +#BinaryOperator left_123 <= right_124 +lw $a0, 496($sp) +lw $t1, 500($sp) +sle $a0, $a0, $t1 +sw $a0, 492($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 488($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_122 +lw $t1, 492($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_121 +lw $t1, 488($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 512($sp) +# IFGoto result_121 -> label_13 +lw $t0, 488($sp) +lw $a0, 16($t0) +bnez $a0, label_13 +#LoadStr msg_5 +la $t0, msg_5 +sw $t0, 516($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 520($sp) +#CallNode String_init +move $t0, $sp +# Arg l_128 +lw $t1, 516($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_129 +lw $t1, 520($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 524($sp) +#AssignNode result_120 = instance_129 +lw $t1, 520($sp) +sw $t1, 484($sp) +#Goto label_14 +b label_14 +#LabelNode label_13 +label_13: +#LoadStr msg_6 +la $t0, msg_6 +sw $t0, 532($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 536($sp) +#CallNode String_init +move $t0, $sp +# Arg l_132 +lw $t1, 532($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_133 +lw $t1, 536($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 540($sp) +#VCall abort +move $t0, $sp +# Arg instance_133 +lw $t1, 536($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 536($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 528($sp) +#AssignNode result_120 = result_131 +lw $t1, 528($sp) +sw $t1, 484($sp) +#LabelNode label_14 +label_14: +#Goto label_1 +b label_1 +#LabelNode label_3 +label_3: +#SetAttr Mainm = result_15 +lw $t0, 544($sp) +lw $t1, 64($sp) +sw $t1, 32($t0) +lw $ra, 0($sp) +addi $sp, $sp, 548 +jr $ra +Main.main: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra \ No newline at end of file diff --git a/tests/codegen/print-cool.mips b/tests/codegen/print-cool.mips new file mode 100644 index 000000000..3b4d5f340 --- /dev/null +++ b/tests/codegen/print-cool.mips @@ -0,0 +1,1031 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 2:tag Main:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.main: +addi $sp, $sp, -108 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 0:tag Object:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 0 +sw $t1, 0($t0) +la $t1, Object_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Object_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode Object_init +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Object_init +sw $a1, 24($sp) +#VCall type_name +move $t0, $sp +# Arg result_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 4($t2) +jal $t3 +sw $a1, 16($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 28($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 32($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 36($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 40($sp) +#LoadInt 4 +li $t0, 4 +sw $t0, 44($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 48($sp) +#VCall substr +move $t0, $sp +# Arg instance_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 12($sp) +#VCall out_string +move $t0, $sp +# Arg result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 112($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 8($sp) +#IsVoid self +la $t0, void +lw $t1, 112($sp) +seq $a0, $t0, $t1 +sw $a0, 60($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 64($sp) +#CallNode Bool_init +move $t0, $sp +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 60($sp) +#Return instance_15 +lw $a1, 64($sp) +#VCall type_name +move $t0, $sp +# Arg instance_15 +lw $t1, 64($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 64($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 4($t2) +jal $t3 +sw $a1, 56($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 72($sp) +#LoadInt 3 +li $t0, 3 +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 84($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 88($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_21 +lw $t1, 88($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 92($sp) +#VCall substr +move $t0, $sp +# Arg instance_17 +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_20 +lw $t1, 84($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_13 +lw $t1, 56($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 56($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 20($t2) +jal $t3 +sw $a1, 52($sp) +#VCall out_string +move $t0, $sp +# Arg result_12 +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 100($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 104($sp) +#CallNode String_init +move $t0, $sp +# Arg l_24 +lw $t1, 100($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 108($sp) +#VCall out_string +move $t0, $sp +# Arg instance_25 +lw $t1, 104($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 112($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 112($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 96($sp) +#Return result_23 +lw $a1, 96($sp) +lw $ra, 0($sp) +addi $sp, $sp, 116 +jr $ra \ No newline at end of file diff --git a/tests/codegen/sort-list.mips b/tests/codegen/sort-list.mips new file mode 100644 index 000000000..09a6d74e1 --- /dev/null +++ b/tests/codegen/sort-list.mips @@ -0,0 +1,2242 @@ +.data +div_zero: .asciiz "Runtime Error: Division by zero" +dispatch_void: .asciiz "Runtime Error: A dispatch with void" +case_void: .asciiz "Runtime Error: A case with void" +case_no_match: .asciiz "Runtime Error: Execution of a case statement without a matching branch" +heap: .asciiz "Runtime Error: Heap overflow" +substr: .asciiz "Runtime Error: Index for substring out of range" +input_str: .space 2048 +void: .word 0 +Object_name: .asciiz "Object" +Object_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +Int_name: .asciiz "Int" +Int_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +String_name: .asciiz "String" +String_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word String.length +.word String.concat +.word String.substr +Bool_name: .asciiz "Bool" +Bool_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +IO_name: .asciiz "IO" +IO_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +List_name: .asciiz "List" +List_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word List.isNil +.word List.cons +.word List.car +.word List.cdr +.word List.rev +.word List.sort +.word List.insert +.word List.rcons +.word List.print_list +Cons_name: .asciiz "Cons" +Cons_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Cons.isNil +.word List.cons +.word Cons.car +.word Cons.cdr +.word Cons.rev +.word Cons.sort +.word Cons.insert +.word Cons.rcons +.word Cons.print_list +.word Cons.init +Nil_name: .asciiz "Nil" +Nil_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Nil.isNil +.word List.cons +.word List.car +.word List.cdr +.word Nil.rev +.word Nil.sort +.word Nil.insert +.word Nil.rcons +.word Nil.print_list +Main_name: .asciiz "Main" +Main_methods: +.word Object.abort +.word Object.type_name +.word Object.copy +.word IO.out_string +.word IO.out_int +.word IO.in_string +.word IO.in_int +.word Main.iota +.word Main.main +msg_0: .asciiz "Abort called from class " +msg_1: .asciiz " +" +empty_str: .asciiz "" +msg_3: .asciiz "How many numbers to sort? " +.text +div_zero_error: +la $a0, div_zero +li $v0, 4 +syscall +li $v0, 10 +syscall +dispatch_void_error: +la $a0, dispatch_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_void_error: +la $a0, case_void +li $v0, 4 +syscall +li $v0, 10 +syscall +case_no_match_error: +la $a0, case_no_match +li $v0, 4 +syscall +li $v0, 10 +syscall +heap_error: +la $a0, heap +li $v0, 4 +syscall +li $v0, 10 +syscall +substr_error: +la $a0, substr +li $v0, 4 +syscall +li $v0, 10 +syscall +main: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Main:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Main_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Main_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Main_init +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main_init +sw $a1, 8($sp) +#CallNode Main.main +move $t0, $sp +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Main.main +sw $a1, 8($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Object_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Object.abort: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_0 +la $t0, msg_0 +sw $t0, 4($sp) +#PrintString msg_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 8($sp) +#PrintString class_name_1 +lw $a0, 8($sp) +li $v0, 4 +syscall +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 12($sp) +#PrintString eol_2 +lw $a0, 12($sp) +li $v0, 4 +syscall +#Abort +li $v0, 10 +syscall +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.type_name: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#TypeOf self +lw $t0, 16($sp) +lw $t1, 4($t0) +sw $t1, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg class_name_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Object.copy: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Copy self +lw $t0, 8($sp) +lw $a0, 8($t0) +mul $a0, $a0, 4 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t1, $v0 +li $a0, 0 +lw $t3, 8($t0) +copy_object: +lw $t2, 0($t0) +sw $t2, 0($t1) +addi $t0, $t0, 4 +addi $t1, $t1, 4 +addi $a0, $a0, 1 +blt $a0, $t3, copy_object +sw $v0, 4($sp) +#Return object_copy_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +IO_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +IO.out_string: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = String.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintString v_0 +lw $a0, 4($sp) +li $v0, 4 +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.out_int: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr v_0 = Int.value +lw $t0, 12($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#PrintInteger v_0 +li $v0, 1 +lw $a0, 4($sp) +syscall +#Return self +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +IO.in_string: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadString read_string_0 +la $a0, input_str +li $a1, 2048 +li $v0, 8 +syscall +move $t0, $a0 +read_char: +li $t1, 0 +lb $t1, 0($t0) +beqz $t1, remove_characters_str_end +addi $t0, $t0, 1 +j read_char +remove_characters_str_end: +addi $t0, $t0, -1 +li $t1, 0 +lb $t1, 0($t0) +bne $t1, 10, rcs_end +sb $0, 0($t0) +addi $t0, $t0, -1 +lb $t1, 0($t0) +bne $t1, 13, rcs_end +sb $0, 0($t0) +j remove_characters_str_end +rcs_end: +sw $a0, 4($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode String_init +move $t0, $sp +# Arg read_string_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +IO.in_int: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#ReadInteger read_int_0 +li $v0, 5 +syscall +sw $v0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg read_int_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Int_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Intvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Stringvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String.length: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Length of self +lw $t0, 16($sp) +lw $t0, 16($t0) +li $a0, 0 +count: +lb $t1, 0($t0) +beqz $t1, end +addi $t0, $t0, 1 +addi $a0, $a0, 1 +j count +end: +sw $a0, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg length_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +String.concat: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 40($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#CallNode String.length +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 8($sp) +#GetAttr str2_2 = String.value +lw $t0, 44($sp) +lw $t1, 16($t0) +sw $t1, 12($sp) +#CallNode String.length +move $t0, $sp +# Arg s +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String.length +sw $a1, 16($sp) +#GetAttr len1_value_4 = Int.value +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#GetAttr len2_value_5 = Int.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#Concat str1_0 str2_2 +lw $a0, 20($sp) +lw $t0, 24($sp) +add $a0, $a0, $t0 +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t3, $v0 +lw $t0, 4($sp) +lw $t1, 12($sp) +copy_str: +lb $t2, 0($t0) +sb $t2, 0($v0) +beqz $t2, concat_str +addi $t0, $t0, 1 +addi $v0, $v0, 1 +j copy_str +concat_str: +lb $t2, 0($t1) +sb $t2, 0($v0) +beqz $t2, end_concat_str +addi $t1, $t1, 1 +addi $v0, $v0, 1 +j concat_str +end_concat_str: +sb $0, ($v0) +sw $t3, 28($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 32($sp) +#CallNode String_init +move $t0, $sp +# Arg result_string_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 36($sp) +#Return instance_7 +lw $a1, 32($sp) +lw $ra, 0($sp) +addi $sp, $sp, 48 +jr $ra +String.substr: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr i_value_0 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr l_value_1 = Int.value +lw $t0, 32($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#Substr self:string i_value_0:index l_value_1:length +lw $a0, 8($sp) +addi $a0, $a0, 1 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +lw $t0, 4($sp) +lw $t1, 8($sp) +lw $t4, 24($sp) +lw $t2, 16($t4) +bltz $t0, substr_error +li $a0, 0 +skip_char: +beq $a0, $t0, end_skip +addi $a0, $a0, 1 +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +j skip_char +end_skip: +li $a0, 0 +move $t3, $v0 +substr_copy: +beq $a0, $t1, end_substr_copy +li $t0, 0 +lb $t0, 0($t2) +sb $t0, 0($v0) +addi $t2, $t2, 1 +beq $t2, $zero, substr_error +addi $v0, $v0, 1 +addi $a0, $a0, 1 +j substr_copy +end_substr_copy: +sb $0, ($v0) +sw $t3, 12($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#CallNode String_init +move $t0, $sp +# Arg substr_result_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 20($sp) +#Return instance_3 +lw $a1, 16($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Bool_init: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Boolvalue = v +lw $t0, 4($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +String_equals: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr str1_0 = String.value +lw $t0, 16($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#GetAttr str2_1 = String.value +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#StringEquals str1_0 = str2_1 +lw $t1, 4($sp) +lw $t2, 8($sp) +compare_str: +li $t3, 0 +lb $t3, 0($t1) +li $t4, 0 +lb $t4, 0($t2) +seq $a0, $t3, $t4 +beqz $a0, end_compare_str +beqz $t3, end_compare_str +beqz $t4, end_compare_str +addi $t1, $t1, 1 +addi $t2, $t2, 1 +j compare_str +end_compare_str: +sw $a0, 12($sp) +#Return result_2 +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +List_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +List.isNil: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 12($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 16($sp) +#Return instance_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +List.cons: +addi $sp, $sp, -20 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 8($sp) +#AssignNode new_cell_2 = result_0 +lw $t1, 4($sp) +sw $t1, 12($sp) +#VCall init +move $t0, $sp +# Arg self +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg hd +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg new_cell_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 64($t2) +jal $t3 +sw $a1, 16($sp) +#AssignNode result_4 = result_3 +lw $t1, 16($sp) +sw $t1, 20($sp) +#Return result_4 +lw $a1, 20($sp) +lw $ra, 0($sp) +addi $sp, $sp, 32 +jr $ra +List.car: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Int_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 12($sp) +#Return result_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +List.cdr: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 16($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Allocate 2:tag List:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, List_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, List_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode List_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal List_init +sw $a1, 12($sp) +#Return result_1 +lw $a1, 8($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +List.rev: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall cdr +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +List.sort: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall cdr +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +List.insert: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall cdr +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +List.rcons: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall cdr +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 40($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +List.print_list: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall abort +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 0($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons_init: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode List_init +move $t0, $sp +# Arg self +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal List_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 12($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 16($sp) +#SetAttr Consxcar = instance_1 +lw $t0, 20($sp) +lw $t1, 8($sp) +sw $t1, 16($t0) +#SetAttr Consxcdr = void +lw $t0, 20($sp) +la $t1, void +sw $t1, 20($t0) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Cons.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Cons.init: +addi $sp, $sp, -8 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#SetAttr Consxcar = hd +lw $t0, 12($sp) +lw $t1, 16($sp) +sw $t1, 16($t0) +#SetAttr Consxcdr = tl +lw $t0, 12($sp) +lw $t1, 20($sp) +sw $t1, 20($t0) +#Return self +lw $a1, 12($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Cons.car: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 8($sp) +lw $t1, 16($t0) +sw $t1, 4($sp) +#Return Cons.xcar +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons.cdr: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 8($sp) +lw $t1, 20($t0) +sw $t1, 4($sp) +#Return Cons.xcdr +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Cons.rev: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 20($sp) +lw $t1, 20($t0) +sw $t1, 12($sp) +#VCall rev +move $t0, $sp +# Arg Cons.xcdr +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 8($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#VCall rcons +move $t0, $sp +# Arg Cons.xcar +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Cons.sort: +addi $sp, $sp, -16 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 20($sp) +lw $t1, 20($t0) +sw $t1, 12($sp) +#VCall sort +move $t0, $sp +# Arg Cons.xcdr +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 12($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 8($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 20($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#VCall insert +move $t0, $sp +# Arg Cons.xcar +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Cons.insert: +addi $sp, $sp, -64 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#GetAttr left_3 = Int.value +lw $t0, 72($sp) +lw $t1, 16($t0) +sw $t1, 16($sp) +#GetAttr right_4 = Int.value +lw $t0, 52($sp) +lw $t1, 16($t0) +sw $t1, 20($sp) +#BinaryOperator left_3 < right_4 +lw $a0, 16($sp) +lw $t1, 20($sp) +slt $a0, $a0, $t1 +sw $a0, 12($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 28($sp) +# IFGoto result_1 -> label_1 +lw $t0, 8($sp) +lw $a0, 16($t0) +bnez $a0, label_1 +#Allocate 3:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 40($sp) +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 68($sp) +lw $t1, 20($t0) +sw $t1, 48($sp) +#VCall insert +move $t0, $sp +# Arg i +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Cons.xcdr +lw $t1, 48($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 48($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 52($t2) +jal $t3 +sw $a1, 44($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 68($sp) +lw $t1, 16($t0) +sw $t1, 52($sp) +#VCall init +move $t0, $sp +# Arg result_10 +lw $t1, 44($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Cons.xcar +lw $t1, 52($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 36($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 64($t2) +jal $t3 +sw $a1, 32($sp) +#AssignNode result_0 = result_7 +lw $t1, 32($sp) +sw $t1, 4($sp) +#Goto label_2 +b label_2 +#LabelNode label_1 +label_1: +#Allocate 3:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 64($sp) +#VCall init +move $t0, $sp +# Arg self +lw $t1, 68($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i +lw $t1, 72($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 64($t2) +jal $t3 +sw $a1, 56($sp) +#AssignNode result_0 = result_13 +lw $t1, 56($sp) +sw $t1, 4($sp) +#LabelNode label_2 +label_2: +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 76 +jr $ra +Cons.rcons: +addi $sp, $sp, -24 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 12($sp) +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 28($sp) +lw $t1, 20($t0) +sw $t1, 20($sp) +#VCall rcons +move $t0, $sp +# Arg i +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Cons.xcdr +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 20($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 16($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 24($sp) +#VCall init +move $t0, $sp +# Arg result_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg Cons.xcar +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 64($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 36 +jr $ra +Cons.print_list: +addi $sp, $sp, -32 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#GetAttr Cons.xcar = Cons.xcar +lw $t0, 36($sp) +lw $t1, 16($t0) +sw $t1, 8($sp) +#VCall out_int +move $t0, $sp +# Arg Cons.xcar +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 36($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 16($t2) +jal $t3 +sw $a1, 4($sp) +#LoadStr msg_1 +la $t0, msg_1 +sw $t0, 16($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 20($sp) +#CallNode String_init +move $t0, $sp +# Arg l_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 24($sp) +#VCall out_string +move $t0, $sp +# Arg instance_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 36($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 12($sp) +#GetAttr Cons.xcdr = Cons.xcdr +lw $t0, 36($sp) +lw $t1, 20($t0) +sw $t1, 32($sp) +#VCall print_list +move $t0, $sp +# Arg Cons.xcdr +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 32($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 60($t2) +jal $t3 +sw $a1, 28($sp) +#Return result_6 +lw $a1, 28($sp) +lw $ra, 0($sp) +addi $sp, $sp, 40 +jr $ra +Nil_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode List_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal List_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Nil.isNil: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Nil.rev: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return self +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Nil.sort: +addi $sp, $sp, 0 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Return self +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 8 +jr $ra +Nil.insert: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#VCall rcons +move $t0, $sp +# Arg i +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 56($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 16 +jr $ra +Nil.rcons: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 8($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 12($sp) +#VCall init +move $t0, $sp +# Arg self +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg i +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 8($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 64($t2) +jal $t3 +sw $a1, 4($sp) +#Return result_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 24 +jr $ra +Nil.print_list: +addi $sp, $sp, -12 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 8($sp) +#CallNode Bool_init +move $t0, $sp +# Arg value_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 12($sp) +#Return instance_0 +lw $a1, 4($sp) +lw $ra, 0($sp) +addi $sp, $sp, 20 +jr $ra +Main_init: +addi $sp, $sp, -4 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#CallNode IO_init +move $t0, $sp +# Arg self +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal IO_init +sw $a1, 4($sp) +#Return None +move $a1, $zero +#SetAttr Mainl = void +lw $t0, 8($sp) +la $t1, void +sw $t1, 16($t0) +lw $ra, 0($sp) +addi $sp, $sp, 12 +jr $ra +Main.iota: +addi $sp, $sp, -116 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#Allocate 4:tag Nil:Class_name 4:Class_size +li $a0, 16 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Nil_name +sw $t1, 4($t0) +li $t1, 4 +sw $t1, 8($t0) +la $t1, Nil_methods +sw $t1, 12($t0) +sw $t0, 4($sp) +#CallNode Nil_init +move $t0, $sp +# Arg result_0 +lw $t1, 4($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Nil_init +sw $a1, 8($sp) +#SetAttr Mainl = result_0 +lw $t0, 120($sp) +lw $t1, 4($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 16($sp) +#LoadInt 0 +li $t0, 0 +sw $t0, 20($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_4 +lw $t1, 20($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_3 +lw $t1, 16($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 24($sp) +#AssignNode j_6 = instance_3 +lw $t1, 16($sp) +sw $t1, 28($sp) +#LabelNode label_3 +label_3: +#GetAttr left_10 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 44($sp) +#GetAttr right_11 = Int.value +lw $t0, 124($sp) +lw $t1, 16($t0) +sw $t1, 48($sp) +#BinaryOperator left_10 < right_11 +lw $a0, 44($sp) +lw $t1, 48($sp) +slt $a0, $a0, $t1 +sw $a0, 40($sp) +#Allocate 3:tag Bool:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Bool_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Bool_methods +sw $t1, 12($t0) +sw $t0, 36($sp) +#CallNode Bool_init +move $t0, $sp +# Arg op_9 +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Bool_init +sw $a1, 52($sp) +# IFGoto result_8 -> label_4 +lw $t0, 36($sp) +lw $a0, 16($t0) +bnez $a0, label_4 +#Goto label_5 +b label_5 +#LabelNode label_4 +label_4: +#Allocate 3:tag Cons:Class_name 6:Class_size +li $a0, 24 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 3 +sw $t1, 0($t0) +la $t1, Cons_name +sw $t1, 4($t0) +li $t1, 6 +sw $t1, 8($t0) +la $t1, Cons_methods +sw $t1, 12($t0) +sw $t0, 60($sp) +#CallNode Cons_init +move $t0, $sp +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Cons_init +sw $a1, 64($sp) +#GetAttr Main.l = Main.l +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#VCall init +move $t0, $sp +# Arg Main.l +lw $t1, 116($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg j_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_14 +lw $t1, 60($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 60($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 64($t2) +jal $t3 +sw $a1, 56($sp) +#SetAttr Mainl = result_13 +lw $t0, 120($sp) +lw $t1, 56($sp) +sw $t1, 16($t0) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 92($sp) +#LoadInt 1 +li $t0, 1 +sw $t0, 96($sp) +#CallNode Int_init +move $t0, $sp +# Arg value_23 +lw $t1, 96($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_22 +lw $t1, 92($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 100($sp) +#GetAttr left_20 = Int.value +lw $t0, 28($sp) +lw $t1, 16($t0) +sw $t1, 84($sp) +#GetAttr right_21 = Int.value +lw $t0, 92($sp) +lw $t1, 16($t0) +sw $t1, 88($sp) +#BinaryOperator left_20 + right_21 +lw $a0, 84($sp) +lw $t1, 88($sp) +add $a0, $a0, $t1 +sw $a0, 80($sp) +#Allocate 4:tag Int:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 4 +sw $t1, 0($t0) +la $t1, Int_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, Int_methods +sw $t1, 12($t0) +sw $t0, 76($sp) +#CallNode Int_init +move $t0, $sp +# Arg op_19 +lw $t1, 80($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg result_18 +lw $t1, 76($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal Int_init +sw $a1, 104($sp) +#AssignNode j_6 = result_18 +lw $t1, 76($sp) +sw $t1, 28($sp) +#Goto label_3 +b label_3 +#LabelNode label_5 +label_5: +#AssignNode result_27 = result_7 +lw $t1, 32($sp) +sw $t1, 112($sp) +#GetAttr Main.l = Main.l +lw $t0, 120($sp) +lw $t1, 16($t0) +sw $t1, 116($sp) +#Return Main.l +lw $a1, 116($sp) +lw $ra, 0($sp) +addi $sp, $sp, 128 +jr $ra +Main.main: +addi $sp, $sp, -36 +addi $sp, $sp, -4 +sw $ra, 0($sp) +#LoadStr msg_3 +la $t0, msg_3 +sw $t0, 8($sp) +#Allocate 2:tag String:Class_name 5:Class_size +li $a0, 20 +li $v0, 9 +syscall +bge $v0, $sp, heap_error +move $t0, $v0 +li $t1, 2 +sw $t1, 0($t0) +la $t1, String_name +sw $t1, 4($t0) +li $t1, 5 +sw $t1, 8($t0) +la $t1, String_methods +sw $t1, 12($t0) +sw $t0, 12($sp) +#CallNode String_init +move $t0, $sp +# Arg l_1 +lw $t1, 8($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +jal String_init +sw $a1, 16($sp) +#VCall out_string +move $t0, $sp +# Arg instance_2 +lw $t1, 12($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 12($t2) +jal $t3 +sw $a1, 4($sp) +#VCall in_int +move $t0, $sp +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 24($t2) +jal $t3 +sw $a1, 36($sp) +#VCall iota +move $t0, $sp +# Arg result_8 +lw $t1, 36($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +# Arg self +lw $t1, 40($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 40($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 28($t2) +jal $t3 +sw $a1, 32($sp) +#VCall rev +move $t0, $sp +# Arg result_7 +lw $t1, 32($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 32($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 44($t2) +jal $t3 +sw $a1, 28($sp) +#VCall sort +move $t0, $sp +# Arg result_6 +lw $t1, 28($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 28($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 48($t2) +jal $t3 +sw $a1, 24($sp) +#VCall print_list +move $t0, $sp +# Arg result_5 +lw $t1, 24($t0) +addi $sp, $sp, -4 +sw $t1, 0($sp) +lw $t1, 24($t0) +la $t0, void +beq $t1, $t0, dispatch_void_error +lw $t2, 12($t1) +lw $t3, 60($t2) +jal $t3 +sw $a1, 20($sp) +#Return result_4 +lw $a1, 20($sp) +lw $ra, 0($sp) +addi $sp, $sp, 44 +jr $ra \ No newline at end of file

    d;h|Tyf2BJx$F58r)qn+s_Wb7PG~VS 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 literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/idna-2.8-py2.py3-none-any.whl b/src/venv/share/python-wheels/idna-2.8-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..ccd236bb6af5316cca3d6aeabc833a850ca5fe6f GIT binary patch literal 66836 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 LG#O%I0_pz%fE>V+ literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/ipaddr-2.2.0-py2.py3-none-any.whl b/src/venv/share/python-wheels/ipaddr-2.2.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..d013ec5464b7eb58325671b6f9de8b02924ac0e3 GIT binary patch literal 24287 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 literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl b/src/venv/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..26ddc279bd7400208b59107424644e90bc2542c4 GIT binary patch literal 21972 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�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 WreC%X;pQn(48qG^m>{b_1qOI>gfV6 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 D!hs;O literal 0 HcmV?d00001 diff --git a/src/venv/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl b/src/venv/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..3ce172aef81d1309f5979db370537c34f21560cb GIT binary patch literal 26686 zcmaHRLzHO2wq)71ZQHi3TefZ6wySR0wr$(CZT9_>?tZ`5??DdE8SIReD^F{rhWgV$aIRPRl^YLB~XAY~kcgYhi0@M=z+V zA|bD&Oy}(G9OEq;x5d@5UW8?JD0oI>VU-C~YW77;oZl4VE!YkOhDa*)TRe!Yq(#_9NsgnR{BSLYLxW84KukPl}&_^8WBm zR362@wZX%so>6gFQ`h`Z-`MWD!zQUqtvp;_?f01lty)p?6cS12SgKYLITII$&+F^x z>G;t{xw|n^Bzb$Uy`@pQX^DGULjAFR_g2LaqbcS_rB27i@AI}jC_WmO%cDTJ%ltWa zC{OSA_5B!yUzoKS^@`3uzYTAvr&F-lXt-@=xy`j)&Q|ZE{zofRd}-=0?q42GV5pSU zpU%;wRmo@SZRe7O`FAA9Ebb)i&$oGyV8)1C)Cra>1_8)l8pCaPliO}Q@tMn_74EnY zB2#>KY9Rgs7q#94y9HD%VvDSO+=dMnYe4>puV?X9Dxb(So(>1L8tV$GmBVP;0;@|H z(-`*!2i&u5cBK$a?&S;H>hMpY91><29o|K{IPC5GnE@3mQ5e6tUaz-1NyFĦr+ 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