16. Complete Reference
A full cheat-sheet of every keyword, operator, and built-in function in STencil.
Keywords
let mut var func return if elif else while for in loop
class model new this stencil import try catch true false null
and or not
Literals
- int:
42,-7, hex0xFF(= 255) - float:
3.14,4.0 - string:
"hi",'hi', f-stringf"x={1+1}" - bool:
truefalse• null:null - list:
[1, 2, 3]• dict:{ "k": v }
Operators
- arithmetic:
+ - * / % - comparison:
== != < <= > >= - logic:
&& || !(aliasesandornot) - ternary:
cond ? a : b - membership:
x in coll - range:
a..b(inloop i in a..b) - stencil stamp:
Name!(args)(single),Name!*list(map) - index/member:
x[i],obj.field,obj.method()
Statements
let/mut/var name = expr · name = expr · if/elif/else · while · for(init;cond;inc) ·
for x in iter · loop i in a..b · loop {} · func f(..) {} · f(..) => expr ·
class C {} · model M {} · stencil S(..) {} · return · try/catch · import "..." ·
>> expr (= print)
Built-in functions
Core / convert
| Function | Description |
|---|---|
print(...) |
print values space-separated + newline |
input(prompt?) |
read a line from stdin |
type(x) |
type name as string |
len(x) |
length of string/list/dict |
str(x) / repr(x) |
to string |
int(x) float(x) bool(x) |
convert |
list(...) dict() |
construct |
range(n) / range(a,b) / range(a,b,step) |
list of ints |
exit(code) |
stop the program |
Math
abs round floor ceil pow(a,b) sqrt sin cos tan log log10 exp
min(list-or-args) max(list-or-args) sum(list)
Random
random() / rand() (0..1) · randint(a,b) (inclusive) · choice(list) · shuffle(list)
Strings
upper lower trim split(s,sep) join(list,sep) contains(coll,x) reversed(list-or-string) sorted(list)
Methods: s.upper() s.lower() s.len() · index s[i]
Lists (methods)
a.push(x) a.append(x) a.pop() a.len() · index read/write a[i] / a[i] = v
Dicts (methods)
d.keys() d.values() d.has(k) d.len() · d[k] / d[k] = v
Files
read_file(p) write_file(p,text) append_file(p,text) file_exists(p) delete_file(p) list_dir(p) make_dir(p)
OS
args() env(name) cwd() exec(cmd) exit(code)
JSON
json_parse(str) json_str(value) json_pretty(value)
Regex
regex_match(p,t) regex_find(p,t) regex_find_all(p,t) regex_replace(p,t,repl)
Date / time
now() (ms) timestamp() (s) date() date_format(fmt) ticks() (ms since start)
Networking
http_get(url) http_post(url,body) · serve(port,handler) ·
tcp_connect(host,port) tcp_send(id,data) tcp_recv(id) tcp_close(id)
Database (SQLite)
db_open(path) db_exec(sql) db_query(sql)
Terminal graphics
game_init() game_end() clear() draw(x,y,text) / at(x,y,text) color(text,name)
sleep(ms) ticks() screen_size() key()
Pixel window graphics
window_open(w,h,title) fill(color) pixel(x,y,color) rect(x,y,w,h,color)
window_update() window_is_open() window_key(name) window_mouse() window_mouse_down() window_close()
Sound
beep(freq_hz, ms)
Colors (names for color/fill/rect/pixel)
red green blue white black yellow cyan magenta gray orange — or an int like 0x101828.
Key names (key(), window_key())
up down left right space enter esc and letters w a s d q e r f (more for key()).
Constants
math.pi, math.e
CLI
stencil file.st · stencil -c "code" · stencil (REPL) · stencil build file.st -o out.exe ·
stencil init · stencil install · stencil --version · stencil --help
Kitteniverse Studios