├── .editorconfig ├── .github └── workflows │ └── checks.yml ├── .gitignore ├── .gitpod.yml ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── ast ├── Cargo.toml └── src │ └── lib.rs ├── cli ├── Cargo.toml └── src │ ├── lsp.rs │ ├── lsp │ └── lsp.rs │ ├── main.rs │ └── util.rs ├── common ├── Cargo.toml └── src │ ├── error │ ├── compiler.rs │ ├── lexer.rs │ ├── mod.rs │ └── parser.rs │ ├── keyword.rs │ ├── lib.rs │ ├── operator.rs │ ├── punc.rs │ ├── tip.rs │ ├── token.rs │ └── types.rs ├── compiler ├── Cargo.toml └── src │ ├── checker │ ├── checker.rs │ ├── expr.rs │ ├── mod.rs │ ├── program.rs │ └── stmt.rs │ ├── compiler.rs │ ├── compilers │ ├── expr.rs │ ├── external.rs │ ├── mod.rs │ ├── program.rs │ ├── stmt.rs │ ├── tip.rs │ └── types.rs │ ├── lib.rs │ ├── memory.rs │ ├── module.rs │ └── scope.rs ├── examples ├── Test.whi ├── Test2.whi ├── add.whi ├── array.whi ├── assign.whi ├── builtin.whi ├── cond.whi ├── core_test.whi ├── empty.whi ├── enum.whi ├── error.whi ├── fac.whi ├── fun.whi ├── funs.whi ├── helloworld.whi ├── if.whi ├── import.whi ├── lunatic.whi ├── match.whi ├── pipes.whi ├── string.whi ├── tip.whi ├── type.whi ├── wasi.whi └── while.whi ├── lexer ├── Cargo.toml └── src │ ├── lib.rs │ └── tokenizer.rs ├── parser ├── Cargo.toml └── src │ ├── lib.rs │ ├── parser.rs │ └── parsers │ ├── expr.rs │ ├── ident.rs │ ├── literal.rs │ ├── mod.rs │ ├── program.rs │ ├── stmt.rs │ └── types.rs ├── preprocessor ├── Cargo.toml ├── README.md └── src │ └── lib.rs └── rustfmt.toml /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/checks.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/.github/workflows/checks.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | examples/*.wasm -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/.gitpod.yml -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/README.md -------------------------------------------------------------------------------- /ast/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/ast/Cargo.toml -------------------------------------------------------------------------------- /ast/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/ast/src/lib.rs -------------------------------------------------------------------------------- /cli/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/cli/Cargo.toml -------------------------------------------------------------------------------- /cli/src/lsp.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/cli/src/lsp.rs -------------------------------------------------------------------------------- /cli/src/lsp/lsp.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/cli/src/lsp/lsp.rs -------------------------------------------------------------------------------- /cli/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/cli/src/main.rs -------------------------------------------------------------------------------- /cli/src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/cli/src/util.rs -------------------------------------------------------------------------------- /common/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/Cargo.toml -------------------------------------------------------------------------------- /common/src/error/compiler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/error/compiler.rs -------------------------------------------------------------------------------- /common/src/error/lexer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/error/lexer.rs -------------------------------------------------------------------------------- /common/src/error/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/error/mod.rs -------------------------------------------------------------------------------- /common/src/error/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/error/parser.rs -------------------------------------------------------------------------------- /common/src/keyword.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/keyword.rs -------------------------------------------------------------------------------- /common/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/lib.rs -------------------------------------------------------------------------------- /common/src/operator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/operator.rs -------------------------------------------------------------------------------- /common/src/punc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/punc.rs -------------------------------------------------------------------------------- /common/src/tip.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/tip.rs -------------------------------------------------------------------------------- /common/src/token.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/token.rs -------------------------------------------------------------------------------- /common/src/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/common/src/types.rs -------------------------------------------------------------------------------- /compiler/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/Cargo.toml -------------------------------------------------------------------------------- /compiler/src/checker/checker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/checker/checker.rs -------------------------------------------------------------------------------- /compiler/src/checker/expr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/checker/expr.rs -------------------------------------------------------------------------------- /compiler/src/checker/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/checker/mod.rs -------------------------------------------------------------------------------- /compiler/src/checker/program.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/checker/program.rs -------------------------------------------------------------------------------- /compiler/src/checker/stmt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/checker/stmt.rs -------------------------------------------------------------------------------- /compiler/src/compiler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compiler.rs -------------------------------------------------------------------------------- /compiler/src/compilers/expr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compilers/expr.rs -------------------------------------------------------------------------------- /compiler/src/compilers/external.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compilers/external.rs -------------------------------------------------------------------------------- /compiler/src/compilers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compilers/mod.rs -------------------------------------------------------------------------------- /compiler/src/compilers/program.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compilers/program.rs -------------------------------------------------------------------------------- /compiler/src/compilers/stmt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compilers/stmt.rs -------------------------------------------------------------------------------- /compiler/src/compilers/tip.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compilers/tip.rs -------------------------------------------------------------------------------- /compiler/src/compilers/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/compilers/types.rs -------------------------------------------------------------------------------- /compiler/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/lib.rs -------------------------------------------------------------------------------- /compiler/src/memory.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/memory.rs -------------------------------------------------------------------------------- /compiler/src/module.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/module.rs -------------------------------------------------------------------------------- /compiler/src/scope.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/compiler/src/scope.rs -------------------------------------------------------------------------------- /examples/Test.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/Test.whi -------------------------------------------------------------------------------- /examples/Test2.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/Test2.whi -------------------------------------------------------------------------------- /examples/add.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/add.whi -------------------------------------------------------------------------------- /examples/array.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/array.whi -------------------------------------------------------------------------------- /examples/assign.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/assign.whi -------------------------------------------------------------------------------- /examples/builtin.whi: -------------------------------------------------------------------------------- 1 | builtin @sys { printInt } -------------------------------------------------------------------------------- /examples/cond.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/cond.whi -------------------------------------------------------------------------------- /examples/core_test.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/core_test.whi -------------------------------------------------------------------------------- /examples/empty.whi: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/enum.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/enum.whi -------------------------------------------------------------------------------- /examples/error.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/error.whi -------------------------------------------------------------------------------- /examples/fac.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/fac.whi -------------------------------------------------------------------------------- /examples/fun.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/fun.whi -------------------------------------------------------------------------------- /examples/funs.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/funs.whi -------------------------------------------------------------------------------- /examples/helloworld.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/helloworld.whi -------------------------------------------------------------------------------- /examples/if.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/if.whi -------------------------------------------------------------------------------- /examples/import.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/import.whi -------------------------------------------------------------------------------- /examples/lunatic.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/lunatic.whi -------------------------------------------------------------------------------- /examples/match.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/match.whi -------------------------------------------------------------------------------- /examples/pipes.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/pipes.whi -------------------------------------------------------------------------------- /examples/string.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/string.whi -------------------------------------------------------------------------------- /examples/tip.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/tip.whi -------------------------------------------------------------------------------- /examples/type.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/type.whi -------------------------------------------------------------------------------- /examples/wasi.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/wasi.whi -------------------------------------------------------------------------------- /examples/while.whi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/examples/while.whi -------------------------------------------------------------------------------- /lexer/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/lexer/Cargo.toml -------------------------------------------------------------------------------- /lexer/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/lexer/src/lib.rs -------------------------------------------------------------------------------- /lexer/src/tokenizer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/lexer/src/tokenizer.rs -------------------------------------------------------------------------------- /parser/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/Cargo.toml -------------------------------------------------------------------------------- /parser/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/lib.rs -------------------------------------------------------------------------------- /parser/src/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parser.rs -------------------------------------------------------------------------------- /parser/src/parsers/expr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parsers/expr.rs -------------------------------------------------------------------------------- /parser/src/parsers/ident.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parsers/ident.rs -------------------------------------------------------------------------------- /parser/src/parsers/literal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parsers/literal.rs -------------------------------------------------------------------------------- /parser/src/parsers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parsers/mod.rs -------------------------------------------------------------------------------- /parser/src/parsers/program.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parsers/program.rs -------------------------------------------------------------------------------- /parser/src/parsers/stmt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parsers/stmt.rs -------------------------------------------------------------------------------- /parser/src/parsers/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/parser/src/parsers/types.rs -------------------------------------------------------------------------------- /preprocessor/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/preprocessor/Cargo.toml -------------------------------------------------------------------------------- /preprocessor/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/preprocessor/README.md -------------------------------------------------------------------------------- /preprocessor/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/preprocessor/src/lib.rs -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whistle-lang/whistle/HEAD/rustfmt.toml --------------------------------------------------------------------------------