From 270a5ceb22cbc2902651f4437d9aea4693983872 Mon Sep 17 00:00:00 2001 From: perro Date: Wed, 15 Mar 2023 16:33:53 -0700 Subject: [PATCH] Ready for parsing functions --- dist/linp.lua | 67 ++++++++++++++++++---------------- scripts/make_jsons.sh | 11 ++++++ scripts/test.sh | 14 +++---- src/literate.lua | 27 +++++++++++--- src/pandoc.lua | 40 +++++++------------- tests/fail.lit.complex.md | 9 ++--- tests/pass.lit.complex.md | 26 +++++-------- tests/pass.lit.complex.md.json | 2 +- tests/pass.lit.ignored.md | 1 - tests/pass.lit.ignored.md.json | 2 +- tests/pass.lit.simple.md.json | 2 +- 11 files changed, 103 insertions(+), 98 deletions(-) create mode 100644 scripts/make_jsons.sh diff --git a/dist/linp.lua b/dist/linp.lua index c29cbc7..1c10bcd 100644 --- a/dist/linp.lua +++ b/dist/linp.lua @@ -6264,12 +6264,15 @@ local nat = {} ----------------------------------- LITERATE ---------------------------------- --- TODO +-- Variable for all literate stuff local lit = {} -- Ordered collection of fn call, fn declarations or literal elements lit.collection = {} +-- Grammars +lit.g = {} + -- Lexical elements lit.space = lpeg.S" \t\r\n" lit.spot = (1 - lit.space) @@ -6288,8 +6291,8 @@ function lit.add_lit(str) table.insert(lit.collection, {literal = str}) end --- Grammar -lit.G = lpeg.P { +-- Inlines grammar +lit.g.inlines = lpeg.P { "Doc"; Doc = (lpeg.V"Call" + lpeg.V"Declaration" + lpeg.V"Literal")^0; Call = lit.t1^1 / lit.add_call; @@ -6298,6 +6301,7 @@ lit.G = lpeg.P { } -- Evals Lisp code +--[[ function lit.eval(code) local is_passed, out = pcall ( function () return fennel.eval(code) end, @@ -6311,49 +6315,48 @@ function lit.eval(code) end return {is_passed = is_passed, preview = preview, out = out, lua = lua} end +]]-- -function lit.parse(raw) - lpeg.match(lit.G, raw) -- TODO +function lit.parse_declarations(codeblock) + print(codeblock) + return codeblock +end + +function lit.parse_calls(inlines) + str = pandoc.utils.stringify(inlines) + print(str) + -- lpeg.match(lit.g.inlines, raw) + --[[ local doc = "" for i, t in ipairs(lit.collection) do for k, v in pairs(t) do - -- print(i, k, v) + print(i, k, v) doc = doc .. v end end return doc + ]]-- + return inlines end ------------------------------------ PANDOC ----------------------------------- -local function is_chosen(block) - chosen, content = true, block.content - if content == nil or pandoc.utils.type(content) ~= "Inlines" then - chosen = false - end - return chosen -end - -local function sanitize(inlines) - for i, inline in ipairs(inlines) do - if inline.tag == "Code" then - inlines:remove(i) - elseif inline.tag == "Quoted" then - str = pandoc.utils.stringify(inline.content):gsub('"', '\\"') - inlines[i] = '"' .. str .. '"' - end - end - return pandoc.utils.stringify(inlines) -end - return { { - Block = function (block) - if is_chosen(block) then - raw = sanitize(block.content) - doc = lit.parse(raw) - -- print(doc) - end + -- Parses LiNP declarations + CodeBlock = function(codeblock) + return lit.parse_declarations(codeblock) + end, + }, + { + -- Avoids quotes conversion in stringify + Quoted = function(quoted) + str = pandoc.utils.stringify(quoted.content):gsub('"', '\\"') + return '"' .. str .. '"' + end, + -- Parses and does LiNP calls + Inlines = function(inlines) + return lit.parse_calls(inlines) end, } } diff --git a/scripts/make_jsons.sh b/scripts/make_jsons.sh new file mode 100644 index 0000000..9ba7afc --- /dev/null +++ b/scripts/make_jsons.sh @@ -0,0 +1,11 @@ +# Makes JSON test files + +# Variables +FILTER=dist/linp.lua +FILES="tests/*.md" + +for file in $FILES; do + if [ -f $file.json ]; then + pandoc -L $FILTER -o $file.json $file + fi +done diff --git a/scripts/test.sh b/scripts/test.sh index 66e162e..62a493c 100644 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -21,7 +21,7 @@ echo_help () { # Obtains result as "pass" | "fail" | "diff" (AST doesn't match) get_result () { - result=$([[ $1 -eq 0 ]] && echo "pass" || echo "fail") + result=$([[ $1 -ne 0 ]] && echo "fail" || echo "pass") if [ -f $2.json ]; then diff1=$(cat tmp.json | jq) diff2=$(cat $2.json | jq) @@ -55,15 +55,15 @@ sh scripts/make_dist.sh # Does tests clear && echo "🐾 Starting tests" -for testfile in $FILES; do - echo "⚗️ $testfile:" - expectation=${testfile:6:4} - ast=$(pandoc -L $FILTER -t json -o tmp.json $testfile) - result=$(get_result $? $testfile) +for file in $FILES; do + echo "⚗️ $file:" + expectation=${file:6:4} + ast=$(pandoc -L $FILTER -t json -o tmp.json $file) + result=$(get_result $? $file) echo " Expect: $expectation" echo " Result: $result" if [ "$VERBOSE" = true ]; then - pandoc -L $FILTER -t native $testfile + pandoc -L $FILTER -t native $file fi rm tmp.json done diff --git a/src/literate.lua b/src/literate.lua index 18ee3f7..218737d 100644 --- a/src/literate.lua +++ b/src/literate.lua @@ -1,11 +1,14 @@ ----------------------------------- LITERATE ---------------------------------- --- TODO +-- Variable for all literate stuff local lit = {} -- Ordered collection of fn call, fn declarations or literal elements lit.collection = {} +-- Grammars +lit.g = {} + -- Lexical elements lit.space = lpeg.S" \t\r\n" lit.spot = (1 - lit.space) @@ -24,8 +27,8 @@ function lit.add_lit(str) table.insert(lit.collection, {literal = str}) end --- Grammar -lit.G = lpeg.P { +-- Inlines grammar +lit.g.inlines = lpeg.P { "Doc"; Doc = (lpeg.V"Call" + lpeg.V"Declaration" + lpeg.V"Literal")^0; Call = lit.t1^1 / lit.add_call; @@ -34,6 +37,7 @@ lit.G = lpeg.P { } -- Evals Lisp code +--[[ function lit.eval(code) local is_passed, out = pcall ( function () return fennel.eval(code) end, @@ -47,17 +51,28 @@ function lit.eval(code) end return {is_passed = is_passed, preview = preview, out = out, lua = lua} end +]]-- -function lit.parse(raw) - lpeg.match(lit.G, raw) -- TODO +function lit.parse_declarations(codeblock) + print(codeblock) + return codeblock +end + +function lit.parse_calls(inlines) + str = pandoc.utils.stringify(inlines) + print(str) + -- lpeg.match(lit.g.inlines, raw) + --[[ local doc = "" for i, t in ipairs(lit.collection) do for k, v in pairs(t) do - -- print(i, k, v) + print(i, k, v) doc = doc .. v end end return doc + ]]-- + return inlines end return lit diff --git a/src/pandoc.lua b/src/pandoc.lua index 8873cc6..27b4fca 100644 --- a/src/pandoc.lua +++ b/src/pandoc.lua @@ -1,33 +1,21 @@ ------------------------------------ PANDOC ----------------------------------- -local function is_chosen(block) - chosen, content = true, block.content - if content == nil or pandoc.utils.type(content) ~= "Inlines" then - chosen = false - end - return chosen -end - -local function sanitize(inlines) - for i, inline in ipairs(inlines) do - if inline.tag == "Code" then - inlines:remove(i) - elseif inline.tag == "Quoted" then - str = pandoc.utils.stringify(inline.content):gsub('"', '\\"') - inlines[i] = '"' .. str .. '"' - end - end - return pandoc.utils.stringify(inlines) -end - return { { - Block = function (block) - if is_chosen(block) then - raw = sanitize(block.content) - doc = lit.parse(raw) - -- print(doc) - end + -- Parses LiNP declarations + CodeBlock = function(codeblock) + return lit.parse_declarations(codeblock) + end, + }, + { + -- Avoids quotes conversion in stringify + Quoted = function(quoted) + str = pandoc.utils.stringify(quoted.content):gsub('"', '\\"') + return '"' .. str .. '"' + end, + -- Parses and does LiNP calls + Inlines = function(inlines) + return lit.parse_calls(inlines) end, } } diff --git a/tests/fail.lit.complex.md b/tests/fail.lit.complex.md index 70b8fae..e711494 100644 --- a/tests/fail.lit.complex.md +++ b/tests/fail.lit.complex.md @@ -13,11 +13,8 @@ # Invalid Calls -- fn1(1, $stdout: "true") has invalid rkwarg value -- fn1(1, $act: "return") has invalid rkwarg -- fn1(1, $eval: "/path/does/not/exists") has invalid path -- fn1(1, $code: "/path/does/not/exists") has invalid path -- fn1(1, $lua: "/path/does/not/exists") has invalid path -- fn1(fn4()); `fn4()` is not declared +- fn1(1, $action: "foo") has invalid rkwarg value +- fn1(1, $act: "shift") has invalid rkwarg +- fn1(fn4()); \fn4() is not declared Invalid calls and declarations generate and collects errors. diff --git a/tests/pass.lit.complex.md b/tests/pass.lit.complex.md index 986d802..cd42a27 100644 --- a/tests/pass.lit.complex.md +++ b/tests/pass.lit.complex.md @@ -28,23 +28,15 @@ Valid calls: -- fn1($stdout: true) gets stdout instead of evaluation result. -- fn1($action: "wipe") wipes calls and declarations of this function from - source document after all calls. -- fn2($action: "return") returns result after call. -- fn2($action: "hide") hides call from source document after call. -- fn2($action: "quote") quotes it without call. -- fn2($eval: "fn2.txt", $code: "fn2.fnl", $lua: "fn2.lua") writes - evaluation results, Fennel code and Lua code. -- fn3(4, $action: "return") has arg and rkwarg. -- fn3($action: "return", 5) has rkwarg and arg. -- fn3($eval: "fn3-4.txt", $code: "fn3-4.fnl", $lua: "fn3-4.lua") writes in - same files than below. -- fn4(a: 1, b: 2, $action: "return") has kwargs and rkwarg. -- fn4($action: "return", a: 1, b: 2) has rkwarg and kwargs. -- fn4(a: 1, $action: "return", b: 2) has kwarg, rkwarg and kwarg. -- fn4($eval: "fn3-4.txt", $code: "fn3-4.fnl", $lua: "fn3-4.lua") writes in - same files than above. +- fn1($results: "value") gets value of the last expression as result; it is the default setting. +- fn1($results: "output") gets stdout as result. +- fn2($action: "shift") shifts call for result. +- fn2($action: "quote") quotes it instead of calling it. +- fn3(4, $action: "shift") has arg and rkwarg. +- fn3($action: "shift", 5) has rkwarg and arg. +- fn4($action: "shift", a: 1, b: 2) has rkwarg and kwargs. +- fn4(a: 1, $action: "shift", b: 2) has kwarg, rkwarg and kwarg. +- fn4(a: 1, b: 2, $action: "shift") has kwargs and rkwarg. - fn5(10) calls another function inside. - fn6(9, 8) calls another quoted function inside. - fn7(fn7(1)) calls several functions. diff --git a/tests/pass.lit.complex.md.json b/tests/pass.lit.complex.md.json index b8d2f68..59bfea0 100644 --- a/tests/pass.lit.complex.md.json +++ b/tests/pass.lit.complex.md.json @@ -1 +1 @@ -{"pandoc-api-version":[1,23],"meta":{},"blocks":[{"t":"Header","c":[1,["declarations",[],[]],[{"t":"Str","c":"Declarations"}]]},{"t":"CodeBlock","c":[["",[],[]],"-- fn1()\nprint(\"I am in stdout\")\n\"Wipes it\"\n\n-- fn2()\n1 + 2 + 3\n\n-- fn3(n)\n#n .. \" \" .. #n\n\n-- fn4(a, b)\n#a * #b"]},{"t":"Header","c":[1,["recursive-declarations",[],[]],[{"t":"Str","c":"Recursive"},{"t":"Space"},{"t":"Str","c":"Declarations"}]]},{"t":"CodeBlock","c":[["",[],[]],"-- fn5(x)\n#fn2() * x\n\n-- fn6(y, z)\n#y + #fn2($action: \"quote\") + #z\n\n-- fn7(a) \n#a + #fn4(#a, #fn2())"]},{"t":"Header","c":[1,["calls",[],[]],[{"t":"Str","c":"Calls"}]]},{"t":"Para","c":[{"t":"Str","c":"Valid"},{"t":"Space"},{"t":"Str","c":"calls:"}]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"fn1($stdout:"},{"t":"Space"},{"t":"Str","c":"true)"},{"t":"Space"},{"t":"Str","c":"gets"},{"t":"Space"},{"t":"Str","c":"stdout"},{"t":"Space"},{"t":"Str","c":"instead"},{"t":"Space"},{"t":"Str","c":"of"},{"t":"Space"},{"t":"Str","c":"evaluation"},{"t":"Space"},{"t":"Str","c":"result."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn1($action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"wipe"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"wipes"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"declarations"},{"t":"Space"},{"t":"Str","c":"of"},{"t":"Space"},{"t":"Str","c":"this"},{"t":"Space"},{"t":"Str","c":"function"},{"t":"Space"},{"t":"Str","c":"from"},{"t":"SoftBreak"},{"t":"Str","c":"source"},{"t":"Space"},{"t":"Str","c":"document"},{"t":"Space"},{"t":"Str","c":"after"},{"t":"Space"},{"t":"Str","c":"all"},{"t":"Space"},{"t":"Str","c":"calls."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2($action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"return"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"returns"},{"t":"Space"},{"t":"Str","c":"result"},{"t":"Space"},{"t":"Str","c":"after"},{"t":"Space"},{"t":"Str","c":"call."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2($action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"hide"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"hides"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"from"},{"t":"Space"},{"t":"Str","c":"source"},{"t":"Space"},{"t":"Str","c":"document"},{"t":"Space"},{"t":"Str","c":"after"},{"t":"Space"},{"t":"Str","c":"call."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2($action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"quote"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"quotes"},{"t":"Space"},{"t":"Str","c":"it"},{"t":"Space"},{"t":"Str","c":"without"},{"t":"Space"},{"t":"Str","c":"call."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2($eval:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn2.txt"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"$code:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn2.fnl"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"$lua:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn2.lua"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"writes"},{"t":"SoftBreak"},{"t":"Str","c":"evaluation"},{"t":"Space"},{"t":"Str","c":"results,"},{"t":"Space"},{"t":"Str","c":"Fennel"},{"t":"Space"},{"t":"Str","c":"code"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"Lua"},{"t":"Space"},{"t":"Str","c":"code."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3(4,"},{"t":"Space"},{"t":"Str","c":"$action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"return"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"arg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"rkwarg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3($action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"return"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"5)"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"rkwarg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"arg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3($eval:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn3-4.txt"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"$code:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn3-4.fnl"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"$lua:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn3-4.lua"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"writes"},{"t":"Space"},{"t":"Str","c":"in"},{"t":"SoftBreak"},{"t":"Str","c":"same"},{"t":"Space"},{"t":"Str","c":"files"},{"t":"Space"},{"t":"Str","c":"than"},{"t":"Space"},{"t":"Str","c":"below."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4(a:"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"2,"},{"t":"Space"},{"t":"Str","c":"$action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"return"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"kwargs"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"rkwarg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4($action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"return"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"2)"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"rkwarg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"kwargs."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4(a:"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Str","c":"$action:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"return"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"2)"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"kwarg,"},{"t":"Space"},{"t":"Str","c":"rkwarg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"kwarg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4($eval:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn3-4.txt"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"$code:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn3-4.fnl"}]]},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"$lua:"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"fn3-4.lua"}]]},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"writes"},{"t":"Space"},{"t":"Str","c":"in"},{"t":"SoftBreak"},{"t":"Str","c":"same"},{"t":"Space"},{"t":"Str","c":"files"},{"t":"Space"},{"t":"Str","c":"than"},{"t":"Space"},{"t":"Str","c":"above."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5(10)"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"another"},{"t":"Space"},{"t":"Str","c":"function"},{"t":"Space"},{"t":"Str","c":"inside."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn6(9,"},{"t":"Space"},{"t":"Str","c":"8)"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"another"},{"t":"Space"},{"t":"Str","c":"quoted"},{"t":"Space"},{"t":"Str","c":"function"},{"t":"Space"},{"t":"Str","c":"inside."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn7(fn7(1))"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"several"},{"t":"Space"},{"t":"Str","c":"functions."}]}]]}]} +{"pandoc-api-version":[1,23],"meta":{},"blocks":[{"t":"Header","c":[1,["declarations",[],[]],[{"t":"Str","c":"Declarations"}]]},{"t":"CodeBlock","c":[["",[],[]],"-- fn1()\nprint(\"I am in stdout\")\n\"Wipes it\"\n\n-- fn2()\n1 + 2 + 3\n\n-- fn3(n)\n#n .. \" \" .. #n\n\n-- fn4(a, b)\n#a * #b"]},{"t":"Header","c":[1,["recursive-declarations",[],[]],[{"t":"Str","c":"Recursive"},{"t":"Space"},{"t":"Str","c":"Declarations"}]]},{"t":"CodeBlock","c":[["",[],[]],"-- fn5(x)\n#fn2() * x\n\n-- fn6(y, z)\n#y + #fn2($action: \"quote\") + #z\n\n-- fn7(a) \n#a + #fn4(#a, #fn2())"]},{"t":"Header","c":[1,["calls",[],[]],[{"t":"Str","c":"Calls"}]]},{"t":"Para","c":[{"t":"Str","c":"Valid"},{"t":"Space"},{"t":"Str","c":"calls:"}]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"fn1($results:"},{"t":"Space"},{"t":"Str","c":"\"value\""},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"gets"},{"t":"Space"},{"t":"Str","c":"value"},{"t":"Space"},{"t":"Str","c":"of"},{"t":"Space"},{"t":"Str","c":"the"},{"t":"Space"},{"t":"Str","c":"last"},{"t":"Space"},{"t":"Str","c":"expression"},{"t":"Space"},{"t":"Str","c":"as"},{"t":"Space"},{"t":"Str","c":"result;"},{"t":"Space"},{"t":"Str","c":"it"},{"t":"Space"},{"t":"Str","c":"is"},{"t":"Space"},{"t":"Str","c":"the"},{"t":"Space"},{"t":"Str","c":"default"},{"t":"Space"},{"t":"Str","c":"setting."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn1($results:"},{"t":"Space"},{"t":"Str","c":"\"output\""},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"gets"},{"t":"Space"},{"t":"Str","c":"stdout"},{"t":"Space"},{"t":"Str","c":"as"},{"t":"Space"},{"t":"Str","c":"result."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2($action:"},{"t":"Space"},{"t":"Str","c":"\"shift\""},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"shifts"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"for"},{"t":"Space"},{"t":"Str","c":"result."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2($action:"},{"t":"Space"},{"t":"Str","c":"\"quote\""},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"quotes"},{"t":"Space"},{"t":"Str","c":"it"},{"t":"Space"},{"t":"Str","c":"instead"},{"t":"Space"},{"t":"Str","c":"of"},{"t":"Space"},{"t":"Str","c":"calling"},{"t":"Space"},{"t":"Str","c":"it."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3(4,"},{"t":"Space"},{"t":"Str","c":"$action:"},{"t":"Space"},{"t":"Str","c":"\"shift\""},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"arg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"rkwarg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3($action:"},{"t":"Space"},{"t":"Str","c":"\"shift\""},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"5)"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"rkwarg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"arg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4($action:"},{"t":"Space"},{"t":"Str","c":"\"shift\""},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"2)"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"rkwarg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"kwargs."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4(a:"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Str","c":"$action:"},{"t":"Space"},{"t":"Str","c":"\"shift\""},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"2)"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"kwarg,"},{"t":"Space"},{"t":"Str","c":"rkwarg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"kwarg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4(a:"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"2,"},{"t":"Space"},{"t":"Str","c":"$action:"},{"t":"Space"},{"t":"Str","c":"\"shift\""},{"t":"Str","c":")"},{"t":"Space"},{"t":"Str","c":"has"},{"t":"Space"},{"t":"Str","c":"kwargs"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"rkwarg."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5(10)"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"another"},{"t":"Space"},{"t":"Str","c":"function"},{"t":"Space"},{"t":"Str","c":"inside."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn6(9,"},{"t":"Space"},{"t":"Str","c":"8)"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"another"},{"t":"Space"},{"t":"Str","c":"quoted"},{"t":"Space"},{"t":"Str","c":"function"},{"t":"Space"},{"t":"Str","c":"inside."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn7(fn7(1))"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"several"},{"t":"Space"},{"t":"Str","c":"functions."}]}]]}]} diff --git a/tests/pass.lit.ignored.md b/tests/pass.lit.ignored.md index c999285..4cff6c6 100644 --- a/tests/pass.lit.ignored.md +++ b/tests/pass.lit.ignored.md @@ -26,4 +26,3 @@ - fn4 () space before `(` - fn5) misses `(` - fn6 misses `()` -- `fn1()` as inline code diff --git a/tests/pass.lit.ignored.md.json b/tests/pass.lit.ignored.md.json index dd0674d..ddbd3ea 100644 --- a/tests/pass.lit.ignored.md.json +++ b/tests/pass.lit.ignored.md.json @@ -1 +1 @@ -{"pandoc-api-version":[1,23],"meta":{},"blocks":[{"t":"Header","c":[1,["not-declarations",[],[]],[{"t":"Str","c":"Not"},{"t":"Space"},{"t":"Str","c":"declarations"}]]},{"t":"CodeBlock","c":[["",[],[]],"-- skipped: \\fn1()\n1 + 2\n\n-- doesn't starts with `%a` because of the space: fn 2()\n1 + 2\n\n-- doesn't continue with `%w`: fn-3()\n1 + 2\n\n-- space before `(`: fn4 ()\n1 + 2\n\n-- misses `(`: fn5) \n1 + 2\n\n-- misses `()`: fn6 \n1 + 2"]},{"t":"Header","c":[1,["not-calls",[],[]],[{"t":"Str","c":"Not"},{"t":"Space"},{"t":"Str","c":"calls"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"RawInline","c":["tex","\\fn1"]},{"t":"Str","c":"()"},{"t":"Space"},{"t":"Str","c":"skipped"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn"},{"t":"Space"},{"t":"Str","c":"2()"},{"t":"Space"},{"t":"Str","c":"doesn’t"},{"t":"Space"},{"t":"Str","c":"starts"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"%a"]},{"t":"Space"},{"t":"Str","c":"because"},{"t":"Space"},{"t":"Str","c":"of"},{"t":"Space"},{"t":"Str","c":"the"},{"t":"Space"},{"t":"Str","c":"space"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn-3()"},{"t":"Space"},{"t":"Str","c":"doesn’t"},{"t":"Space"},{"t":"Str","c":"continue"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"%w"]}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4"},{"t":"Space"},{"t":"Str","c":"()"},{"t":"Space"},{"t":"Str","c":"space"},{"t":"Space"},{"t":"Str","c":"before"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"("]}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5)"},{"t":"Space"},{"t":"Str","c":"misses"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"("]}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn6"},{"t":"Space"},{"t":"Str","c":"misses"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"()"]}]}],[{"t":"Plain","c":[{"t":"Code","c":[["",[],[]],"fn1()"]},{"t":"Space"},{"t":"Str","c":"as"},{"t":"Space"},{"t":"Str","c":"inline"},{"t":"Space"},{"t":"Str","c":"code"}]}]]}]} +{"pandoc-api-version":[1,23],"meta":{},"blocks":[{"t":"Header","c":[1,["not-declarations",[],[]],[{"t":"Str","c":"Not"},{"t":"Space"},{"t":"Str","c":"declarations"}]]},{"t":"CodeBlock","c":[["",[],[]],"-- skipped: \\fn1()\n1 + 2\n\n-- doesn't starts with `%a` because of the space: fn 2()\n1 + 2\n\n-- doesn't continue with `%w`: fn-3()\n1 + 2\n\n-- space before `(`: fn4 ()\n1 + 2\n\n-- misses `(`: fn5) \n1 + 2\n\n-- misses `()`: fn6 \n1 + 2"]},{"t":"Header","c":[1,["not-calls",[],[]],[{"t":"Str","c":"Not"},{"t":"Space"},{"t":"Str","c":"calls"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"RawInline","c":["tex","\\fn1"]},{"t":"Str","c":"()"},{"t":"Space"},{"t":"Str","c":"skipped"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn"},{"t":"Space"},{"t":"Str","c":"2()"},{"t":"Space"},{"t":"Str","c":"doesn’t"},{"t":"Space"},{"t":"Str","c":"starts"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"%a"]},{"t":"Space"},{"t":"Str","c":"because"},{"t":"Space"},{"t":"Str","c":"of"},{"t":"Space"},{"t":"Str","c":"the"},{"t":"Space"},{"t":"Str","c":"space"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn-3()"},{"t":"Space"},{"t":"Str","c":"doesn’t"},{"t":"Space"},{"t":"Str","c":"continue"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"%w"]}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4"},{"t":"Space"},{"t":"Str","c":"()"},{"t":"Space"},{"t":"Str","c":"space"},{"t":"Space"},{"t":"Str","c":"before"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"("]}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5)"},{"t":"Space"},{"t":"Str","c":"misses"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"("]}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn6"},{"t":"Space"},{"t":"Str","c":"misses"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"()"]}]}]]}]} diff --git a/tests/pass.lit.simple.md.json b/tests/pass.lit.simple.md.json index 4348353..9850ca8 100644 --- a/tests/pass.lit.simple.md.json +++ b/tests/pass.lit.simple.md.json @@ -1 +1 @@ -{"pandoc-api-version":[1,23],"meta":{},"blocks":[{"t":"Header","c":[1,["calls-before-declarations",[],[]],[{"t":"Str","c":"Calls"},{"t":"Space"},{"t":"Str","c":"Before"},{"t":"Space"},{"t":"Str","c":"Declarations"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"common"},{"t":"Space"},{"t":"Str","c":"call:"},{"t":"Space"},{"t":"Str","c":"fn1()."},{"t":"Space"},{"t":"Str","c":"All"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"results"},{"t":"Space"},{"t":"Str","c":"should"},{"t":"Space"},{"t":"Str","c":"be"},{"t":"Space"},{"t":"Str","c":"print"},{"t":"Space"},{"t":"Str","c":"on"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"--verbose"]},{"t":"Str","c":"."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn1()"},{"t":"Space"},{"t":"Str","c":"another"},{"t":"Space"},{"t":"Str","c":"common"},{"t":"Space"},{"t":"Str","c":"call."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn1()"}]}],[{"t":"Plain","c":[{"t":"Str","c":"Two"},{"t":"Space"},{"t":"Str","c":"calls:"},{"t":"Space"},{"t":"Str","c":"fn1()"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"fn1()."}]}],[{"t":"Plain","c":[{"t":"Str","c":"Two"},{"t":"Space"},{"t":"Str","c":"consecutive"},{"t":"Space"},{"t":"Str","c":"calls:"},{"t":"Space"},{"t":"Str","c":"fn1()"},{"t":"Space"},{"t":"Str","c":"fn1()."}]}],[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"one"},{"t":"Space"},{"t":"Str","c":"arg:"},{"t":"Space"},{"t":"Str","c":"fn2(1)."}]}],[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"two"},{"t":"Space"},{"t":"Str","c":"args:"},{"t":"Space"},{"t":"Str","c":"fn3(2,"},{"t":"Space"},{"t":"Str","c":"3)."}]}],[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"args"},{"t":"Space"},{"t":"Str","c":"as"},{"t":"Space"},{"t":"Str","c":"kwargs:"},{"t":"Space"},{"t":"Str","c":"fn2(n:"},{"t":"Space"},{"t":"Str","c":"2)"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"fn3(b:"},{"t":"Space"},{"t":"Str","c":"4,"},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"5)."}]}]]},{"t":"Header","c":[1,["declarations",[],[]],[{"t":"Str","c":"Declarations"}]]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration:"}]},{"t":"CodeBlock","c":[["",[],[]],"-- fn1()\n1 + 2 + 3"]},{"t":"Para","c":[{"t":"Str","c":"All"},{"t":"Space"},{"t":"Str","c":"declarations"},{"t":"Space"},{"t":"Str","c":"should"},{"t":"Space"},{"t":"Str","c":"be"},{"t":"Space"},{"t":"Str","c":"print"},{"t":"Space"},{"t":"Str","c":"on"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"--verbose"]},{"t":"Str","c":"."}]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"one"},{"t":"Space"},{"t":"Str","c":"arg:"}]},{"t":"CodeBlock","c":[["",[],[]],"-- Also valid, Lua is the default: fn2(n)\n#n .. \" \" .. #n"]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"two"},{"t":"Space"},{"t":"Str","c":"args:"}]},{"t":"CodeBlock","c":[["",[],[]],"; Changed lang and no space:fn3(a, b) -> fennel\n(* #a #b)"]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"lang"},{"t":"Space"},{"t":"Str","c":"options:"}]},{"t":"CodeBlock","c":[["",[],[]],"# fn4(n) -> python -E -X utf8\n#n * #n"]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"arg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"scaped:"}]},{"t":"CodeBlock","c":[["",[],[]],"-- fn5(x)\n#x .. \"\\#x\""]},{"t":"Header","c":[1,["calls-and-data-types",[],[]],[{"t":"Str","c":"Calls"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"Data"},{"t":"Space"},{"t":"Str","c":"Types"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"fn2(3);"},{"t":"Space"},{"t":"Str","c":"integer"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(1_000);"},{"t":"Space"},{"t":"Str","c":"integer"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"separator"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4(1.0);"},{"t":"Space"},{"t":"Str","c":"float"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5("},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"str"}]]},{"t":"Str","c":");"},{"t":"Space"},{"t":"Str","c":"string"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5(true)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5(false)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2([]);"},{"t":"Space"},{"t":"Str","c":"empty"},{"t":"Space"},{"t":"Str","c":"array"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"list"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"sequential"},{"t":"Space"},{"t":"Str","c":"table"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2([0,"},{"t":"Space"},{"t":"Str","c":"1]);"},{"t":"Space"},{"t":"Str","c":"array"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"list"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"sequential"},{"t":"Space"},{"t":"Str","c":"table"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2({});"},{"t":"Space"},{"t":"Str","c":"empty"},{"t":"Space"},{"t":"Str","c":"dict"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"table"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2({"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"k1"}]]},{"t":"Str","c":":"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Quoted","c":[{"t":"DoubleQuote"},[{"t":"Str","c":"k2"}]]},{"t":"Str","c":":"},{"t":"Space"},{"t":"Str","c":"2});"},{"t":"Space"},{"t":"Str","c":"dict"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"table"}]}]]},{"t":"Header","c":[1,["messy-calls",[],[]],[{"t":"Str","c":"Messy"},{"t":"Space"},{"t":"Str","c":"Calls"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"fn1("},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"4)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(5"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"6"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"n:"},{"t":"Space"},{"t":"Str","c":"7)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(n:"},{"t":"Space"},{"t":"Str","c":"8"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"n:"},{"t":"Space"},{"t":"Str","c":"9"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(n:10)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"6,"},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"7)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"8"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"9)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"10"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"11)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"12"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"13)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"14"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"15"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3(a:16,b:17)"}]}]]}]} +{"pandoc-api-version":[1,23],"meta":{},"blocks":[{"t":"Header","c":[1,["calls-before-declarations",[],[]],[{"t":"Str","c":"Calls"},{"t":"Space"},{"t":"Str","c":"Before"},{"t":"Space"},{"t":"Str","c":"Declarations"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"common"},{"t":"Space"},{"t":"Str","c":"call:"},{"t":"Space"},{"t":"Str","c":"fn1()."},{"t":"Space"},{"t":"Str","c":"All"},{"t":"Space"},{"t":"Str","c":"calls"},{"t":"Space"},{"t":"Str","c":"results"},{"t":"Space"},{"t":"Str","c":"should"},{"t":"Space"},{"t":"Str","c":"be"},{"t":"Space"},{"t":"Str","c":"print"},{"t":"Space"},{"t":"Str","c":"on"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"--verbose"]},{"t":"Str","c":"."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn1()"},{"t":"Space"},{"t":"Str","c":"another"},{"t":"Space"},{"t":"Str","c":"common"},{"t":"Space"},{"t":"Str","c":"call."}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn1()"}]}],[{"t":"Plain","c":[{"t":"Str","c":"Two"},{"t":"Space"},{"t":"Str","c":"calls:"},{"t":"Space"},{"t":"Str","c":"fn1()"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"fn1()."}]}],[{"t":"Plain","c":[{"t":"Str","c":"Two"},{"t":"Space"},{"t":"Str","c":"consecutive"},{"t":"Space"},{"t":"Str","c":"calls:"},{"t":"Space"},{"t":"Str","c":"fn1()"},{"t":"Space"},{"t":"Str","c":"fn1()."}]}],[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"one"},{"t":"Space"},{"t":"Str","c":"arg:"},{"t":"Space"},{"t":"Str","c":"fn2(1)."}]}],[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"two"},{"t":"Space"},{"t":"Str","c":"args:"},{"t":"Space"},{"t":"Str","c":"fn3(2,"},{"t":"Space"},{"t":"Str","c":"3)."}]}],[{"t":"Plain","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"call"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"args"},{"t":"Space"},{"t":"Str","c":"as"},{"t":"Space"},{"t":"Str","c":"kwargs:"},{"t":"Space"},{"t":"Str","c":"fn2(n:"},{"t":"Space"},{"t":"Str","c":"2)"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"fn3(b:"},{"t":"Space"},{"t":"Str","c":"4,"},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"5)."}]}]]},{"t":"Header","c":[1,["declarations",[],[]],[{"t":"Str","c":"Declarations"}]]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration:"}]},{"t":"CodeBlock","c":[["",[],[]],"-- fn1()\n1 + 2 + 3"]},{"t":"Para","c":[{"t":"Str","c":"All"},{"t":"Space"},{"t":"Str","c":"declarations"},{"t":"Space"},{"t":"Str","c":"should"},{"t":"Space"},{"t":"Str","c":"be"},{"t":"Space"},{"t":"Str","c":"print"},{"t":"Space"},{"t":"Str","c":"on"},{"t":"Space"},{"t":"Code","c":[["",[],[]],"--verbose"]},{"t":"Str","c":"."}]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"one"},{"t":"Space"},{"t":"Str","c":"arg:"}]},{"t":"CodeBlock","c":[["",[],[]],"-- Also valid, Lua is the default: fn2(n)\n#n .. \" \" .. #n"]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"two"},{"t":"Space"},{"t":"Str","c":"args:"}]},{"t":"CodeBlock","c":[["",[],[]],"; Changed lang and no space:fn3(a, b) -> fennel\n(* #a #b)"]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"lang"},{"t":"Space"},{"t":"Str","c":"options:"}]},{"t":"CodeBlock","c":[["",[],[]],"# fn4(n) -> python -E -X utf8\n#n * #n"]},{"t":"Para","c":[{"t":"Str","c":"A"},{"t":"Space"},{"t":"Str","c":"declaration"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"arg"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"scaped:"}]},{"t":"CodeBlock","c":[["",[],[]],"-- fn5(x)\n#x .. \"\\#x\""]},{"t":"Header","c":[1,["calls-and-data-types",[],[]],[{"t":"Str","c":"Calls"},{"t":"Space"},{"t":"Str","c":"and"},{"t":"Space"},{"t":"Str","c":"Data"},{"t":"Space"},{"t":"Str","c":"Types"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"fn2(3);"},{"t":"Space"},{"t":"Str","c":"integer"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(1_000);"},{"t":"Space"},{"t":"Str","c":"integer"},{"t":"Space"},{"t":"Str","c":"with"},{"t":"Space"},{"t":"Str","c":"separator"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn4(1.0);"},{"t":"Space"},{"t":"Str","c":"float"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5("},{"t":"Str","c":"\"str\""},{"t":"Str","c":");"},{"t":"Space"},{"t":"Str","c":"string"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5(true)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn5(false)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2([]);"},{"t":"Space"},{"t":"Str","c":"empty"},{"t":"Space"},{"t":"Str","c":"array"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"list"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"sequential"},{"t":"Space"},{"t":"Str","c":"table"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2([0,"},{"t":"Space"},{"t":"Str","c":"1]);"},{"t":"Space"},{"t":"Str","c":"array"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"list"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"sequential"},{"t":"Space"},{"t":"Str","c":"table"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2({});"},{"t":"Space"},{"t":"Str","c":"empty"},{"t":"Space"},{"t":"Str","c":"dict"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"table"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2({"},{"t":"Str","c":"\"k1\""},{"t":"Str","c":":"},{"t":"Space"},{"t":"Str","c":"1,"},{"t":"Space"},{"t":"Str","c":"\"k2\""},{"t":"Str","c":":"},{"t":"Space"},{"t":"Str","c":"2});"},{"t":"Space"},{"t":"Str","c":"dict"},{"t":"Space"},{"t":"Str","c":"/"},{"t":"Space"},{"t":"Str","c":"table"}]}]]},{"t":"Header","c":[1,["messy-calls",[],[]],[{"t":"Str","c":"Messy"},{"t":"Space"},{"t":"Str","c":"Calls"}]]},{"t":"BulletList","c":[[{"t":"Plain","c":[{"t":"Str","c":"fn1("},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"4)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(5"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"6"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"n:"},{"t":"Space"},{"t":"Str","c":"7)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(n:"},{"t":"Space"},{"t":"Str","c":"8"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2("},{"t":"Space"},{"t":"Str","c":"n:"},{"t":"Space"},{"t":"Str","c":"9"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn2(n:10)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"6,"},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"7)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"8"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"9)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"10"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"11)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"12"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"13)"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3("},{"t":"Space"},{"t":"Str","c":"a:"},{"t":"Space"},{"t":"Str","c":"14"},{"t":"Space"},{"t":"Str","c":","},{"t":"Space"},{"t":"Str","c":"b:"},{"t":"Space"},{"t":"Str","c":"15"},{"t":"Space"},{"t":"Str","c":")"}]}],[{"t":"Plain","c":[{"t":"Str","c":"fn3(a:16,b:17)"}]}]]}]}