├── .clang-format ├── CMakeLists.txt ├── README.md ├── app ├── CMakeLists.txt └── repl.cpp ├── links ├── 1-lexer-intro.txt ├── 1-lexer.md └── additional │ └── strtod.c ├── src ├── CMakeLists.txt ├── ast │ ├── declarations.hpp │ ├── expressions.hpp │ ├── statements.hpp │ ├── syntax_tree.hpp │ └── visitors │ │ ├── abort_visitor.hpp │ │ ├── return_visitor.hpp │ │ └── visitor.hpp ├── lex │ ├── ident_table.hpp │ ├── lexer.cpp │ ├── lexer.hpp │ ├── location.hpp │ ├── scanner.hpp │ ├── token.hpp │ └── token_type.hpp └── parse │ ├── parse_decl.cpp │ ├── parse_error.hpp │ ├── parse_expr.cpp │ ├── parse_stmt.cpp │ ├── parser.hpp │ └── parser_aux.cpp ├── tasks ├── 01-lexer.md ├── 02-ast-visitors.md ├── 03-parser.md ├── 04-symbol-tables.md ├── 05-static-types.md ├── 06-qbe-ir.md ├── 07-structures.md ├── 08-pointers.md ├── 09-HM-unification.md ├── 10-HM-generalization.md ├── async.md ├── discuss-types.md ├── media │ ├── 1-left-assoc.png │ ├── 2-right-assoc.png │ ├── 3-parsing.png │ ├── 3-smaller.png │ ├── 4-railroad.png │ └── 5-wittgenstein.jpg └── projects.md └── tests ├── CMakeLists.txt ├── lex └── cases.cpp └── main.cpp /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/.clang-format -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/README.md -------------------------------------------------------------------------------- /app/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/app/CMakeLists.txt -------------------------------------------------------------------------------- /app/repl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/app/repl.cpp -------------------------------------------------------------------------------- /links/1-lexer-intro.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/links/1-lexer-intro.txt -------------------------------------------------------------------------------- /links/1-lexer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/links/1-lexer.md -------------------------------------------------------------------------------- /links/additional/strtod.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/links/additional/strtod.c -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/CMakeLists.txt -------------------------------------------------------------------------------- /src/ast/declarations.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/ast/declarations.hpp -------------------------------------------------------------------------------- /src/ast/expressions.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/ast/expressions.hpp -------------------------------------------------------------------------------- /src/ast/statements.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/ast/statements.hpp -------------------------------------------------------------------------------- /src/ast/syntax_tree.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/ast/syntax_tree.hpp -------------------------------------------------------------------------------- /src/ast/visitors/abort_visitor.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/ast/visitors/abort_visitor.hpp -------------------------------------------------------------------------------- /src/ast/visitors/return_visitor.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/ast/visitors/return_visitor.hpp -------------------------------------------------------------------------------- /src/ast/visitors/visitor.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/ast/visitors/visitor.hpp -------------------------------------------------------------------------------- /src/lex/ident_table.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/lex/ident_table.hpp -------------------------------------------------------------------------------- /src/lex/lexer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/lex/lexer.cpp -------------------------------------------------------------------------------- /src/lex/lexer.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/lex/lexer.hpp -------------------------------------------------------------------------------- /src/lex/location.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/lex/location.hpp -------------------------------------------------------------------------------- /src/lex/scanner.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/lex/scanner.hpp -------------------------------------------------------------------------------- /src/lex/token.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/lex/token.hpp -------------------------------------------------------------------------------- /src/lex/token_type.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/lex/token_type.hpp -------------------------------------------------------------------------------- /src/parse/parse_decl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/parse/parse_decl.cpp -------------------------------------------------------------------------------- /src/parse/parse_error.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/parse/parse_error.hpp -------------------------------------------------------------------------------- /src/parse/parse_expr.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/parse/parse_expr.cpp -------------------------------------------------------------------------------- /src/parse/parse_stmt.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/parse/parse_stmt.cpp -------------------------------------------------------------------------------- /src/parse/parser.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/parse/parser.hpp -------------------------------------------------------------------------------- /src/parse/parser_aux.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/src/parse/parser_aux.cpp -------------------------------------------------------------------------------- /tasks/01-lexer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/01-lexer.md -------------------------------------------------------------------------------- /tasks/02-ast-visitors.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/02-ast-visitors.md -------------------------------------------------------------------------------- /tasks/03-parser.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/03-parser.md -------------------------------------------------------------------------------- /tasks/04-symbol-tables.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/04-symbol-tables.md -------------------------------------------------------------------------------- /tasks/05-static-types.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/05-static-types.md -------------------------------------------------------------------------------- /tasks/06-qbe-ir.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/06-qbe-ir.md -------------------------------------------------------------------------------- /tasks/07-structures.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/07-structures.md -------------------------------------------------------------------------------- /tasks/08-pointers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/08-pointers.md -------------------------------------------------------------------------------- /tasks/09-HM-unification.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/09-HM-unification.md -------------------------------------------------------------------------------- /tasks/10-HM-generalization.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/10-HM-generalization.md -------------------------------------------------------------------------------- /tasks/async.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/async.md -------------------------------------------------------------------------------- /tasks/discuss-types.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/discuss-types.md -------------------------------------------------------------------------------- /tasks/media/1-left-assoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/media/1-left-assoc.png -------------------------------------------------------------------------------- /tasks/media/2-right-assoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/media/2-right-assoc.png -------------------------------------------------------------------------------- /tasks/media/3-parsing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/media/3-parsing.png -------------------------------------------------------------------------------- /tasks/media/3-smaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/media/3-smaller.png -------------------------------------------------------------------------------- /tasks/media/4-railroad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/media/4-railroad.png -------------------------------------------------------------------------------- /tasks/media/5-wittgenstein.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/media/5-wittgenstein.jpg -------------------------------------------------------------------------------- /tasks/projects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tasks/projects.md -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tests/CMakeLists.txt -------------------------------------------------------------------------------- /tests/lex/cases.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tests/lex/cases.cpp -------------------------------------------------------------------------------- /tests/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otakubeam/compilers-tasks/HEAD/tests/main.cpp --------------------------------------------------------------------------------