Skip to content
AlnisS edited this page Aug 7, 2018 · 2 revisions

Welcome to the TeaScript wiki! Thanks for checking out the TeaScript project.

About

Background

Name

What is this TeaScript? There are a few others out there already. Unlike the others, this language doesn't really have anything to do with JavaScript. The reason for the name is that it is at least as quirky and weird as JavaScript but it is not nearly as powerful (tea is not as strong as coffee).

Purpose

TeaScript is meant to be used for high-level somewhat lower complexity scripting with quick and hassle free changes. Its goal is to be used for scripting for FTC robots, specifically for the initial autonomous period. When developing programs for this section, quick changes to distances driven, degrees turned, actuators actuated, and other things need to be quick and easy. TeaScript is meant to help by being the sort of higher level glue which holds together an auto run by calling all of the other functions (i.e. driving, turning, intaking, etc. along with sensing ones such as motor positions, computer vision results, accelerometer readings, etc.) based off of a quick and easy script. TeaScript also has more complex capabilities including complex expression evaluation (including multiple function calls, variable lookups, and various math function), array manipulation, and recursion to help with whatever your goal is. It is also meant to be easily extensible.

Status

TeaScript is currently under active development. It still has a lot of broken and unimplemented functionality. It's also pretty convoluted in terms of the code. Documentation is sparse, and performance is not great. However, it does (sort of) work! You can find a couple of .tea files in this repo to get a sense for the language.

Plans

Currently, the primary goal is to complete the javadoc comments for the existing code while doing minor refactoring as problems arise. Then, removing inconsistencies and refactoring for performance and clarity will be the goal. After that, it will be to add a nice way of interfacing with Java functions. Beyond that, there are no real plans yet.

Clone this wiki locally