├── .github └── workflows │ └── test.yml ├── .gitignore ├── .vscode └── launch.json ├── CONTRIBUTING.md ├── LICENSE ├── __tests__ ├── Interpreter │ └── index.test.ts ├── assignment.test.ts ├── call-exp.test.ts ├── class-dec.test.ts ├── equality-exp.test.ts ├── function-declarations.test.ts ├── if-statements.test.ts ├── literals.test.ts ├── logical-exp.test.ts ├── loops.test.ts ├── math.test.ts ├── member-expression.test.ts ├── program.test.ts ├── relational-exp.test.ts ├── statements.test.ts ├── unary-exp.test.ts └── variables.test.ts ├── assets └── toylang-logo.svg ├── examples ├── factorial.toy ├── fib.toy ├── fizzbuzz.toy └── runner.ts ├── index.ts ├── jest.config.ts ├── package.json ├── readme.md ├── src ├── ASTFactories.ts ├── ErrorReporter.ts ├── Parser.ts ├── Tokenizer.ts ├── core │ ├── binop.ts │ ├── class.ts │ ├── expression.ts │ ├── identifiers.ts │ ├── iterations.ts │ ├── literals.ts │ ├── statement.ts │ └── variable.ts ├── index.ts ├── interpreter │ ├── CallableFunction.ts │ ├── Environment.ts │ ├── Interpreter.ts │ ├── Return.ts │ ├── RuntimeError.ts │ └── StdLib.ts └── typings.ts ├── tsconfig.json └── yarn.lock /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/LICENSE -------------------------------------------------------------------------------- /__tests__/Interpreter/index.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/Interpreter/index.test.ts -------------------------------------------------------------------------------- /__tests__/assignment.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/assignment.test.ts -------------------------------------------------------------------------------- /__tests__/call-exp.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/call-exp.test.ts -------------------------------------------------------------------------------- /__tests__/class-dec.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/class-dec.test.ts -------------------------------------------------------------------------------- /__tests__/equality-exp.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/equality-exp.test.ts -------------------------------------------------------------------------------- /__tests__/function-declarations.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/function-declarations.test.ts -------------------------------------------------------------------------------- /__tests__/if-statements.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/if-statements.test.ts -------------------------------------------------------------------------------- /__tests__/literals.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/literals.test.ts -------------------------------------------------------------------------------- /__tests__/logical-exp.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/logical-exp.test.ts -------------------------------------------------------------------------------- /__tests__/loops.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/loops.test.ts -------------------------------------------------------------------------------- /__tests__/math.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/math.test.ts -------------------------------------------------------------------------------- /__tests__/member-expression.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/member-expression.test.ts -------------------------------------------------------------------------------- /__tests__/program.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/program.test.ts -------------------------------------------------------------------------------- /__tests__/relational-exp.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/relational-exp.test.ts -------------------------------------------------------------------------------- /__tests__/statements.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/statements.test.ts -------------------------------------------------------------------------------- /__tests__/unary-exp.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/unary-exp.test.ts -------------------------------------------------------------------------------- /__tests__/variables.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/__tests__/variables.test.ts -------------------------------------------------------------------------------- /assets/toylang-logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/assets/toylang-logo.svg -------------------------------------------------------------------------------- /examples/factorial.toy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/examples/factorial.toy -------------------------------------------------------------------------------- /examples/fib.toy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/examples/fib.toy -------------------------------------------------------------------------------- /examples/fizzbuzz.toy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/examples/fizzbuzz.toy -------------------------------------------------------------------------------- /examples/runner.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/examples/runner.ts -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/index.ts -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/jest.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/package.json -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/readme.md -------------------------------------------------------------------------------- /src/ASTFactories.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/ASTFactories.ts -------------------------------------------------------------------------------- /src/ErrorReporter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/ErrorReporter.ts -------------------------------------------------------------------------------- /src/Parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/Parser.ts -------------------------------------------------------------------------------- /src/Tokenizer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/Tokenizer.ts -------------------------------------------------------------------------------- /src/core/binop.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/binop.ts -------------------------------------------------------------------------------- /src/core/class.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/class.ts -------------------------------------------------------------------------------- /src/core/expression.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/expression.ts -------------------------------------------------------------------------------- /src/core/identifiers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/identifiers.ts -------------------------------------------------------------------------------- /src/core/iterations.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/iterations.ts -------------------------------------------------------------------------------- /src/core/literals.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/literals.ts -------------------------------------------------------------------------------- /src/core/statement.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/statement.ts -------------------------------------------------------------------------------- /src/core/variable.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/core/variable.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/interpreter/CallableFunction.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/interpreter/CallableFunction.ts -------------------------------------------------------------------------------- /src/interpreter/Environment.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/interpreter/Environment.ts -------------------------------------------------------------------------------- /src/interpreter/Interpreter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/interpreter/Interpreter.ts -------------------------------------------------------------------------------- /src/interpreter/Return.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/interpreter/Return.ts -------------------------------------------------------------------------------- /src/interpreter/RuntimeError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/interpreter/RuntimeError.ts -------------------------------------------------------------------------------- /src/interpreter/StdLib.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/interpreter/StdLib.ts -------------------------------------------------------------------------------- /src/typings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/src/typings.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anuraghazra/ToyLang/HEAD/yarn.lock --------------------------------------------------------------------------------