Skip to content

Latest commit

 

History

History
24 lines (20 loc) · 1.27 KB

README.md

File metadata and controls

24 lines (20 loc) · 1.27 KB

Teo

Teo is a programming language that was designed for kids.

Features

  • Abstract Syntax Tree
  • Data conversion
  • String
  • Easy-to-modify structure
  • Type error detection on runtime
  • Performance/Quality-Of-Life
    • Faster parser
    • Getting faster as a whole
  • If statement

Building

cargo build --release --all-features # use --all-features when you want to enable all features that are not enabled on default (they still have to be enable with --features <feature name>)
./target/release/teo --help

Modifying

To add more commands to the Teo runtime, you can add it on impl Evaluate for parser::Ast -> match case -> parser::Ast::FunctionCall. Then, you can add more entires to the matchcmd!() macro. This place will be used for evaluation function. If you want to create a normal function, you should use impl Program -> fn run_loop -> match case -> parser::Ast::FunctionCall. Remember, after adding to the match case, you need to add to the Cargo.toml's features list as well.

To add more syntax, you could modify the parser at src/program/parser/mod.rs and add another match arm at impl Program -> fn run_loop -> match case and impl Evaluate for parser::Ast -> match case as well if you want that syntax to be evaluateable.