├── .clang-format ├── .github └── workflows │ └── build.yaml ├── .gitignore ├── base ├── base.cpp └── xmake.lua ├── cli ├── main.cpp ├── utils │ └── structopt.hpp └── xmake.lua ├── compiler ├── ast │ ├── ast.cpp │ ├── ast.hpp │ ├── dump.cpp │ ├── gmachine.cpp │ └── type.cpp ├── compiler.cpp ├── compiler.h ├── diagnostics │ ├── LICENSE │ ├── code.hpp │ ├── diagnostics.cpp │ ├── diagnostics.h │ ├── reporter.cpp │ ├── reporter.hpp │ ├── utils.cpp │ └── utils.h ├── error │ └── errors.hpp ├── gmachine │ ├── binop.cpp │ ├── binop.hpp │ ├── environment.cpp │ ├── environment.hpp │ ├── instruction.cpp │ └── instruction.hpp ├── lexer │ ├── flex_lexer.cpp │ ├── lexer.cpp │ └── lexer.l ├── parser │ ├── bison_parser.cpp │ ├── bison_parser.hpp │ ├── location.hh │ ├── parser.cpp │ ├── parser.h │ ├── parser.y │ ├── position.hh │ └── stack.hh ├── runtime │ ├── node.cpp │ ├── node.h │ ├── runtime.cpp │ ├── runtime.h │ ├── stack.cpp │ └── stack.h ├── type │ ├── dump.cpp │ ├── environment.cpp │ ├── environment.hpp │ ├── type.cpp │ └── type.hpp ├── utils │ ├── binop.hpp │ ├── dump.hpp │ ├── termcolor.hpp │ └── variadic_table.hpp └── xmake.lua ├── example ├── ApplicationTypeCheckingFailed.sw ├── BinopTypeCheckingFailed.sw ├── BranchType.sw ├── Function.sw ├── IllegalPattern.sw ├── Length.sw ├── List.sw ├── NotDeclared.sw ├── Pair.sw ├── ParsingError.sw ├── PatternType.sw └── Plus.sw ├── repl ├── main.cpp └── xmake.lua └── xmake.lua /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/.clang-format -------------------------------------------------------------------------------- /.github/workflows/build.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/.github/workflows/build.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/.gitignore -------------------------------------------------------------------------------- /base/base.cpp: -------------------------------------------------------------------------------- 1 | void a() {} -------------------------------------------------------------------------------- /base/xmake.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/base/xmake.lua -------------------------------------------------------------------------------- /cli/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/cli/main.cpp -------------------------------------------------------------------------------- /cli/utils/structopt.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/cli/utils/structopt.hpp -------------------------------------------------------------------------------- /cli/xmake.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/cli/xmake.lua -------------------------------------------------------------------------------- /compiler/ast/ast.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/ast/ast.cpp -------------------------------------------------------------------------------- /compiler/ast/ast.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/ast/ast.hpp -------------------------------------------------------------------------------- /compiler/ast/dump.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/ast/dump.cpp -------------------------------------------------------------------------------- /compiler/ast/gmachine.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/ast/gmachine.cpp -------------------------------------------------------------------------------- /compiler/ast/type.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/ast/type.cpp -------------------------------------------------------------------------------- /compiler/compiler.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/compiler.cpp -------------------------------------------------------------------------------- /compiler/compiler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/compiler.h -------------------------------------------------------------------------------- /compiler/diagnostics/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/LICENSE -------------------------------------------------------------------------------- /compiler/diagnostics/code.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/code.hpp -------------------------------------------------------------------------------- /compiler/diagnostics/diagnostics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/diagnostics.cpp -------------------------------------------------------------------------------- /compiler/diagnostics/diagnostics.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/diagnostics.h -------------------------------------------------------------------------------- /compiler/diagnostics/reporter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/reporter.cpp -------------------------------------------------------------------------------- /compiler/diagnostics/reporter.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/reporter.hpp -------------------------------------------------------------------------------- /compiler/diagnostics/utils.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/utils.cpp -------------------------------------------------------------------------------- /compiler/diagnostics/utils.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/diagnostics/utils.h -------------------------------------------------------------------------------- /compiler/error/errors.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/error/errors.hpp -------------------------------------------------------------------------------- /compiler/gmachine/binop.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/gmachine/binop.cpp -------------------------------------------------------------------------------- /compiler/gmachine/binop.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/gmachine/binop.hpp -------------------------------------------------------------------------------- /compiler/gmachine/environment.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/gmachine/environment.cpp -------------------------------------------------------------------------------- /compiler/gmachine/environment.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/gmachine/environment.hpp -------------------------------------------------------------------------------- /compiler/gmachine/instruction.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/gmachine/instruction.cpp -------------------------------------------------------------------------------- /compiler/gmachine/instruction.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/gmachine/instruction.hpp -------------------------------------------------------------------------------- /compiler/lexer/flex_lexer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/lexer/flex_lexer.cpp -------------------------------------------------------------------------------- /compiler/lexer/lexer.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /compiler/lexer/lexer.l: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/lexer/lexer.l -------------------------------------------------------------------------------- /compiler/parser/bison_parser.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/bison_parser.cpp -------------------------------------------------------------------------------- /compiler/parser/bison_parser.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/bison_parser.hpp -------------------------------------------------------------------------------- /compiler/parser/location.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/location.hh -------------------------------------------------------------------------------- /compiler/parser/parser.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/parser.cpp -------------------------------------------------------------------------------- /compiler/parser/parser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/parser.h -------------------------------------------------------------------------------- /compiler/parser/parser.y: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/parser.y -------------------------------------------------------------------------------- /compiler/parser/position.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/position.hh -------------------------------------------------------------------------------- /compiler/parser/stack.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/parser/stack.hh -------------------------------------------------------------------------------- /compiler/runtime/node.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/runtime/node.cpp -------------------------------------------------------------------------------- /compiler/runtime/node.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/runtime/node.h -------------------------------------------------------------------------------- /compiler/runtime/runtime.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/runtime/runtime.cpp -------------------------------------------------------------------------------- /compiler/runtime/runtime.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/runtime/runtime.h -------------------------------------------------------------------------------- /compiler/runtime/stack.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/runtime/stack.cpp -------------------------------------------------------------------------------- /compiler/runtime/stack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/runtime/stack.h -------------------------------------------------------------------------------- /compiler/type/dump.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/type/dump.cpp -------------------------------------------------------------------------------- /compiler/type/environment.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/type/environment.cpp -------------------------------------------------------------------------------- /compiler/type/environment.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/type/environment.hpp -------------------------------------------------------------------------------- /compiler/type/type.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/type/type.cpp -------------------------------------------------------------------------------- /compiler/type/type.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/type/type.hpp -------------------------------------------------------------------------------- /compiler/utils/binop.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/utils/binop.hpp -------------------------------------------------------------------------------- /compiler/utils/dump.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/utils/dump.hpp -------------------------------------------------------------------------------- /compiler/utils/termcolor.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/utils/termcolor.hpp -------------------------------------------------------------------------------- /compiler/utils/variadic_table.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/utils/variadic_table.hpp -------------------------------------------------------------------------------- /compiler/xmake.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/compiler/xmake.lua -------------------------------------------------------------------------------- /example/ApplicationTypeCheckingFailed.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/ApplicationTypeCheckingFailed.sw -------------------------------------------------------------------------------- /example/BinopTypeCheckingFailed.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/BinopTypeCheckingFailed.sw -------------------------------------------------------------------------------- /example/BranchType.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/BranchType.sw -------------------------------------------------------------------------------- /example/Function.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/Function.sw -------------------------------------------------------------------------------- /example/IllegalPattern.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/IllegalPattern.sw -------------------------------------------------------------------------------- /example/Length.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/Length.sw -------------------------------------------------------------------------------- /example/List.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/List.sw -------------------------------------------------------------------------------- /example/NotDeclared.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/NotDeclared.sw -------------------------------------------------------------------------------- /example/Pair.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/Pair.sw -------------------------------------------------------------------------------- /example/ParsingError.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/ParsingError.sw -------------------------------------------------------------------------------- /example/PatternType.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/PatternType.sw -------------------------------------------------------------------------------- /example/Plus.sw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/example/Plus.sw -------------------------------------------------------------------------------- /repl/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/repl/main.cpp -------------------------------------------------------------------------------- /repl/xmake.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/repl/xmake.lua -------------------------------------------------------------------------------- /xmake.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/muqiuhan/swallow/HEAD/xmake.lua --------------------------------------------------------------------------------