├── .coveralls.yml ├── .gitignore ├── .travis.yml ├── Cargo.lock ├── Cargo.toml ├── DFD.png ├── LICENSE ├── README.md ├── compile.bat ├── image.png ├── src ├── cmd_args.rs ├── compile │ ├── ast_transformer │ │ ├── ast_to_hir.rs │ │ ├── create_constructor.rs │ │ ├── currying_func.rs │ │ ├── mod.rs │ │ ├── resolve_named_params_constructor_call.rs │ │ └── resolve_op.rs │ ├── code_gen.rs │ ├── error.rs │ ├── ir │ │ ├── ast.rs │ │ ├── hir.rs │ │ ├── mir.rs │ │ └── mod.rs │ ├── mangling.rs │ ├── mod.rs │ ├── output_file.rs │ ├── parser │ │ ├── mod.rs │ │ ├── parser.rs │ │ ├── skipper.rs │ │ └── types.rs │ ├── semantic_analysis │ │ ├── binding_group.rs │ │ ├── hir_to_mir.rs │ │ ├── mod.rs │ │ ├── type_get.rs │ │ ├── type_inference │ │ │ ├── assump_env.rs │ │ │ ├── mod.rs │ │ │ ├── occurs_check.rs │ │ │ ├── type_env.rs │ │ │ ├── type_substitute │ │ │ │ ├── look_up.rs │ │ │ │ ├── mod.rs │ │ │ │ └── type_substitute.rs │ │ │ └── unify.rs │ │ ├── type_variable_table.rs │ │ └── variable_table.rs │ ├── to_llvm_type.rs │ └── types │ │ ├── mod.rs │ │ ├── pred.rs │ │ ├── qual.rs │ │ ├── scheme.rs │ │ ├── show_type.rs │ │ ├── traits │ │ ├── instantiate.rs │ │ ├── mod.rs │ │ └── types.rs │ │ └── types.rs ├── hello.rs ├── lib.rs ├── main.rs └── stdlib │ └── c │ ├── hello.c │ └── test.c └── tests └── all ├── code_gen_test.rs ├── main.rs ├── moc_llvm_module.rs ├── test.rs └── test_data ├── explicit_quantify.rsc ├── fact.rsc ├── quantify.rsc ├── record_name_property.rsc ├── record_property.rsc ├── test1.rsc ├── test10.rsc ├── test11.rsc ├── test12.rsc ├── test2.rsc ├── test3.rsc ├── test4.rsc ├── test5.rsc ├── test6.rsc ├── test7.rsc ├── test8.rsc ├── test9.rsc └── tuple_property.rsc /.coveralls.yml: -------------------------------------------------------------------------------- 1 | service_name: travis-ci -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/.travis.yml -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/Cargo.toml -------------------------------------------------------------------------------- /DFD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/DFD.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/README.md -------------------------------------------------------------------------------- /compile.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/compile.bat -------------------------------------------------------------------------------- /image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/image.png -------------------------------------------------------------------------------- /src/cmd_args.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/cmd_args.rs -------------------------------------------------------------------------------- /src/compile/ast_transformer/ast_to_hir.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ast_transformer/ast_to_hir.rs -------------------------------------------------------------------------------- /src/compile/ast_transformer/create_constructor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ast_transformer/create_constructor.rs -------------------------------------------------------------------------------- /src/compile/ast_transformer/currying_func.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ast_transformer/currying_func.rs -------------------------------------------------------------------------------- /src/compile/ast_transformer/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ast_transformer/mod.rs -------------------------------------------------------------------------------- /src/compile/ast_transformer/resolve_named_params_constructor_call.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ast_transformer/resolve_named_params_constructor_call.rs -------------------------------------------------------------------------------- /src/compile/ast_transformer/resolve_op.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ast_transformer/resolve_op.rs -------------------------------------------------------------------------------- /src/compile/code_gen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/code_gen.rs -------------------------------------------------------------------------------- /src/compile/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/error.rs -------------------------------------------------------------------------------- /src/compile/ir/ast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ir/ast.rs -------------------------------------------------------------------------------- /src/compile/ir/hir.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ir/hir.rs -------------------------------------------------------------------------------- /src/compile/ir/mir.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ir/mir.rs -------------------------------------------------------------------------------- /src/compile/ir/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/ir/mod.rs -------------------------------------------------------------------------------- /src/compile/mangling.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/mangling.rs -------------------------------------------------------------------------------- /src/compile/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/mod.rs -------------------------------------------------------------------------------- /src/compile/output_file.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/output_file.rs -------------------------------------------------------------------------------- /src/compile/parser/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/parser/mod.rs -------------------------------------------------------------------------------- /src/compile/parser/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/parser/parser.rs -------------------------------------------------------------------------------- /src/compile/parser/skipper.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/parser/skipper.rs -------------------------------------------------------------------------------- /src/compile/parser/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/parser/types.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/binding_group.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/binding_group.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/hir_to_mir.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/hir_to_mir.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/mod.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_get.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_get.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/assump_env.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/assump_env.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/mod.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/occurs_check.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/occurs_check.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/type_env.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/type_env.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/type_substitute/look_up.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/type_substitute/look_up.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/type_substitute/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/type_substitute/mod.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/type_substitute/type_substitute.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/type_substitute/type_substitute.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_inference/unify.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_inference/unify.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/type_variable_table.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/type_variable_table.rs -------------------------------------------------------------------------------- /src/compile/semantic_analysis/variable_table.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/semantic_analysis/variable_table.rs -------------------------------------------------------------------------------- /src/compile/to_llvm_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/to_llvm_type.rs -------------------------------------------------------------------------------- /src/compile/types/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/mod.rs -------------------------------------------------------------------------------- /src/compile/types/pred.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/pred.rs -------------------------------------------------------------------------------- /src/compile/types/qual.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/qual.rs -------------------------------------------------------------------------------- /src/compile/types/scheme.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/scheme.rs -------------------------------------------------------------------------------- /src/compile/types/show_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/show_type.rs -------------------------------------------------------------------------------- /src/compile/types/traits/instantiate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/traits/instantiate.rs -------------------------------------------------------------------------------- /src/compile/types/traits/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/traits/mod.rs -------------------------------------------------------------------------------- /src/compile/types/traits/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/traits/types.rs -------------------------------------------------------------------------------- /src/compile/types/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/compile/types/types.rs -------------------------------------------------------------------------------- /src/hello.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/hello.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/stdlib/c/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void foo() 4 | { 5 | printf("hello world!\n"); 6 | } -------------------------------------------------------------------------------- /src/stdlib/c/test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/src/stdlib/c/test.c -------------------------------------------------------------------------------- /tests/all/code_gen_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/code_gen_test.rs -------------------------------------------------------------------------------- /tests/all/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/main.rs -------------------------------------------------------------------------------- /tests/all/moc_llvm_module.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/moc_llvm_module.rs -------------------------------------------------------------------------------- /tests/all/test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test.rs -------------------------------------------------------------------------------- /tests/all/test_data/explicit_quantify.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/explicit_quantify.rsc -------------------------------------------------------------------------------- /tests/all/test_data/fact.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/fact.rsc -------------------------------------------------------------------------------- /tests/all/test_data/quantify.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/quantify.rsc -------------------------------------------------------------------------------- /tests/all/test_data/record_name_property.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/record_name_property.rsc -------------------------------------------------------------------------------- /tests/all/test_data/record_property.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/record_property.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test1.rsc: -------------------------------------------------------------------------------- 1 | main = 4; -------------------------------------------------------------------------------- /tests/all/test_data/test10.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test10.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test11.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test11.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test12.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test12.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test2.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test2.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test3.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test3.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test4.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test4.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test5.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test5.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test6.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test6.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test7.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test7.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test8.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test8.rsc -------------------------------------------------------------------------------- /tests/all/test_data/test9.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/test9.rsc -------------------------------------------------------------------------------- /tests/all/test_data/tuple_property.rsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elipmoc/Ruscall/HEAD/tests/all/test_data/tuple_property.rsc --------------------------------------------------------------------------------