Watch
1
0
Fork
You've already forked tsl
0
mirror of https://repo.dec05eba.com/tsl synced 2026-11-03 02:46:00 +00:00
A tiny scripting language that is designed to be a replacement for small shell/p...
  • C 98.3%
  • Makefile 1.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2020-08-06 05:42:38 +02:00
examples Implement the basis of a function call 2020-01-26 11:56:53 +01:00
include Rename mindex to index 2020-01-29 19:10:45 +01:00
src Make parenthesis optional in function if there are no parameters 2020-07-23 02:42:13 +02:00
.gitignore Fix hash map issues 2020-01-21 01:01:32 +01:00
example.tsl Make parenthesis optional in function if there are no parameters 2020-07-23 02:42:13 +02:00
GC.md wip 2020-07-30 17:31:21 +02:00
IMPLEMENTATION.md Simplify bytecode 2020-01-22 06:14:42 +01:00
LICENSE Change license to unlicensed 2020-08-06 05:42:38 +02:00
Makefile Add variable to list value and map key 2020-07-22 23:49:52 +02:00
README.md wip 2020-07-30 17:31:21 +02:00

tsl

A tiny scripting language that is designed to be a replacement for small shell/python scripts.
Written in ANSI C to allow embedding everywhere and a WTFPL license that allows it to be used anywhere without any restrictions.
See example.tsl for an example of what tsl looks like.
The language and implementation is designed to be very simple and not use much memory.

** Note: tsl is not usable yet **

Installation

Run: sudo make install. The tsl binary will be installed in /usr/bin/local.

TODO

  • Remove dependency on gc. Write our own gc instead.
  • Implement big int, which numbers should automatically switch to when they are too large to fit into double.
  • Use a list instead of a hash map for variable lookup in the parser, since the list will be small most of the time.
  • Use a list instead of a hash map for variable lookup in the vm (program.c). Variable load/store will then always be O(1).
  • Implement sandboxes similar to lua, by disabling use of import, file io and other functions.