From 8a5e2639d349402ad66d838ed45a124b53c35b7e Mon Sep 17 00:00:00 2001 From: Dania Rifki Date: Sat, 7 Feb 2026 18:40:56 +0800 Subject: Format docs with prettier Also adjust custom.css a little --- doc/docs/pt-br/doc/advanced/do.md | 3 + doc/docs/pt-br/doc/advanced/line-decorators.md | 3 + doc/docs/pt-br/doc/advanced/macro.md | 9 + doc/docs/pt-br/doc/advanced/module.md | 8 + doc/docs/pt-br/doc/advanced/try.md | 2 + doc/docs/pt-br/doc/assignment/assignment.md | 9 + .../doc/assignment/destructuring-assignment.md | 11 + doc/docs/pt-br/doc/assignment/if-assignment.md | 5 + ...ng-clause-controlling-destructive-assignment.md | 3 + .../pt-br/doc/assignment/varargs-assignment.md | 1 + doc/docs/pt-br/doc/control-flow/conditionals.md | 7 + doc/docs/pt-br/doc/control-flow/continue.md | 2 + doc/docs/pt-br/doc/control-flow/for-loop.md | 6 + doc/docs/pt-br/doc/control-flow/switch.md | 11 + doc/docs/pt-br/doc/control-flow/while-loop.md | 3 + .../pt-br/doc/data-structures/comprehensions.md | 16 + .../pt-br/doc/data-structures/table-literals.md | 9 + doc/docs/pt-br/doc/functions/backcalls.md | 4 + doc/docs/pt-br/doc/functions/function-literals.md | 27 +- doc/docs/pt-br/doc/functions/function-stubs.md | 1 + doc/docs/pt-br/doc/getting-started/usage.md | 88 +++--- doc/docs/pt-br/doc/language-basics/attributes.md | 3 + doc/docs/pt-br/doc/language-basics/comment.md | 1 + doc/docs/pt-br/doc/language-basics/literals.md | 5 + doc/docs/pt-br/doc/language-basics/operator.md | 15 + doc/docs/pt-br/doc/language-basics/whitespace.md | 2 + .../doc/objects/object-oriented-programming.md | 42 ++- doc/docs/pt-br/doc/objects/with-statement.md | 6 + .../pt-br/doc/reference/the-yuescript-library.md | 333 ++++++++++++--------- doc/docs/pt-br/index.md | 1 + doc/docs/pt-br/try/index.md | 1 + 31 files changed, 435 insertions(+), 202 deletions(-) (limited to 'doc/docs/pt-br') diff --git a/doc/docs/pt-br/doc/advanced/do.md b/doc/docs/pt-br/doc/advanced/do.md index f13d8aa..503c551 100644 --- a/doc/docs/pt-br/doc/advanced/do.md +++ b/doc/docs/pt-br/doc/advanced/do.md @@ -8,6 +8,7 @@ do print var print var -- nil aqui ``` + ```yue @@ -31,6 +32,7 @@ counter = do print counter! print counter! ``` + ```yue @@ -53,6 +55,7 @@ tbl = { 1234 } ``` + ```yue diff --git a/doc/docs/pt-br/doc/advanced/line-decorators.md b/doc/docs/pt-br/doc/advanced/line-decorators.md index 94d1004..aaf34ea 100644 --- a/doc/docs/pt-br/doc/advanced/line-decorators.md +++ b/doc/docs/pt-br/doc/advanced/line-decorators.md @@ -5,6 +5,7 @@ Por conveniência, o loop for e a instrução if podem ser aplicados a instruç ```yuescript print "hello world" if name == "Rob" ``` + ```yue @@ -18,6 +19,7 @@ E com loops básicos: ```yuescript print "item: ", item for item in *items ``` + ```yue @@ -33,6 +35,7 @@ game\update! while game\isRunning! reader\parse_line! until reader\eof! ``` + ```yue diff --git a/doc/docs/pt-br/doc/advanced/macro.md b/doc/docs/pt-br/doc/advanced/macro.md index 846d506..18d33e0 100644 --- a/doc/docs/pt-br/doc/advanced/macro.md +++ b/doc/docs/pt-br/doc/advanced/macro.md @@ -32,6 +32,7 @@ macro and = (...) -> "#{ table.concat {...}, ' and ' }" if $and f1!, f2!, f3! print "OK" ``` + ```yue @@ -68,6 +69,7 @@ if $and f1!, f2!, f3! ## Inserir códigos brutos Uma função macro pode retornar uma string YueScript ou uma tabela de configuração contendo códigos Lua. + ```yuescript macro yueFunc = (var) -> "local #{var} = ->" $yueFunc funcA @@ -93,6 +95,7 @@ if cond then end ]==] ``` + ```yue @@ -126,6 +129,7 @@ end ## Exportar macro Funções macro podem ser exportadas de um módulo e importadas em outro módulo. Você deve colocar funções export macro em um único arquivo para uso, e apenas definição de macro, importação de macro e expansão de macro inline podem ser colocadas no módulo exportador de macro. + ```yuescript -- arquivo: utils.yue export macro map = (items, action) -> "[#{action} for _ in *#{items}]" @@ -140,6 +144,7 @@ import "utils" as { } [1, 2, 3] |> $map(_ * 2) |> $filter(_ > 4) |> $each print _ ``` + ```yue @@ -164,10 +169,12 @@ import "utils" as { ## Macro embutida Existem algumas macros embutidas, mas você pode sobrescrevê-las declarando macros com os mesmos nomes. + ```yuescript print $FILE -- obtém string do nome do módulo atual print $LINE -- obtém número 2 ``` + ```yue @@ -234,6 +241,7 @@ macro printNumAndStr = (num `Num, str `String) -> | $printNumAndStr 123, "hello" ``` + ```yue @@ -258,6 +266,7 @@ macro printNumAndStr = (num, str) -> $printNumAndStr 123, "hello" ``` + ```yue diff --git a/doc/docs/pt-br/doc/advanced/module.md b/doc/docs/pt-br/doc/advanced/module.md index 34fd106..ed13107 100644 --- a/doc/docs/pt-br/doc/advanced/module.md +++ b/doc/docs/pt-br/doc/advanced/module.md @@ -28,6 +28,7 @@ do import "lpeg" as :C, :Ct, :Cmt import "export" as {one, two, Something:{umm:{ch}}} ``` + ```yue @@ -67,6 +68,7 @@ do import table.concat print concat ["a", tostring 1] ``` + ```yue @@ -98,6 +100,7 @@ do print FLAG FLAG = 123 ``` + ```yue @@ -140,6 +143,7 @@ export y = -> export class Something umm: "cool" ``` + ```yue @@ -166,6 +170,7 @@ Fazendo export nomeado com desestruturação. export :loadstring, to_lua: tolua = yue export {itemA: {:fieldA = 'default'}} = tb ``` + ```yue @@ -182,6 +187,7 @@ export.itemA = tb export. = items export["a-b-c"] = 123 ``` + ```yue @@ -208,6 +214,7 @@ else export with tmp j = 2000 ``` + ```yue @@ -234,6 +241,7 @@ export default -> print "hello" 123 ``` + ```yue diff --git a/doc/docs/pt-br/doc/advanced/try.md b/doc/docs/pt-br/doc/advanced/try.md index fbb4e87..0223feb 100644 --- a/doc/docs/pt-br/doc/advanced/try.md +++ b/doc/docs/pt-br/doc/advanced/try.md @@ -29,6 +29,7 @@ catch err print yue.traceback err print result ``` + ```yue @@ -82,6 +83,7 @@ catch e print e e ``` + ```yue diff --git a/doc/docs/pt-br/doc/assignment/assignment.md b/doc/docs/pt-br/doc/assignment/assignment.md index 1da6bb0..ac3838f 100644 --- a/doc/docs/pt-br/doc/assignment/assignment.md +++ b/doc/docs/pt-br/doc/assignment/assignment.md @@ -7,6 +7,7 @@ hello = "world" a, b, c = 1, 2, 3 hello = 123 -- usa a variável existente ``` + ```yue @@ -20,6 +21,7 @@ hello = 123 -- usa a variável existente ## Atualização Você pode realizar atribuição de atualização com muitos operadores binários. + ```yuescript x = 1 x += 1 @@ -30,6 +32,7 @@ x %= 10 s ..= "world" -- adiciona um novo local se a variável local não existir arg or= "valor padrão" ``` + ```yue @@ -48,10 +51,12 @@ arg or= "valor padrão" ## Atribuição encadeada Você pode fazer atribuição encadeada para atribuir múltiplos itens ao mesmo valor. + ```yuescript a = b = c = d = e = 0 x = y = z = f! ``` + ```yue @@ -62,6 +67,7 @@ x = y = z = f! ## Locais explícitos + ```yuescript do local a = 1 @@ -78,6 +84,7 @@ do a = 1 B = 2 ``` + ```yue @@ -100,6 +107,7 @@ do ## Globais explícitos + ```yuescript do global a = 1 @@ -116,6 +124,7 @@ do B = 2 local Temp = "um valor local" ``` + ```yue diff --git a/doc/docs/pt-br/doc/assignment/destructuring-assignment.md b/doc/docs/pt-br/doc/assignment/destructuring-assignment.md index 7692885..0c96d4a 100644 --- a/doc/docs/pt-br/doc/assignment/destructuring-assignment.md +++ b/doc/docs/pt-br/doc/assignment/destructuring-assignment.md @@ -12,6 +12,7 @@ thing = [1, 2] [a, b] = thing print a, b ``` + ```yue @@ -37,6 +38,7 @@ print hello, the_day :day = obj -- OK fazer desestruturação simples sem chaves ``` + ```yue @@ -68,6 +70,7 @@ obj2 = { {numbers: [first, second], properties: {color: color}} = obj2 print first, second, color ``` + ```yue @@ -95,6 +98,7 @@ Se a instrução de desestruturação for complicada, sinta-se à vontade para e } } = obj2 ``` + ```yue @@ -113,6 +117,7 @@ Se a instrução de desestruturação for complicada, sinta-se à vontade para e ```yuescript {:concat, :insert} = table ``` + ```yue @@ -126,6 +131,7 @@ Isso é efetivamente o mesmo que import, mas podemos renomear campos que queremo ```yuescript {:mix, :max, random: rand} = math ``` + ```yue @@ -139,6 +145,7 @@ Você pode escrever valores padrão ao fazer desestruturação: ```yuescript {:name = "sem nome", :job = "sem emprego"} = person ``` + ```yue @@ -152,6 +159,7 @@ Você pode usar `_` como placeholder ao fazer desestruturação de lista: ```yuescript [_, two, _, four] = items ``` + ```yue @@ -171,6 +179,7 @@ print first -- imprime: first print bulk -- imprime: {"second", "third", "fourth"} print last -- imprime: last ``` + ```yue @@ -195,6 +204,7 @@ O operador spread pode ser usado em diferentes posições para capturar diferent -- Capturar tudo exceto os elementos do meio [first, ..._, last] = orders ``` + ```yue @@ -223,6 +233,7 @@ tuples = [ for [left, right] in *tuples print left, right ``` + ```yue diff --git a/doc/docs/pt-br/doc/assignment/if-assignment.md b/doc/docs/pt-br/doc/assignment/if-assignment.md index 84094ed..7b1a852 100644 --- a/doc/docs/pt-br/doc/assignment/if-assignment.md +++ b/doc/docs/pt-br/doc/assignment/if-assignment.md @@ -6,6 +6,7 @@ Os blocos `if` e `elseif` podem receber uma atribuição no lugar de uma express if user := database.find_user "moon" print user.name ``` + ```yue @@ -23,6 +24,7 @@ elseif world := os.getenv "world" else print "nada :(" ``` + ```yue @@ -37,11 +39,13 @@ else Atribuição em if com múltiplos valores de retorno. Apenas o primeiro valor é verificado, os outros valores estão no escopo. + ```yuescript if success, result := pcall -> "obter resultado sem problemas" print result -- variável result está no escopo print "OK" ``` + ```yue @@ -61,6 +65,7 @@ while byte := stream\read_one! -- fazer algo com o byte print byte ``` + ```yue diff --git a/doc/docs/pt-br/doc/assignment/the-using-clause-controlling-destructive-assignment.md b/doc/docs/pt-br/doc/assignment/the-using-clause-controlling-destructive-assignment.md index 02d4162..c49aa15 100644 --- a/doc/docs/pt-br/doc/assignment/the-using-clause-controlling-destructive-assignment.md +++ b/doc/docs/pt-br/doc/assignment/the-using-clause-controlling-destructive-assignment.md @@ -17,6 +17,7 @@ my_func! print i -- vai imprimir 0 ``` + ```yue @@ -52,6 +53,7 @@ my_func = (using nil) -> my_func! print i -- imprime 100, i não é afetado ``` + ```yue @@ -80,6 +82,7 @@ my_func = (add using k, i) -> my_func(22) print i, k -- estes foram atualizados ``` + ```yue diff --git a/doc/docs/pt-br/doc/assignment/varargs-assignment.md b/doc/docs/pt-br/doc/assignment/varargs-assignment.md index 0aab540..6ac67e0 100644 --- a/doc/docs/pt-br/doc/assignment/varargs-assignment.md +++ b/doc/docs/pt-br/doc/assignment/varargs-assignment.md @@ -10,6 +10,7 @@ count = select '#', ... first = select 1, ... print ok, count, first ``` + ```yue diff --git a/doc/docs/pt-br/doc/control-flow/conditionals.md b/doc/docs/pt-br/doc/control-flow/conditionals.md index 94e41ec..bc12d4e 100644 --- a/doc/docs/pt-br/doc/control-flow/conditionals.md +++ b/doc/docs/pt-br/doc/control-flow/conditionals.md @@ -7,6 +7,7 @@ if have_coins else print "Sem moedas" ``` + ```yue @@ -25,6 +26,7 @@ Uma sintaxe curta para instruções únicas também pode ser usada: have_coins = false if have_coins then print "Tem moedas" else print "Sem moedas" ``` + ```yue @@ -40,6 +42,7 @@ Como instruções if podem ser usadas como expressões, isso também pode ser es have_coins = false print if have_coins then "Tem moedas" else "Sem moedas" ``` + ```yue @@ -65,6 +68,7 @@ else print message -- imprime: Sou muito alto ``` + ```yue @@ -90,6 +94,7 @@ O oposto de if é unless: unless os.date("%A") == "Monday" print "não é segunda-feira!" ``` + ```yue @@ -102,6 +107,7 @@ unless os.date("%A") == "Monday" ```yuescript print "Você tem sorte!" unless math.random! > 0.1 ``` + ```yue @@ -123,6 +129,7 @@ if a in [1, 3, 5, 7] if a in list print "verificando se `a` está na lista" ``` + ```yue diff --git a/doc/docs/pt-br/doc/control-flow/continue.md b/doc/docs/pt-br/doc/control-flow/continue.md index 8a3cdff..645bcb4 100644 --- a/doc/docs/pt-br/doc/control-flow/continue.md +++ b/doc/docs/pt-br/doc/control-flow/continue.md @@ -9,6 +9,7 @@ while i < 10 continue if i % 2 == 0 print i ``` + ```yue @@ -29,6 +30,7 @@ odds = for x in *my_numbers continue if x % 2 == 1 x ``` + ```yue diff --git a/doc/docs/pt-br/doc/control-flow/for-loop.md b/doc/docs/pt-br/doc/control-flow/for-loop.md index dfd8285..4c99e6d 100644 --- a/doc/docs/pt-br/doc/control-flow/for-loop.md +++ b/doc/docs/pt-br/doc/control-flow/for-loop.md @@ -12,6 +12,7 @@ for k = 1, 15, 2 -- um passo opcional fornecido for key, value in pairs object print key, value ``` + ```yue @@ -33,6 +34,7 @@ Os operadores de slicing e **\*** podem ser usados, assim como com compreensões for item in *items[2, 4] print item ``` + ```yue @@ -49,6 +51,7 @@ for item in *items do print item for j = 1, 10, 3 do print j ``` + ```yue @@ -70,6 +73,7 @@ doubled_evens = for i = 1, 20 else i ``` + ```yue @@ -90,6 +94,7 @@ Por exemplo, para encontrar o primeiro número maior que 10: first_large = for n in *numbers break n if n > 10 ``` + ```yue @@ -112,6 +117,7 @@ func_b = -> return for i = 1, 10 do i print func_a! -- imprime nil print func_b! -- imprime objeto table ``` + ```yue diff --git a/doc/docs/pt-br/doc/control-flow/switch.md b/doc/docs/pt-br/doc/control-flow/switch.md index 5c87327..bc41bad 100644 --- a/doc/docs/pt-br/doc/control-flow/switch.md +++ b/doc/docs/pt-br/doc/control-flow/switch.md @@ -11,6 +11,7 @@ switch name := "Dan" else print "Não sei quem você é com o nome #{name}" ``` + ```yue @@ -39,6 +40,7 @@ next_number = switch b else error "não consigo contar tão alto!" ``` + ```yue @@ -62,6 +64,7 @@ msg = switch math.random(1, 5) when 2 then "você quase tem sorte" else "não tão sortudo" ``` + ```yue @@ -87,6 +90,7 @@ switch math.random(1, 5) when 1 else print "não tão sortudo" ``` + ```yue @@ -124,6 +128,7 @@ for item in *items when :width, :height print "tamanho #{width}, #{height}" ``` + ```yue @@ -154,6 +159,7 @@ switch item when {pos: {:x = 50, :y = 200}} print "Vec2 #{x}, #{y}" -- a desestruturação de tabela ainda passará ``` + ```yue @@ -181,6 +187,7 @@ switch tb when [1, 2, b = 3] -- b tem valor padrão print "1, 2, #{b}" ``` + ```yue @@ -206,6 +213,7 @@ switch tb else print "inválido" ``` + ```yue @@ -231,6 +239,7 @@ switch tb else print "inválido" ``` + ```yue @@ -257,6 +266,7 @@ switch tb ] print "correspondido", fourth ``` + ```yue @@ -282,6 +292,7 @@ switch segments print "Recurso:", resource -- imprime: "logs" print "Ação:", action -- imprime: "view" ``` + ```yue diff --git a/doc/docs/pt-br/doc/control-flow/while-loop.md b/doc/docs/pt-br/doc/control-flow/while-loop.md index f47f00c..2deb5aa 100644 --- a/doc/docs/pt-br/doc/control-flow/while-loop.md +++ b/doc/docs/pt-br/doc/control-flow/while-loop.md @@ -10,6 +10,7 @@ while i > 0 while running == true do my_function! ``` + ```yue @@ -31,6 +32,7 @@ until i == 0 until running == false do my_function! ``` + ```yue @@ -56,6 +58,7 @@ repeat i -= 1 until i == 0 ``` + ```yue diff --git a/doc/docs/pt-br/doc/data-structures/comprehensions.md b/doc/docs/pt-br/doc/data-structures/comprehensions.md index 1694813..9651352 100644 --- a/doc/docs/pt-br/doc/data-structures/comprehensions.md +++ b/doc/docs/pt-br/doc/data-structures/comprehensions.md @@ -10,6 +10,7 @@ O seguinte cria uma cópia da tabela items mas com todos os valores dobrados. items = [ 1, 2, 3, 4 ] doubled = [item * 2 for i, item in ipairs items] ``` + ```yue @@ -24,6 +25,7 @@ Os itens incluídos na nova tabela podem ser restringidos com uma cláusula when ```yuescript slice = [item for i, item in ipairs items when i > 1 and i < 3] ``` + ```yue @@ -37,6 +39,7 @@ Como é comum iterar sobre os valores de uma tabela indexada numericamente, um o ```yuescript doubled = [item * 2 for item in *items] ``` + ```yue @@ -55,6 +58,7 @@ data = flat = [...v for k,v in pairs data] -- flat agora é [1, 2, 3, 4, 5, 6] ``` + ```yue @@ -79,6 +83,7 @@ y_coords = [9, 2, 3] points = [ [x, y] for x in *x_coords \ for y in *y_coords] ``` + ```yue @@ -96,6 +101,7 @@ Loops for numéricos também podem ser usados em compreensões: ```yuescript evens = [i for i = 1, 100 when i % 2 == 0] ``` + ```yue @@ -119,6 +125,7 @@ thing = { thing_copy = {k, v for k, v in pairs thing} ``` + ```yue @@ -136,6 +143,7 @@ thing_copy = {k, v for k, v in pairs thing} ```yuescript no_color = {k, v for k, v in pairs thing when k != "color"} ``` + ```yue @@ -150,6 +158,7 @@ O operador **\*** também é suportado. Aqui criamos uma tabela de consulta de r numbers = [1, 2, 3, 4] sqrts = {i, math.sqrt i for i in *numbers} ``` + ```yue @@ -167,6 +176,7 @@ Neste exemplo convertemos um array de pares em uma tabela onde o primeiro item d tuples = [ ["hello", "world"], ["foo", "bar"]] tbl = {unpack tuple for tuple in *tuples} ``` + ```yue @@ -185,6 +195,7 @@ Aqui podemos definir os limites mínimo e máximo, pegando todos os itens com í ```yuescript slice = [item for item in *items[1, 5]] ``` + ```yue @@ -198,6 +209,7 @@ Qualquer um dos argumentos do slice pode ser omitido para usar um padrão sensat ```yuescript slice = [item for item in *items[2,]] ``` + ```yue @@ -211,6 +223,7 @@ Se o limite mínimo for omitido, ele usa como padrão 1. Aqui fornecemos apenas ```yuescript slice = [item for item in *items[,,2]] ``` + ```yue @@ -225,6 +238,7 @@ Tanto o limite mínimo quanto o máximo podem ser negativos, o que significa que -- pegar os últimos 4 itens slice = [item for item in *items[-4,-1]] ``` + ```yue @@ -239,6 +253,7 @@ O tamanho do passo também pode ser negativo, o que significa que os itens são ```yuescript reverse_slice = [item for item in *items[-1,1,-1]] ``` + ```yue @@ -258,6 +273,7 @@ sub_list = items[2, 4] -- pegar os últimos 4 itens last_four_items = items[-4, -1] ``` + ```yue diff --git a/doc/docs/pt-br/doc/data-structures/table-literals.md b/doc/docs/pt-br/doc/data-structures/table-literals.md index f0fbdc5..23817ff 100644 --- a/doc/docs/pt-br/doc/data-structures/table-literals.md +++ b/doc/docs/pt-br/doc/data-structures/table-literals.md @@ -5,6 +5,7 @@ Como no Lua, as tabelas são delimitadas por chaves. ```yuescript some_values = [1, 2, 3, 4] ``` + ```yue @@ -22,6 +23,7 @@ some_values = { ["favorite food"]: "rice" } ``` + ```yue @@ -42,6 +44,7 @@ profile = shoe_size: 13, favorite_foods: ["ice cream", "donuts"] ``` + ```yue @@ -63,6 +66,7 @@ values = { occupation: "crime fighting" } ``` + ```yue @@ -83,6 +87,7 @@ my_function dance: "Tango", partner: "none" y = type: "dog", legs: 4, tails: 1 ``` + ```yue @@ -101,6 +106,7 @@ tbl = { end: "hunger" } ``` + ```yue @@ -121,6 +127,7 @@ person = { :hair, :height, shoe_size: 40 } print_table :hair, :height ``` + ```yue @@ -141,6 +148,7 @@ t = { "hello world": true } ``` + ```yue @@ -158,6 +166,7 @@ As tabelas Lua têm tanto uma parte array quanto uma parte hash, mas às vezes v some_values = [1, 2, 3, 4] list_with_one_element = [1, ] ``` + ```yue diff --git a/doc/docs/pt-br/doc/functions/backcalls.md b/doc/docs/pt-br/doc/functions/backcalls.md index 924c10a..bc327a3 100644 --- a/doc/docs/pt-br/doc/functions/backcalls.md +++ b/doc/docs/pt-br/doc/functions/backcalls.md @@ -6,6 +6,7 @@ Backcalls são usados para desaninhar callbacks. Eles são definidos usando seta x <- f print "hello" .. x ``` + ```yue @@ -21,6 +22,7 @@ Funções seta "fat" também estão disponíveis. <= f print @value ``` + ```yue @@ -36,6 +38,7 @@ Você pode especificar um placeholder para onde deseja que a função backcall v (x) <- map _, [1, 2, 3] x * 2 ``` + ```yue @@ -55,6 +58,7 @@ result, msg = do check info print result, msg ``` + ```yue diff --git a/doc/docs/pt-br/doc/functions/function-literals.md b/doc/docs/pt-br/doc/functions/function-literals.md index e63888f..590af71 100644 --- a/doc/docs/pt-br/doc/functions/function-literals.md +++ b/doc/docs/pt-br/doc/functions/function-literals.md @@ -6,6 +6,7 @@ Todas as funções são criadas usando uma expressão de função. Uma função my_function = -> my_function() -- chama a função vazia ``` + ```yue @@ -24,6 +25,7 @@ func_b = -> value = 100 print "The value:", value ``` + ```yue @@ -42,6 +44,7 @@ Se uma função não tem argumentos, ela pode ser chamada usando o operador !, e func_a! func_b() ``` + ```yue @@ -56,6 +59,7 @@ Funções com argumentos podem ser criadas precedendo a seta com uma lista de no ```yuescript sum = (x, y) -> print "sum", x + y ``` + ```yue @@ -72,6 +76,7 @@ print sum 10, 20 a b c "a", "b", "c" ``` + ```yue @@ -88,6 +93,7 @@ Para evitar ambiguidade ao chamar funções, parênteses também podem ser usado ```yuescript print "x:", sum(10, 20), "y:", sum(30, 40) ``` + ```yue @@ -104,6 +110,7 @@ As funções convertem a última instrução em seu corpo em uma instrução de sum = (x, y) -> x + y print "The sum is ", sum 10, 20 ``` + ```yue @@ -118,6 +125,7 @@ E se você precisar retornar explicitamente, pode usar a palavra-chave return: ```yuescript sum = (x, y) -> return x + y ``` + ```yue @@ -132,6 +140,7 @@ Assim como no Lua, as funções podem retornar múltiplos valores. A última ins mystery = (x, y) -> x + y, x - y a, b = mystery 10, 20 ``` + ```yue @@ -148,6 +157,7 @@ Como é um idioma em Lua enviar um objeto como primeiro argumento ao chamar um m ```yuescript func = (num) => @value + num ``` + ```yue @@ -165,6 +175,7 @@ my_function = (name = "something", height = 100) -> print "Hello I am", name print "My height is", height ``` + ```yue @@ -181,6 +192,7 @@ Uma expressão de valor padrão de argumento é avaliada no corpo da função na some_args = (x = 100, y = x + 1000) -> print x + y ``` + ```yue @@ -202,6 +214,7 @@ b = x-10 c = x -y d = x- z ``` + ```yue @@ -223,6 +236,7 @@ Quando há um espaço após uma variável e um literal de string, a chamada de f x = func"hello" + 100 y = func "hello" + 100 ``` + ```yue @@ -247,6 +261,7 @@ cool_func 1, 2, 5, 6, 7, 8 ``` + ```yue @@ -269,6 +284,7 @@ my_func 5, 6, 7, 9, 1, 2, 5, 4 ``` + ```yue @@ -289,6 +305,7 @@ x = [ 8, 9, 10 ] ``` + ```yue @@ -309,6 +326,7 @@ y = [ my_func 1, 2, 3, 5, 6, 7 ] ``` + ```yue @@ -335,6 +353,7 @@ if func 1, 2, 3, print "hello" print "I am inside if" ``` + ```yue @@ -357,9 +376,9 @@ if func 1, 2, 3, YueScript agora suporta desestruturação de parâmetros de função quando o argumento é um objeto. Duas formas de literais de tabela de desestruturação estão disponíveis: -* **Literais/parâmetros de objeto envolvidos em chaves**, permitindo valores padrão opcionais quando os campos estão ausentes (ex.: `{:a, :b}`, `{a: a1 = 123}`). +- **Literais/parâmetros de objeto envolvidos em chaves**, permitindo valores padrão opcionais quando os campos estão ausentes (ex.: `{:a, :b}`, `{a: a1 = 123}`). -* **Sintaxe de tabela simples não envolvida**, começando com uma sequência de ligações chave-valor ou abreviadas e continuando até outra expressão terminá-la (ex.: `:a, b: b1, :c`). Esta forma extrai múltiplos campos do mesmo objeto. +- **Sintaxe de tabela simples não envolvida**, começando com uma sequência de ligações chave-valor ou abreviadas e continuando até outra expressão terminá-la (ex.: `:a, b: b1, :c`). Esta forma extrai múltiplos campos do mesmo objeto. ```yuescript f1 = (:a, :b, :c) -> @@ -373,6 +392,7 @@ f2 = ({a: a1 = 123, :b = 'abc'}, c = {}) -> arg1 = {a: 0} f2 arg1, arg2 ``` + ```yue @@ -402,6 +422,7 @@ findFirstEven = (list): nil -> if sub % 2 == 0 return sub ``` + ```yue @@ -426,6 +447,7 @@ findFirstEven = (list) -> return sub nil ``` + ```yue @@ -467,6 +489,7 @@ process = (...args) -> process 1, nil, 3, nil, 5 ``` + ```yue diff --git a/doc/docs/pt-br/doc/functions/function-stubs.md b/doc/docs/pt-br/doc/functions/function-stubs.md index d13f8ed..74b7821 100644 --- a/doc/docs/pt-br/doc/functions/function-stubs.md +++ b/doc/docs/pt-br/doc/functions/function-stubs.md @@ -24,6 +24,7 @@ run_callback my_object.write -- nos permite empacotar o objeto em uma nova função run_callback my_object\write ``` + ```yue diff --git a/doc/docs/pt-br/doc/getting-started/usage.md b/doc/docs/pt-br/doc/getting-started/usage.md index 7653838..055c6c2 100644 --- a/doc/docs/pt-br/doc/getting-started/usage.md +++ b/doc/docs/pt-br/doc/getting-started/usage.md @@ -4,49 +4,51 @@ Use o módulo YueScript em Lua: -* **Caso 1** - - Use require em "your_yuescript_entry.yue" no Lua. - ```Lua - require("yue")("your_yuescript_entry") - ``` - E esse código continua funcionando quando você compila "your_yuescript_entry.yue" para "your_yuescript_entry.lua" no mesmo caminho. Nos demais arquivos YueScript, use normalmente o **require** ou **import**. Os números de linha nas mensagens de erro também serão tratados corretamente. - -* **Caso 2** - - Requerer o módulo YueScript e reescrever a mensagem manualmente. - - ```lua - local yue = require("yue") - yue.insert_loader() - local success, result = xpcall(function() - return require("yuescript_module_name") - end, function(err) - return yue.traceback(err) - end) - ``` - -* **Caso 3** - - Usar a função compiladora do YueScript em Lua. - - ```lua - local yue = require("yue") - local codes, err, globals = yue.to_lua([[ - f = -> - print "hello world" - f! - ]],{ - implicit_return_root = true, - reserve_line_number = true, - lint_global = true, - space_over_tab = false, - options = { - target = "5.4", - path = "/script" - } - }) - ``` +- **Caso 1** + + Use require em "your_yuescript_entry.yue" no Lua. + + ```Lua + require("yue")("your_yuescript_entry") + ``` + + E esse código continua funcionando quando você compila "your_yuescript_entry.yue" para "your_yuescript_entry.lua" no mesmo caminho. Nos demais arquivos YueScript, use normalmente o **require** ou **import**. Os números de linha nas mensagens de erro também serão tratados corretamente. + +- **Caso 2** + + Requerer o módulo YueScript e reescrever a mensagem manualmente. + + ```lua + local yue = require("yue") + yue.insert_loader() + local success, result = xpcall(function() + return require("yuescript_module_name") + end, function(err) + return yue.traceback(err) + end) + ``` + +- **Caso 3** + + Usar a função compiladora do YueScript em Lua. + + ```lua + local yue = require("yue") + local codes, err, globals = yue.to_lua([[ + f = -> + print "hello world" + f! + ]],{ + implicit_return_root = true, + reserve_line_number = true, + lint_global = true, + space_over_tab = false, + options = { + target = "5.4", + path = "/script" + } + }) + ``` ## Ferramenta YueScript diff --git a/doc/docs/pt-br/doc/language-basics/attributes.md b/doc/docs/pt-br/doc/language-basics/attributes.md index 8e27f21..18bc585 100644 --- a/doc/docs/pt-br/doc/language-basics/attributes.md +++ b/doc/docs/pt-br/doc/language-basics/attributes.md @@ -6,6 +6,7 @@ Suporte de sintaxe para atributos do Lua 5.4. E você ainda pode usar tanto a de const a = 123 close _ = : -> print "Fora do escopo." ``` + ```yue @@ -21,6 +22,7 @@ Você pode fazer desestruturação com variáveis atribuídas como constante. const {:a, :b, c, d} = tb -- a = 1 ``` + ```yue @@ -36,6 +38,7 @@ Você também pode declarar uma variável global como `const`. global const Constant = 123 -- Constant = 1 ``` + ```yue diff --git a/doc/docs/pt-br/doc/language-basics/comment.md b/doc/docs/pt-br/doc/language-basics/comment.md index ed3102d..6316084 100644 --- a/doc/docs/pt-br/doc/language-basics/comment.md +++ b/doc/docs/pt-br/doc/language-basics/comment.md @@ -12,6 +12,7 @@ Está OK. func --[[port]] 3000, --[[ip]] "192.168.1.1" ``` + ```yue diff --git a/doc/docs/pt-br/doc/language-basics/literals.md b/doc/docs/pt-br/doc/language-basics/literals.md index b32b73a..6db3f01 100644 --- a/doc/docs/pt-br/doc/language-basics/literals.md +++ b/doc/docs/pt-br/doc/language-basics/literals.md @@ -12,6 +12,7 @@ some_string = "Aqui está uma string -- Interpolação de string está disponível apenas em strings com aspas duplas. print "Tenho #{math.random! * 100}% de certeza." ``` + ```yue @@ -34,6 +35,7 @@ integer = 1_000_000 hex = 0xEF_BB_BF binary = 0B10011 ``` + ```yue @@ -55,6 +57,7 @@ str = | - item1 - #{expr} ``` + ```yue @@ -78,6 +81,7 @@ fn = -> bar: baz return str ``` + ```yue @@ -99,6 +103,7 @@ str = | path: "C:\Program Files\App" note: 'Ele disse: "#{Hello}!"' ``` + ```yue diff --git a/doc/docs/pt-br/doc/language-basics/operator.md b/doc/docs/pt-br/doc/language-basics/operator.md index aba9c50..6371343 100644 --- a/doc/docs/pt-br/doc/language-basics/operator.md +++ b/doc/docs/pt-br/doc/language-basics/operator.md @@ -6,6 +6,7 @@ Todos os operadores binários e unários do Lua estão disponíveis. Além disso tb\func! if tb ~= nil tb::func! if tb != nil ``` + ```yue @@ -27,6 +28,7 @@ a = 5 print 1 <= a <= 10 -- saída: true ``` + ```yue @@ -64,6 +66,7 @@ print v(1) > v(2) <= v(3) false ]] ``` + ```yue @@ -101,6 +104,7 @@ O operador **[] =** é usado para anexar valores a tabelas. tab = [] tab[] = "Value" ``` + ```yue @@ -118,6 +122,7 @@ tbB = [4, 5, 6] tbA[] = ...tbB -- tbA agora é [1, 2, 3, 4, 5, 6] ``` + ```yue @@ -149,6 +154,7 @@ a = {1, 2, 3, x: 1} b = {4, 5, y: 1} merge = {...a, ...b} ``` + ```yue @@ -179,6 +185,7 @@ last = data.items[#] second_last = data.items[#-1] data.items[#] = 1 ``` + ```yue @@ -212,6 +219,7 @@ print d.value close _ = : -> print "fora do escopo" ``` + ```yue @@ -245,6 +253,7 @@ print tb.value tb.<> = __index: {item: "hello"} print tb.item ``` + ```yue @@ -266,6 +275,7 @@ Desestruture a metatable com chave de metamétodo cercada por **<>**. {item, :new, :, : getter} = tb print item, new, close, getter ``` + ```yue @@ -293,6 +303,7 @@ with? io.open "test.txt", "w" \write "hello" \close! ``` + ```yue @@ -329,6 +340,7 @@ readFile "example.txt" |> render |> print ``` + ```yue @@ -349,6 +361,7 @@ readFile "example.txt" ## Coalescência de nil O operador de coalescência de nil **??** retorna o valor do operando esquerdo se não for **nil**; caso contrário, avalia o operando direito e retorna seu resultado. O operador **??** não avalia seu operando direito se o operando esquerdo avaliar para não-nil. + ```yuescript local a, b, c, d a = b ?? c ?? d @@ -356,6 +369,7 @@ func a ?? {} a ??= false ``` + ```yue @@ -413,6 +427,7 @@ tb = tb: { } ``` + ```yue diff --git a/doc/docs/pt-br/doc/language-basics/whitespace.md b/doc/docs/pt-br/doc/language-basics/whitespace.md index df844f9..bad11d1 100644 --- a/doc/docs/pt-br/doc/language-basics/whitespace.md +++ b/doc/docs/pt-br/doc/language-basics/whitespace.md @@ -9,6 +9,7 @@ Uma instrução normalmente termina em uma quebra de linha. Você também pode u ```yuescript a = 1; b = 2; print a + b ``` + ```yue @@ -29,6 +30,7 @@ Rx.Observable \map (value) -> value .. '!' \subscribe print ``` + ```yue diff --git a/doc/docs/pt-br/doc/objects/object-oriented-programming.md b/doc/docs/pt-br/doc/objects/object-oriented-programming.md index 3d5f061..54a559a 100644 --- a/doc/docs/pt-br/doc/objects/object-oriented-programming.md +++ b/doc/docs/pt-br/doc/objects/object-oriented-programming.md @@ -15,6 +15,7 @@ class Inventory else @items[name] = 1 ``` + ```yue @@ -46,6 +47,7 @@ inv = Inventory! inv\add_item "t-shirt" inv\add_item "pants" ``` + ```yue @@ -77,6 +79,7 @@ b\give_item "shirt" -- vai imprimir tanto pants quanto shirt print item for item in *a.clothes ``` + ```yue @@ -104,6 +107,7 @@ class Person new: => @clothes = [] ``` + ```yue @@ -125,6 +129,7 @@ class BackPack extends Inventory if #@items > size then error "backpack is full" super name ``` + ```yue @@ -141,7 +146,7 @@ Aqui estendemos nossa classe Inventory e limitamos a quantidade de itens que ela Neste exemplo, não definimos um construtor na subclasse, então o construtor da classe pai é chamado quando criamos uma nova instância. Se definirmos um construtor, podemos usar o método super para chamar o construtor pai. -Sempre que uma classe herda de outra, ela envia uma mensagem à classe pai chamando o método __inherited na classe pai se ele existir. A função recebe dois argumentos: a classe que está sendo herdada e a classe filha. +Sempre que uma classe herda de outra, ela envia uma mensagem à classe pai chamando o método \_\_inherited na classe pai se ele existir. A função recebe dois argumentos: a classe que está sendo herdada e a classe filha. ```yuescript class Shelf @@ -151,6 +156,7 @@ class Shelf -- vai imprimir: Shelf was inherited by Cupboard class Cupboard extends Shelf ``` + ```yue @@ -189,6 +195,7 @@ class MyClass extends ParentClass -- super como valor é igual à classe pai: assert super == ParentClass ``` + ```yue @@ -209,7 +216,7 @@ class MyClass extends ParentClass ## Tipos -Cada instância de uma classe carrega seu tipo consigo. Isso é armazenado na propriedade especial __class. Esta propriedade contém o objeto da classe. O objeto da classe é o que chamamos para construir uma nova instância. Também podemos indexar o objeto da classe para recuperar métodos e propriedades da classe. +Cada instância de uma classe carrega seu tipo consigo. Isso é armazenado na propriedade especial \_\_class. Esta propriedade contém o objeto da classe. O objeto da classe é o que chamamos para construir uma nova instância. Também podemos indexar o objeto da classe para recuperar métodos e propriedades da classe. ```yuescript b = BackPack! @@ -217,6 +224,7 @@ assert b.__class == BackPack print BackPack.size -- imprime 10 ``` + ```yue @@ -238,15 +246,16 @@ Uma classe é composta por duas tabelas. A própria tabela da classe e a tabela A metatable do objeto da classe lê propriedades da base se não existirem no objeto da classe. Isso significa que podemos acessar funções e propriedades diretamente da classe. -É importante notar que atribuir ao objeto da classe não atribui à base, então não é uma forma válida de adicionar novos métodos às instâncias. Em vez disso, a base deve ser alterada explicitamente. Veja o campo __base abaixo. +É importante notar que atribuir ao objeto da classe não atribui à base, então não é uma forma válida de adicionar novos métodos às instâncias. Em vez disso, a base deve ser alterada explicitamente. Veja o campo \_\_base abaixo. O objeto da classe tem algumas propriedades especiais: -O nome da classe quando foi declarada é armazenado como string no campo __name do objeto da classe. +O nome da classe quando foi declarada é armazenado como string no campo \_\_name do objeto da classe. ```yuescript print BackPack.__name -- imprime Backpack ``` + ```yue @@ -255,9 +264,9 @@ print BackPack.__name -- imprime Backpack -O objeto base é armazenado em __base. Podemos modificar esta tabela para adicionar funcionalidade a instâncias que já foram criadas e às que ainda serão criadas. +O objeto base é armazenado em \_\_base. Podemos modificar esta tabela para adicionar funcionalidade a instâncias que já foram criadas e às que ainda serão criadas. -Se a classe estende de algo, o objeto da classe pai é armazenado em __parent. +Se a classe estende de algo, o objeto da classe pai é armazenado em \_\_parent. ## Variáveis de classe @@ -272,6 +281,7 @@ Things\some_func! -- variáveis de classe não visíveis em instâncias assert Things().some_func == nil ``` + ```yue @@ -286,7 +296,7 @@ assert Things().some_func == nil -Em expressões, podemos usar @@ para acessar um valor armazenado no __class de self. Assim, @@hello é abreviação para self.__class.hello. +Em expressões, podemos usar @@ para acessar um valor armazenado no **class de self. Assim, @@hello é abreviação para self.**class.hello. ```yuescript class Counter @@ -300,6 +310,7 @@ Counter! print Counter.count -- imprime 2 ``` + ```yue @@ -322,6 +333,7 @@ A semântica de chamada de @@ é semelhante a @. Chamar um nome @@ passará a cl ```yuescript @@hello 1,2,3,4 ``` + ```yue @@ -340,6 +352,7 @@ Aqui está uma forma alternativa de criar variável de classe comparada ao descr class Things @class_var = "hello world" ``` + ```yue @@ -361,6 +374,7 @@ class MoreThings some_method: => log "hello world: " .. secret ``` + ```yue @@ -376,14 +390,15 @@ class MoreThings ## Valores @ e @@ -Quando @ e @@ são prefixados na frente de um nome, eles representam, respectivamente, esse nome acessado em self e self.__class. +Quando @ e @@ são prefixados na frente de um nome, eles representam, respectivamente, esse nome acessado em self e self.\_\_class. -Se forem usados sozinhos, são aliases para self e self.__class. +Se forem usados sozinhos, são aliases para self e self.\_\_class. ```yuescript assert @ == self assert @@ == self.__class ``` + ```yue @@ -398,6 +413,7 @@ Por exemplo, uma forma rápida de criar uma nova instância da mesma classe a pa ```yuescript some_instance_method = (...) => @@ ... ``` + ```yue @@ -423,6 +439,7 @@ class Something @@biz = biz @@baz = baz ``` + ```yue @@ -448,6 +465,7 @@ new = (@fieldA, @fieldB) => @ obj = new {}, 123, "abc" print obj ``` + ```yue @@ -467,6 +485,7 @@ x = class Bucket drops: 0 add_drop: => @drops += 1 ``` + ```yue @@ -479,7 +498,7 @@ x = class Bucket ## Classes anônimas -O nome pode ser omitido ao declarar uma classe. O atributo __name será nil, a menos que a expressão da classe esteja em uma atribuição. O nome no lado esquerdo da atribuição é usado em vez de nil. +O nome pode ser omitido ao declarar uma classe. O atributo \_\_name será nil, a menos que a expressão da classe esteja em uma atribuição. O nome no lado esquerdo da atribuição é usado em vez de nil. ```yuescript BigBucket = class extends Bucket @@ -487,6 +506,7 @@ BigBucket = class extends Bucket assert Bucket.__name == "BigBucket" ``` + ```yue @@ -503,6 +523,7 @@ Você pode até omitir o corpo, significando que pode escrever uma classe anôni ```yuescript x = class ``` + ```yue @@ -532,6 +553,7 @@ y\func! assert y.__class.__parent ~= X -- X não é pai de Y ``` + ```yue diff --git a/doc/docs/pt-br/doc/objects/with-statement.md b/doc/docs/pt-br/doc/objects/with-statement.md index 6495d09..e5a56e5 100644 --- a/doc/docs/pt-br/doc/objects/with-statement.md +++ b/doc/docs/pt-br/doc/objects/with-statement.md @@ -15,6 +15,7 @@ with Person! \save! print .name ``` + ```yue @@ -33,6 +34,7 @@ A instrução with também pode ser usada como expressão que retorna o valor ao file = with File "favorite_foods.txt" \set_encoding "utf8" ``` + ```yue @@ -52,6 +54,7 @@ create_person = (name, relatives) -> me = create_person "Leaf", [dad, mother, sister] ``` + ```yue @@ -74,6 +77,7 @@ with str := "Hello" print "original:", str print "upper:", \upper! ``` + ```yue @@ -95,6 +99,7 @@ with tb ["key-name"] = value [] = "abc" -- anexando a "tb" ``` + ```yue @@ -115,6 +120,7 @@ with tb with? obj print obj.name ``` + ```yue diff --git a/doc/docs/pt-br/doc/reference/the-yuescript-library.md b/doc/docs/pt-br/doc/reference/the-yuescript-library.md index 2a65ffb..7775cd5 100644 --- a/doc/docs/pt-br/doc/reference/the-yuescript-library.md +++ b/doc/docs/pt-br/doc/reference/the-yuescript-library.md @@ -17,6 +17,7 @@ A biblioteca da linguagem YueScript. A versão do YueScript. **Assinatura:** + ```lua version: string ``` @@ -30,6 +31,7 @@ version: string O separador de arquivos da plataforma atual. **Assinatura:** + ```lua dirsep: string ``` @@ -43,6 +45,7 @@ dirsep: string O cache de código de módulo compilado. **Assinatura:** + ```lua yue_compiled: {string: string} ``` @@ -56,6 +59,7 @@ yue_compiled: {string: string} A função de compilação do YueScript. Compila o código YueScript para código Lua. **Assinatura:** + ```lua to_lua: function(code: string, config?: Config): --[[codes]] string | nil, @@ -65,17 +69,17 @@ to_lua: function(code: string, config?: Config): **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| code | string | O código YueScript. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| code | string | O código YueScript. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| string \| nil | O código Lua compilado, ou nil se a compilação falhou. | -| string \| nil | A mensagem de erro, ou nil se a compilação foi bem-sucedida. | +| Tipo de Retorno | Descrição | +| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| string \| nil | O código Lua compilado, ou nil se a compilação falhou. | +| string \| nil | A mensagem de erro, ou nil se a compilação foi bem-sucedida. | | {{string, integer, integer}} \| nil | As variáveis globais que aparecem no código (com nome, linha e coluna), ou nil se a opção do compilador `lint_global` for false. | ### file_exist @@ -87,21 +91,22 @@ to_lua: function(code: string, config?: Config): Função de verificação de existência do arquivo fonte. Pode ser sobrescrita para personalizar o comportamento. **Assinatura:** + ```lua file_exist: function(filename: string): boolean ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| filename | string | O nome do arquivo. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ------------------ | +| filename | string | O nome do arquivo. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| boolean | Se o arquivo existe. | +| Tipo de Retorno | Descrição | +| --------------- | -------------------- | +| boolean | Se o arquivo existe. | ### read_file @@ -112,21 +117,22 @@ file_exist: function(filename: string): boolean Função de leitura do arquivo fonte. Pode ser sobrescrita para personalizar o comportamento. **Assinatura:** + ```lua read_file: function(filename: string): string ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| filename | string | O nome do arquivo. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ------------------ | +| filename | string | O nome do arquivo. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| string | O conteúdo do arquivo. | +| Tipo de Retorno | Descrição | +| --------------- | ---------------------- | +| string | O conteúdo do arquivo. | ### insert_loader @@ -137,21 +143,22 @@ read_file: function(filename: string): string Insere o carregador YueScript nos carregadores de pacote (searchers). **Assinatura:** + ```lua insert_loader: function(pos?: integer): boolean ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| pos | integer | [Opcional] A posição para inserir o carregador. Padrão é 3. | +| Parâmetro | Tipo | Descrição | +| --------- | ------- | ----------------------------------------------------------- | +| pos | integer | [Opcional] A posição para inserir o carregador. Padrão é 3. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| boolean | Se o carregador foi inserido com sucesso. Falhará se o carregador já estiver inserido. | +| Tipo de Retorno | Descrição | +| --------------- | -------------------------------------------------------------------------------------- | +| boolean | Se o carregador foi inserido com sucesso. Falhará se o carregador já estiver inserido. | ### remove_loader @@ -162,15 +169,16 @@ insert_loader: function(pos?: integer): boolean Remove o carregador YueScript dos carregadores de pacote (searchers). **Assinatura:** + ```lua remove_loader: function(): boolean ``` **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| boolean | Se o carregador foi removido com sucesso. Falhará se o carregador não estiver inserido. | +| Tipo de Retorno | Descrição | +| --------------- | --------------------------------------------------------------------------------------- | +| boolean | Se o carregador foi removido com sucesso. Falhará se o carregador não estiver inserido. | ### loadstring @@ -181,6 +189,7 @@ remove_loader: function(): boolean Carrega código YueScript de uma string em uma função. **Assinatura:** + ```lua loadstring: function(input: string, chunkname: string, env: table, config?: Config): --[[loaded function]] nil | function(...: any): (any...), @@ -189,19 +198,19 @@ loadstring: function(input: string, chunkname: string, env: table, config?: Conf **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| input | string | O código YueScript. | -| chunkname | string | O nome do chunk de código. | -| env | table | A tabela de ambiente. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| input | string | O código YueScript. | +| chunkname | string | O nome do chunk de código. | +| env | table | A tabela de ambiente. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| function \| nil | A função carregada, ou nil se o carregamento falhou. | -| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | +| Tipo de Retorno | Descrição | +| --------------- | -------------------------------------------------------------- | +| function \| nil | A função carregada, ou nil se o carregamento falhou. | +| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | ### loadstring @@ -212,6 +221,7 @@ loadstring: function(input: string, chunkname: string, env: table, config?: Conf Carrega código YueScript de uma string em uma função. **Assinatura:** + ```lua loadstring: function(input: string, chunkname: string, config?: Config): --[[loaded function]] nil | function(...: any): (any...), @@ -220,18 +230,18 @@ loadstring: function(input: string, chunkname: string, config?: Config): **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| input | string | O código YueScript. | -| chunkname | string | O nome do chunk de código. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| input | string | O código YueScript. | +| chunkname | string | O nome do chunk de código. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| function \| nil | A função carregada, ou nil se o carregamento falhou. | -| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | +| Tipo de Retorno | Descrição | +| --------------- | -------------------------------------------------------------- | +| function \| nil | A função carregada, ou nil se o carregamento falhou. | +| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | ### loadstring @@ -242,6 +252,7 @@ loadstring: function(input: string, chunkname: string, config?: Config): Carrega código YueScript de uma string em uma função. **Assinatura:** + ```lua loadstring: function(input: string, config?: Config): --[[loaded function]] nil | function(...: any): (any...), @@ -250,17 +261,17 @@ loadstring: function(input: string, config?: Config): **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| input | string | O código YueScript. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| input | string | O código YueScript. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| function \| nil | A função carregada, ou nil se o carregamento falhou. | -| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | +| Tipo de Retorno | Descrição | +| --------------- | -------------------------------------------------------------- | +| function \| nil | A função carregada, ou nil se o carregamento falhou. | +| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | ### loadfile @@ -271,6 +282,7 @@ loadstring: function(input: string, config?: Config): Carrega código YueScript de um arquivo em uma função. **Assinatura:** + ```lua loadfile: function(filename: string, env: table, config?: Config): nil | function(...: any): (any...), @@ -279,18 +291,18 @@ loadfile: function(filename: string, env: table, config?: Config): **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| filename | string | O nome do arquivo. | -| env | table | A tabela de ambiente. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| filename | string | O nome do arquivo. | +| env | table | A tabela de ambiente. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| function \| nil | A função carregada, ou nil se o carregamento falhou. | -| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | +| Tipo de Retorno | Descrição | +| --------------- | -------------------------------------------------------------- | +| function \| nil | A função carregada, ou nil se o carregamento falhou. | +| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | ### loadfile @@ -301,6 +313,7 @@ loadfile: function(filename: string, env: table, config?: Config): Carrega código YueScript de um arquivo em uma função. **Assinatura:** + ```lua loadfile: function(filename: string, config?: Config): nil | function(...: any): (any...), @@ -309,17 +322,17 @@ loadfile: function(filename: string, config?: Config): **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| filename | string | O nome do arquivo. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| filename | string | O nome do arquivo. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| function \| nil | A função carregada, ou nil se o carregamento falhou. | -| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | +| Tipo de Retorno | Descrição | +| --------------- | -------------------------------------------------------------- | +| function \| nil | A função carregada, ou nil se o carregamento falhou. | +| string \| nil | A mensagem de erro, ou nil se o carregamento foi bem-sucedido. | ### dofile @@ -330,23 +343,24 @@ loadfile: function(filename: string, config?: Config): Carrega código YueScript de um arquivo em uma função e o executa. **Assinatura:** + ```lua dofile: function(filename: string, env: table, config?: Config): any... ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| filename | string | O nome do arquivo. | -| env | table | A tabela de ambiente. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| filename | string | O nome do arquivo. | +| env | table | A tabela de ambiente. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| any... | Os valores de retorno da função carregada. | +| Tipo de Retorno | Descrição | +| --------------- | ------------------------------------------ | +| any... | Os valores de retorno da função carregada. | ### dofile @@ -357,22 +371,23 @@ dofile: function(filename: string, env: table, config?: Config): any... Carrega código YueScript de um arquivo em uma função e o executa. **Assinatura:** + ```lua dofile: function(filename: string, config?: Config): any... ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| filename | string | O nome do arquivo. | -| config | Config | [Opcional] As opções do compilador. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------------------------- | +| filename | string | O nome do arquivo. | +| config | Config | [Opcional] As opções do compilador. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| any... | Os valores de retorno da função carregada. | +| Tipo de Retorno | Descrição | +| --------------- | ------------------------------------------ | +| any... | Os valores de retorno da função carregada. | ### find_modulepath @@ -383,21 +398,22 @@ dofile: function(filename: string, config?: Config): any... Resolve o nome do módulo YueScript para o caminho do arquivo. **Assinatura:** + ```lua find_modulepath: function(name: string): string ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| name | string | O nome do módulo. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------- | +| name | string | O nome do módulo. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| string | O caminho do arquivo. | +| Tipo de Retorno | Descrição | +| --------------- | --------------------- | +| string | O caminho do arquivo. | ### pcall @@ -410,22 +426,23 @@ Captura quaisquer erros e retorna um código de status e resultados ou objeto de Reescreve o número da linha do erro para o número da linha original no código YueScript quando ocorrem erros. **Assinatura:** + ```lua pcall: function(f: function, ...: any): boolean, any... ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| f | function | A função a chamar. | -| ... | any | Argumentos a passar para a função. | +| Parâmetro | Tipo | Descrição | +| --------- | -------- | ---------------------------------- | +| f | function | A função a chamar. | +| ... | any | Argumentos a passar para a função. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| boolean, ... | Código de status e resultados da função ou objeto de erro. | +| Tipo de Retorno | Descrição | +| --------------- | ---------------------------------------------------------- | +| boolean, ... | Código de status e resultados da função ou objeto de erro. | ### require @@ -437,21 +454,22 @@ Carrega um módulo dado. Pode ser um módulo Lua ou um módulo YueScript. Reescreve o número da linha do erro para o número da linha original no código YueScript se o módulo for um módulo YueScript e o carregamento falhar. **Assinatura:** + ```lua require: function(name: string): any... ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| modname | string | O nome do módulo a carregar. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ---------------------------- | +| modname | string | O nome do módulo a carregar. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| any | O valor armazenado em package.loaded[modname] se o módulo já estiver carregado. Caso contrário, tenta encontrar um carregador e retorna o valor final de package.loaded[modname] e os dados do carregador como segundo resultado. | +| Tipo de Retorno | Descrição | +| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| any | O valor armazenado em package.loaded[modname] se o módulo já estiver carregado. Caso contrário, tenta encontrar um carregador e retorna o valor final de package.loaded[modname] e os dados do carregador como segundo resultado. | ### p @@ -462,15 +480,16 @@ require: function(name: string): any... Inspeciona as estruturas dos valores passados e imprime representações em string. **Assinatura:** + ```lua p: function(...: any) ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| ... | any | Os valores a inspecionar. | +| Parâmetro | Tipo | Descrição | +| --------- | ---- | ------------------------- | +| ... | any | Os valores a inspecionar. | ### options @@ -481,6 +500,7 @@ p: function(...: any) As opções atuais do compilador. **Assinatura:** + ```lua options: Config.Options ``` @@ -494,21 +514,22 @@ options: Config.Options A função traceback que reescreve os números das linhas do stack trace para os números das linhas originais no código YueScript. **Assinatura:** + ```lua traceback: function(message: string): string ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| message | string | A mensagem de traceback. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ------------------------ | +| message | string | A mensagem de traceback. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| string | A mensagem de traceback reescrita. | +| Tipo de Retorno | Descrição | +| --------------- | ---------------------------------- | +| string | A mensagem de traceback reescrita. | ### is_ast @@ -519,22 +540,23 @@ traceback: function(message: string): string Verifica se o código corresponde ao AST especificado. **Assinatura:** + ```lua is_ast: function(astName: string, code: string): boolean ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| astName | string | O nome do AST. | -| code | string | O código. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | -------------- | +| astName | string | O nome do AST. | +| code | string | O código. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| boolean | Se o código corresponde ao AST. | +| Tipo de Retorno | Descrição | +| --------------- | ------------------------------- | +| boolean | Se o código corresponde ao AST. | ### AST @@ -545,6 +567,7 @@ is_ast: function(astName: string, code: string): boolean A definição do tipo AST com nome, linha, coluna e subnós. **Assinatura:** + ```lua type AST = {string, integer, integer, any} ``` @@ -558,6 +581,7 @@ type AST = {string, integer, integer, any} Converte o código para o AST. **Assinatura:** + ```lua to_ast: function(code: string, flattenLevel?: number, astName?: string, reserveComment?: boolean): --[[AST]] AST | nil, @@ -566,19 +590,19 @@ to_ast: function(code: string, flattenLevel?: number, astName?: string, reserveC **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| code | string | O código. | -| flattenLevel | integer | [Opcional] O nível de achatamento. Nível mais alto significa mais achatamento. Padrão é 0. Máximo é 2. | -| astName | string | [Opcional] O nome do AST. Padrão é "File". | -| reserveComment | boolean | [Opcional] Se deve preservar os comentários originais. Padrão é false. | +| Parâmetro | Tipo | Descrição | +| -------------- | ------- | ------------------------------------------------------------------------------------------------------ | +| code | string | O código. | +| flattenLevel | integer | [Opcional] O nível de achatamento. Nível mais alto significa mais achatamento. Padrão é 0. Máximo é 2. | +| astName | string | [Opcional] O nome do AST. Padrão é "File". | +| reserveComment | boolean | [Opcional] Se deve preservar os comentários originais. Padrão é false. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| AST \| nil | O AST, ou nil se a conversão falhou. | -| string \| nil | A mensagem de erro, ou nil se a conversão foi bem-sucedida. | +| Tipo de Retorno | Descrição | +| --------------- | ----------------------------------------------------------- | +| AST \| nil | O AST, ou nil se a conversão falhou. | +| string \| nil | A mensagem de erro, ou nil se a conversão foi bem-sucedida. | ### format @@ -589,25 +613,26 @@ to_ast: function(code: string, flattenLevel?: number, astName?: string, reserveC Formata o código YueScript. **Assinatura:** + ```lua format: function(code: string, tabSize?: number, reserveComment?: boolean): string ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| code | string | O código. | -| tabSize | integer | [Opcional] O tamanho da tabulação. Padrão é 4. | +| Parâmetro | Tipo | Descrição | +| -------------- | ------- | --------------------------------------------------------------------- | +| code | string | O código. | +| tabSize | integer | [Opcional] O tamanho da tabulação. Padrão é 4. | | reserveComment | boolean | [Opcional] Se deve preservar os comentários originais. Padrão é true. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| string | O código formatado. | +| Tipo de Retorno | Descrição | +| --------------- | ------------------- | +| string | O código formatado. | -### __call +### \_\_call **Tipo:** Metamétodo. @@ -617,21 +642,22 @@ Requer o módulo YueScript. Reescreve o número da linha do erro para o número da linha original no código YueScript quando o carregamento falha. **Assinatura:** + ```lua metamethod __call: function(self: yue, module: string): any... ``` **Parâmetros:** -| Parâmetro | Tipo | Descrição | -| --- | --- | --- | -| module | string | O nome do módulo. | +| Parâmetro | Tipo | Descrição | +| --------- | ------ | ----------------- | +| module | string | O nome do módulo. | **Retorna:** -| Tipo de Retorno | Descrição | -| --- | --- | -| any | O valor do módulo. | +| Tipo de Retorno | Descrição | +| --------------- | ------------------ | +| any | O valor do módulo. | ## Config @@ -648,6 +674,7 @@ As opções de compilação do compilador. Se o compilador deve coletar as variáveis globais que aparecem no código. **Assinatura:** + ```lua lint_global: boolean ``` @@ -661,6 +688,7 @@ lint_global: boolean Se o compilador deve fazer retorno implícito para o bloco de código raiz. **Assinatura:** + ```lua implicit_return_root: boolean ``` @@ -674,6 +702,7 @@ implicit_return_root: boolean Se o compilador deve preservar o número da linha original no código compilado. **Assinatura:** + ```lua reserve_line_number: boolean ``` @@ -687,6 +716,7 @@ reserve_line_number: boolean Se o compilador deve preservar os comentários originais no código compilado. **Assinatura:** + ```lua reserve_comment: boolean ``` @@ -700,6 +730,7 @@ reserve_comment: boolean Se o compilador deve usar o caractere de espaço em vez do caractere de tabulação no código compilado. **Assinatura:** + ```lua space_over_tab: boolean ``` @@ -713,6 +744,7 @@ space_over_tab: boolean Se o compilador deve tratar o código a ser compilado como o mesmo módulo que está sendo compilado atualmente. Apenas para uso interno. **Assinatura:** + ```lua same_module: boolean ``` @@ -726,6 +758,7 @@ same_module: boolean Se a mensagem de erro do compilador deve incluir o deslocamento do número da linha. Apenas para uso interno. **Assinatura:** + ```lua line_offset: integer ``` @@ -739,6 +772,7 @@ line_offset: integer A enumeração da versão alvo do Lua. **Assinatura:** + ```lua enum LuaTarget "5.1" @@ -758,6 +792,7 @@ end As opções extras a serem passadas para a função de compilação. **Assinatura:** + ```lua options: Options ``` @@ -777,6 +812,7 @@ A definição das opções extras do compilador. A versão alvo do Lua para a compilação. **Assinatura:** + ```lua target: LuaTarget ``` @@ -790,6 +826,7 @@ target: LuaTarget O caminho de busca de módulo extra. **Assinatura:** + ```lua path: string ``` @@ -803,6 +840,7 @@ path: string Se deve incluir as variáveis locais na mensagem de erro do traceback. Padrão é false. **Assinatura:** + ```lua dump_locals: boolean ``` @@ -816,6 +854,7 @@ dump_locals: boolean Se deve simplificar a mensagem de erro. Padrão é true. **Assinatura:** + ```lua simplified: boolean ``` diff --git a/doc/docs/pt-br/index.md b/doc/docs/pt-br/index.md index 818bb58..e62095f 100644 --- a/doc/docs/pt-br/index.md +++ b/doc/docs/pt-br/index.md @@ -21,4 +21,5 @@ footer: message: Licença MIT. copyright: Copyright © 2017-2026 Li Jin. Todos os direitos reservados. --- + --- diff --git a/doc/docs/pt-br/try/index.md b/doc/docs/pt-br/try/index.md index 624b3bf..918162d 100755 --- a/doc/docs/pt-br/try/index.md +++ b/doc/docs/pt-br/try/index.md @@ -1,4 +1,5 @@ # Compilador online do YueScript + --- Experimente YueScript no navegador com WASM. -- cgit v1.2.3-55-g6feb