78 lines
1.5 KiB
Plaintext
78 lines
1.5 KiB
Plaintext
|
|
local function strsplit(delimiter, text)
|
|
if delimiter == "" then
|
|
error("delimiter matches empty string!")
|
|
end
|
|
local list, pos, first, last = {}, 1
|
|
while true do
|
|
first, last = text:find(delimiter, pos, true)
|
|
if first then -- found?
|
|
table.insert(list, text:sub(pos, first - 1))
|
|
pos = last + 1
|
|
else
|
|
table.insert(list, text:sub(pos))
|
|
break
|
|
end
|
|
end
|
|
return list
|
|
end
|
|
M.private.strsplit = strsplit
|
|
|
|
|
|
|
|
# Groupes
|
|
|
|
|
|
|
|
## Fonctions et Variables - représentations de données présentes à l'interieur du bout de code
|
|
|
|
### Fonctions et variables assignée dans ce bout de code - Dont la fonction peut être connue en lisant ce bout de code
|
|
strsplit
|
|
delimiter
|
|
text
|
|
list
|
|
pos
|
|
first
|
|
last
|
|
found
|
|
|
|
### Fonctions et variables définies autre part - dont la fonction ne peut pas être connue (mais potentiellement inférée) en lisant ce bout de code
|
|
error()
|
|
text:find()
|
|
text:sub()
|
|
table.insert()
|
|
M
|
|
|
|
|
|
## Grammaire du langage - Element permettant les opérations basiques d'un langage de programmation
|
|
|
|
### Constantes - données présentes à l'interieur du bout de code
|
|
|
|
"" (string)
|
|
"delimiter matches empty string!" (String)
|
|
1 (Int)
|
|
true (Boolean)
|
|
|
|
### Opérateurs - permet de modifier/comparer la donnée
|
|
==
|
|
-
|
|
+
|
|
|
|
### Elements permettant de gérer l'assignation et le scopting des variables
|
|
local
|
|
function()
|
|
private
|
|
return
|
|
=
|
|
--
|
|
|
|
### Elements permettant la procéduralité
|
|
if/then/else/end
|
|
While/do/end
|
|
?
|
|
|
|
|
|
|
|
|
|
|