A minimalistic programming language written in C89.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

74 lignes
1.7 KiB

fn potato do sys.trace return end
fn print_n_utf8_impl do
start:
-1 + swap print_utf8
dup start swap jump_if
end
fn potato2 do
start:
-1 + dup
65 print_utf8 10 print_utf8
start swap jump_if
end
fn potato3 do
start:
-1 + dup
66 print_utf8 10 print_utf8
start swap jump_if
end
# Encrypts things by doing `(v + add_key) % modulo_key`
#
# @param array An array of ints representing a string
# @param add_key Should be lower than the add key
# @param modulo_key Should ke higher than all the codepoints of the array
#
# array add_key modulo_key
fn encrypt do
3 pluck array.size
# array add_key modulo_key index
loop:
1 - dup 5 pluck
# array add_key modulo_key index index array
array.index
# array add_key modulo_key index v
4 pluck +
# array add_key modulo_key index (v + add_key)
3 pluck %
# array add_key modulo_key index ((v + add_key) % modulo_key)
2 pluck
# array add_key modulo_key index ((v + add_key) % modulo_key) index
6 pluck
# array add_key modulo_key index ((v + add_key) % modulo_key) index array
array.set
# array add_key modulo_key index
dup 0 != loop jump_if drop drop drop drop
end
# Prints a string as an array of ints
#
# @param array An array of ints representing a string
#
# array
fn string.dump do
dup array.size 0
# array end it
91 print_utf8
32 print_utf8
loop:
dup
# array end it it
4 pluck
# array end it it array
array.index print_int
32 print_utf8
1 +
# array end it
2 pluck 2 pluck > loop jump_if
# array end it
93 print_utf8
drop drop drop
end