From 1f9f89209fe17e87bd70df3ef219fcb51ec235c1 Mon Sep 17 00:00:00 2001 From: Issa Hanou Date: Thu, 14 Nov 2024 16:50:53 +0100 Subject: [PATCH] mermaid diagrams working with kroki. Pretty tables and ruleno2expr used for nicer reading code outputs in tutorials --- docs/Project.toml | 3 + docs/src/tutorials/abstract_syntax_trees.jl | 131 +++++++++++++----- docs/src/tutorials/advanced_search.jl | 123 ++++++++++++---- .../tutorials/working_with_interpreters.jl | 5 +- 4 files changed, 200 insertions(+), 62 deletions(-) diff --git a/docs/Project.toml b/docs/Project.toml index f91b5e6..c986945 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -9,11 +9,14 @@ HerbGrammar = "4ef9e186-2fe5-4b24-8de7-9f7291f24af7" HerbInterpret = "5bbddadd-02c5-4713-84b8-97364418cca7" HerbSearch = "3008d8e8-f9aa-438a-92ed-26e9c7b4829f" HerbSpecification = "6d54aada-062f-46d8-85cf-a1ceaf058a06" +Kroki = "b3565e16-c1f2-4fe9-b4ab-221c88942068" Pluto = "c3e4b0f8-55cb-11ea-2926-15256bba5781" PlutoSliderServer = "2fc8631c-6f24-4c5b-bca7-cbb509c42db4" PlutoStaticHTML = "359b1769-a58e-495b-9770-312e911026ad" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] Documenter = "1" diff --git a/docs/src/tutorials/abstract_syntax_trees.jl b/docs/src/tutorials/abstract_syntax_trees.jl index 897373f..cd1e312 100644 --- a/docs/src/tutorials/abstract_syntax_trees.jl +++ b/docs/src/tutorials/abstract_syntax_trees.jl @@ -5,13 +5,15 @@ using Markdown using InteractiveUtils # ╔═╡ c784cbc3-19fc-45c9-b344-db10cf7a81fa -begin - using PlutoUI - - using HerbCore - using HerbGrammar - using HerbInterpret -end +# hide +using PlutoUI + +# ╔═╡ 8f3dba2b-cfdc-4042-9ca4-b3bf0dbaf637 +# hide +using Kroki + +# ╔═╡ 4ab41dab-63f0-4ee0-b30d-532513406a0f +using HerbCore, HerbGrammar, HerbInterpret # ╔═╡ 65fbf850-74ae-4ea4-85f0-683095c73fba md""" @@ -45,9 +47,6 @@ We first consider the simple program 5*(x+3). We will define a grammar that is s md""" ### Define the grammar""" -# ╔═╡ 4ab41dab-63f0-4ee0-b30d-532513406a0f - - # ╔═╡ 9f54f013-e8b9-4e0d-8bac-9867f5d1a393 grammar = @csgrammar begin Number = |(0:9) @@ -65,9 +64,8 @@ md""" The AST of this program is shown in the diagram below. The number in each node refers to the index of the corresponding rule in our grammar. """ # ╔═╡ 64c2a6ce-5e3b-413b-bcb7-84936137439f -md""" -```mermaid - flowchart TD +Diagram(:mermaid, """ +flowchart TD id1((13)) --- id2((6)) id1 --- id3((12)) @@ -75,15 +73,14 @@ md""" id5((4)) id3 --- id4 id3 --- id5 -``` -""" +""") # ╔═╡ 29b37a82-d022-453e-bf65-672aa94e4c87 md""" In `Herb.jl`, the `HerbCore.RuleNode` is used to represent both an individual node, but also entire ASTs or sub-trees. This is achieved by nesting instances of `RuleNode`. A `RuleNode` can be instantiated by providing the index of the grammar rule that the node represents and a vector of child nodes. """ # ╔═╡ 822d9601-284d-4d30-9551-605684f83d90 -syntaxtree = RuleNode(13, [RuleNode(6), RuleNode(12, [RuleNode(11), RuleNode(4)])]) +syntaxtree = HerbGrammar.RuleNode(13, [RuleNode(6), RuleNode(12, [RuleNode(11), RuleNode(4)])]) # ╔═╡ 351210d1-20b6-4695-b9fe-f1136d4447d5 md""" @@ -148,8 +145,7 @@ md""" Given the grammar, the AST of `fizzbuzz()` looks like this:""" # ╔═╡ 6a663bce-155b-4c0d-94ec-7dc5fbba348a -md""" -```mermaid +Diagram(:mermaid, """ flowchart TD id1((12)) --- id21((13)) id1--- id22((9)) @@ -195,8 +191,7 @@ flowchart TD id36 --- id410((9)) id410 --- id510((8)) id510 --- id63((1)) -``` -""" +""") # ╔═╡ d9272c48-a7da-4ca0-af15-98c0fe4a3f24 md""" @@ -331,13 +326,15 @@ PLUTO_PROJECT_TOML_CONTENTS = """ HerbCore = "2b23ba43-8213-43cb-b5ea-38c12b45bd45" HerbGrammar = "4ef9e186-2fe5-4b24-8de7-9f7291f24af7" HerbInterpret = "5bbddadd-02c5-4713-84b8-97364418cca7" +Kroki = "b3565e16-c1f2-4fe9-b4ab-221c88942068" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" [compat] -HerbCore = "~0.2.0" -HerbGrammar = "~0.2.1" -HerbInterpret = "~0.1.2" -PlutoUI = "~0.7.59" +HerbCore = "~0.3.1" +HerbGrammar = "~0.4.0" +HerbInterpret = "~0.1.4" +Kroki = "~1.0.0" +PlutoUI = "~0.7.60" """ # ╔═╡ 00000000-0000-0000-0000-000000000002 @@ -346,7 +343,7 @@ PLUTO_MANIFEST_TOML_CONTENTS = """ julia_version = "1.11.1" manifest_format = "2.0" -project_hash = "d7f8bf7232fa30ef1b0ebfa845c2ec09e025cc88" +project_hash = "7bcd4eed8ad9f87a311a57027c1ef2b213fd532a" [[deps.AbstractPlutoDingetjes]] deps = ["Pkg"] @@ -377,6 +374,11 @@ version = "1.11.0" uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" version = "1.11.0" +[[deps.BitFlags]] +git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.9" + [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "8873e196c2eb87962a2048b3b8e08946535864a1" @@ -389,6 +391,12 @@ git-tree-sha1 = "009060c9a6168704143100f36ab08f06c2af4642" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.18.2+1" +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "bce6804e5e6044c6daab27bb533d1295e4a2e759" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.6" + [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" @@ -416,6 +424,12 @@ deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "1.1.1+0" +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.4.2" + [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" @@ -432,11 +446,23 @@ deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" version = "1.11.0" +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" @@ -489,6 +515,12 @@ git-tree-sha1 = "1dc470db8b1131cfc7fb4c115de89fe391b9e780" uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" version = "1.12.0" +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "1336e07ba2eb75614c99496501a8f4b233e9fafe" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.10" + [[deps.HarfBuzz_ICU_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "HarfBuzz_jll", "ICU_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] git-tree-sha1 = "6ccbc4fdf65c8197738c2d68cc55b74b19c97ac2" @@ -502,21 +534,21 @@ uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" [[deps.HerbCore]] -git-tree-sha1 = "f3312458fa882d4adaeecadf8f4b5721ec6e3322" +git-tree-sha1 = "98a4c7b30a8a752bb33bddc2475f6554602b588b" uuid = "2b23ba43-8213-43cb-b5ea-38c12b45bd45" -version = "0.2.0" +version = "0.3.1" [[deps.HerbGrammar]] deps = ["AbstractTrees", "DataStructures", "HerbCore", "Serialization", "TreeView"] -git-tree-sha1 = "c5c7fd92a7502459db394115a10669f10643a440" +git-tree-sha1 = "0bd40db4936ad39926246ebddcee7b5df2a332ba" uuid = "4ef9e186-2fe5-4b24-8de7-9f7291f24af7" -version = "0.2.2" +version = "0.4.0" [[deps.HerbInterpret]] deps = ["HerbCore", "HerbGrammar", "HerbSpecification"] -git-tree-sha1 = "3723e5ace26a2f2cd342b28689dea543491687c6" +git-tree-sha1 = "2c1486af643e1abf4b191315db210068994f5b15" uuid = "5bbddadd-02c5-4713-84b8-97364418cca7" -version = "0.1.2" +version = "0.1.4" [[deps.HerbSpecification]] git-tree-sha1 = "ce13a9a2b7970686ef4befc2e79c2e6f1a2c4dc6" @@ -575,6 +607,12 @@ git-tree-sha1 = "25ee0be4d43d0269027024d75a24c24d6c6e590c" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "3.0.4+0" +[[deps.Kroki]] +deps = ["Base64", "CodecZlib", "DocStringExtensions", "HTTP", "JSON", "Markdown", "Reexport"] +git-tree-sha1 = "8ff3884b3f5613214b520d6054f8df8ce0de1396" +uuid = "b3565e16-c1f2-4fe9-b4ab-221c88942068" +version = "1.0.0" + [[deps.LERC_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" @@ -684,6 +722,12 @@ version = "2.12.0+0" uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" version = "1.11.0" +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "f02b56007b064fbfddb4c9cd60161b6dd0f40df3" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.1.0" + [[deps.MIMEs]] git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" @@ -700,6 +744,12 @@ deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" version = "1.11.0" +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" @@ -728,6 +778,12 @@ git-tree-sha1 = "76374b6e7f632c130e78100b166e5a48464256f8" uuid = "643b3616-a352-519d-856d-80112ee9badc" version = "2.4.0+0" +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.3" + [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "ad31332567b189f508a3ea8957a2640b1147ab00" @@ -825,6 +881,11 @@ deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" version = "1.11.0" +[[deps.SimpleBufferStream]] +git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.2.0" + [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" @@ -901,6 +962,11 @@ git-tree-sha1 = "79e2d29b216ef24a0f4f905532b900dcf529aa06" uuid = "37f6aa50-8035-52d0-81c2-5a1d08754b2d" version = "3.5.0" +[[deps.TranscodingStreams]] +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.11.3" + [[deps.TreeView]] deps = ["CommonSubexpressions", "Graphs", "MacroTools", "TikzGraphs"] git-tree-sha1 = "41ddcefb625f2ab0f4d9f2081c2da1af2ccbbf8b" @@ -1031,7 +1097,8 @@ version = "0.13.1+0" # ╟─8ff96964-e39e-4762-ae03-e9166e163fca # ╟─bff155ab-ff0e-452b-a8f5-fe744e41a30f # ╟─caa3446e-c5df-4dac-905a-20515f681074 -# ╠═c784cbc3-19fc-45c9-b344-db10cf7a81fa +# ╟─c784cbc3-19fc-45c9-b344-db10cf7a81fa +# ╟─8f3dba2b-cfdc-4042-9ca4-b3bf0dbaf637 # ╠═4ab41dab-63f0-4ee0-b30d-532513406a0f # ╠═9f54f013-e8b9-4e0d-8bac-9867f5d1a393 # ╟─46fbbe87-ee6e-4874-9708-20a42347ff18 diff --git a/docs/src/tutorials/advanced_search.jl b/docs/src/tutorials/advanced_search.jl index 710689e..c312480 100644 --- a/docs/src/tutorials/advanced_search.jl +++ b/docs/src/tutorials/advanced_search.jl @@ -8,13 +8,18 @@ using InteractiveUtils # hide using PlutoUI +# ╔═╡ d52591c1-7544-4543-a4a1-2a1b94bd1d87 +# hide +using PrettyTables + +# ╔═╡ c0748da9-24da-4365-ba67-43bd593d5ea6 +# hide +using Test + # ╔═╡ c4441fa4-09ec-4b81-9681-b13b93a9c9c0 using HerbGrammar, HerbSpecification, HerbSearch, HerbInterpret, HerbConstraints, HerbCore -# ╔═╡ e0b2bfe8-bad3-47a3-803f-04b4a9deb232 -using Test - # ╔═╡ dddca175-3d88-45ce-90da-575c0ba38175 md""" # Advanced Search Procedures in Herb.jl @@ -91,13 +96,19 @@ Solution for max_depth = 3: # ╔═╡ a6fb2e91-b73a-4032-930f-d884abd539e2 solution_1 = @time synth(problem_1, iterator_1) +# ╔═╡ d44afab4-dca1-4507-ab4d-0d2573603fa7 +rulenode2expr(solution_1[1], g_1) + # ╔═╡ d1b02aac-f93d-4643-98da-62eb74933e5b md""" Solution for max_depth = 6: """ # ╔═╡ e1d2cb58-5409-4eed-8ce1-9636e5ee2d1e -solution_2 = @time synth(problem_1, iterator_2) +begin + solution_2 = @time synth(problem_1, iterator_2) + rulenode2expr(solution_2[1], g_1) +end # ╔═╡ 58c1a904-4d87-43f7-bcc3-884a8663c1da md""" @@ -113,14 +124,20 @@ Let's explore how many enumerations are necessary to solve our simple problem. """ # ╔═╡ 3954dd49-07a2-4ec2-91b4-9c9596d5c264 -result = begin - arr = [] +begin + solutions = [] + times = [] + nodes = [] + iterations = [] for i in range(1, 50) iterator = BFSIterator(g_1, :Number, max_depth=i) - solution = @time synth(problem_1, iterator) - push!(arr, solution) + solution = @timed synth(problem_1, iterator) + push!(times, solution.time) + push!(nodes, solution[1][1]) + push!(solutions, rulenode2expr(solution[1][1], g_1)) + push!(iterations, i) end - arr + pretty_table(HTML, [iterations nodes solutions times], header=["Iteration", "RuleNode", "Program", "Duration"]) end # ╔═╡ 9892e91b-9115-4520-9637-f8d7c8905825 @@ -217,16 +234,19 @@ Let's verify that the iterator returns the programs we expect (keep in mind we u # ╔═╡ 07b54acf-0c0d-40ac-ae18-fb26094b4aca answer_programs = [ - RuleNode(1), - RuleNode(2), - RuleNode(3, [RuleNode(1), RuleNode(1)]), - RuleNode(3, [RuleNode(1), RuleNode(2)]), - RuleNode(3, [RuleNode(2), RuleNode(1)]), - RuleNode(3, [RuleNode(2), RuleNode(2)]) + RuleNode(1), + RuleNode(2), + RuleNode(3, [RuleNode(1), RuleNode(1)]), + RuleNode(3, [RuleNode(1), RuleNode(2)]), + RuleNode(3, [RuleNode(2), RuleNode(1)]), + RuleNode(3, [RuleNode(2), RuleNode(2)]) ] +# ╔═╡ a2ce4b5c-da9a-468a-8bf3-5a784e123266 +rulenode_programs = [rulenode2expr(r, g_3) for r in answer_programs] + # ╔═╡ 9efb01cf-b190-4e3e-aa19-11499ba46489 -all(p ∈ programs_bfs for p ∈ answer_programs) +found_all_programs = all(p ∈ programs_bfs for p ∈ answer_programs) # ╔═╡ 0020b79a-6352-4e2d-93f6-2a1d7b03ae2c md""" @@ -358,14 +378,19 @@ Run the following code block to define the iterator and perform the program synt # ╔═╡ 0a30fb40-cd45-4661-a501-ae8e45f1e07e begin - iterator_mh = MHSearchIterator(g_4, :X, examples_mh, cost_function, max_depth=3) - program_mh = synth(problem_mh, iterator_mh) - println("Sollution using MH: ", program_mh) + rules = [] + programs = [] + iters = [] + for i in range(1, 3) + iterator_mh = MHSearchIterator(g_4, :X, examples_mh, cost_function, max_depth=3) + program_mh = synth(problem_mh, iterator_mh) + push!(rules, program_mh[1]) + push!(programs, rulenode2expr(program_mh[1], g_4)) + push!(iters, i) + end + pretty_table(HTML, [iters rules programs], header=["Run", "RuleNode", "Program"]) end -# ╔═╡ 3d29e321-e82e-4bf8-8be3-781ab5f561a2 - - # ╔═╡ 700270ea-90bd-474b-91d9-0e5ed329776a md""" ### Very Large Scale Neighbourhood Search @@ -456,7 +481,10 @@ problem_gs, examples_gs = create_problem(e_gs) iterator_gs = GeneticSearchIterator(g_4, :X, examples_gs, population_size = 10, mutation_probability = 0.8, maximum_initial_population_depth = 3) # ╔═╡ 5bef5754-d81b-4160-8ed6-396d02853d9a -program_gs, error_gs = synth(problem_gs, iterator_gs) +begin + program_gs, error_gs = synth(problem_gs, iterator_gs) + rulenode2expr(program_gs, g_4) +end # ╔═╡ 00000000-0000-0000-0000-000000000001 PLUTO_PROJECT_TOML_CONTENTS = """ @@ -468,6 +496,7 @@ HerbInterpret = "5bbddadd-02c5-4713-84b8-97364418cca7" HerbSearch = "3008d8e8-f9aa-438a-92ed-26e9c7b4829f" HerbSpecification = "6d54aada-062f-46d8-85cf-a1ceaf058a06" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] @@ -478,6 +507,7 @@ HerbInterpret = "~0.1.3" HerbSearch = "~0.3.0" HerbSpecification = "~0.1.0" PlutoUI = "~0.7.59" +PrettyTables = "~2.4.0" """ # ╔═╡ 00000000-0000-0000-0000-000000000002 @@ -486,7 +516,7 @@ PLUTO_MANIFEST_TOML_CONTENTS = """ julia_version = "1.11.1" manifest_format = "2.0" -project_hash = "73f8122c6ae5b467aa0add1406bff57483e6e09d" +project_hash = "edca5a73f01350950590d222b2bce4d0cb1a613d" [[deps.AbstractPlutoDingetjes]] deps = ["Pkg"] @@ -556,6 +586,11 @@ deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "1.1.1+0" +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + [[deps.DataAPI]] git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" @@ -567,6 +602,11 @@ git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" version = "0.18.20" +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" @@ -725,6 +765,11 @@ git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" version = "0.2.2" +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" @@ -986,6 +1031,12 @@ git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.3" +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "1101cd475833706e4d0e7b122218257178f48f34" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.4.0" + [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" @@ -1082,6 +1133,12 @@ git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" version = "0.34.3" +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a6b1675a536c5ad1a60e5a5153e1fee12eb146e3" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.4.0" + [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" @@ -1092,6 +1149,18 @@ deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.12.0" + [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" @@ -1242,6 +1311,8 @@ version = "0.13.1+0" # ╟─dddca175-3d88-45ce-90da-575c0ba38175 # ╟─a93d954d-0f09-4b6d-a3a5-62bfe39681e2 # ╟─6ab37bbc-73e2-4d9a-a8b2-e715a0b61c8f +# ╟─d52591c1-7544-4543-a4a1-2a1b94bd1d87 +# ╟─c0748da9-24da-4365-ba67-43bd593d5ea6 # ╟─61cee94c-2481-4268-823b-ca596592b63c # ╠═c4441fa4-09ec-4b81-9681-b13b93a9c9c0 # ╟─67931820-0f43-41e1-898e-5b5bd55e30d1 @@ -1254,6 +1325,7 @@ version = "0.13.1+0" # ╟─63e97576-1c34-464d-a106-d59d5fb1ee38 # ╠═7e251a07-0041-4dc2-ac09-94fb01075c03 # ╠═a6fb2e91-b73a-4032-930f-d884abd539e2 +# ╠═d44afab4-dca1-4507-ab4d-0d2573603fa7 # ╠═d1b02aac-f93d-4643-98da-62eb74933e5b # ╠═e1d2cb58-5409-4eed-8ce1-9636e5ee2d1e # ╟─58c1a904-4d87-43f7-bcc3-884a8663c1da @@ -1264,7 +1336,6 @@ version = "0.13.1+0" # ╠═9fb40ceb-8d41-491b-8941-20a8b240eb82 # ╠═94e0d676-a9c7-4291-8696-15301e541c30 # ╠═a4a7daed-f89b-44ad-8787-9199c05bf046 -# ╠═e0b2bfe8-bad3-47a3-803f-04b4a9deb232 # ╠═4821fd3a-ff2d-4991-99ad-76608d11b1da # ╟─b2eb08d7-3e53-46c5-84b1-e1fa0e07e291 # ╠═606070e1-83a7-4cca-a716-4fa459f78772 @@ -1278,6 +1349,7 @@ version = "0.13.1+0" # ╠═6aec7358-225a-4764-9a36-da86234b6cf8 # ╟─d3ff497e-d2c2-4df6-8e4c-cdca70fd0677 # ╠═07b54acf-0c0d-40ac-ae18-fb26094b4aca +# ╠═a2ce4b5c-da9a-468a-8bf3-5a784e123266 # ╠═9efb01cf-b190-4e3e-aa19-11499ba46489 # ╟─0020b79a-6352-4e2d-93f6-2a1d7b03ae2c # ╠═db5be2c3-0b36-40b4-bf14-20e2c7063ad7 @@ -1302,7 +1374,6 @@ version = "0.13.1+0" # ╠═afe1872c-6641-4fa0-a53e-50c6b4a712ee # ╟─69e91ae9-8475-47dd-826e-8c229faa11e8 # ╠═0a30fb40-cd45-4661-a501-ae8e45f1e07e -# ╠═3d29e321-e82e-4bf8-8be3-781ab5f561a2 # ╠═700270ea-90bd-474b-91d9-0e5ed329776a # ╠═e6e5c63b-34e8-40d6-bc12-bd31f40b4b16 # ╠═2397f65f-e6b4-4f11-bf66-83440c58b688 diff --git a/docs/src/tutorials/working_with_interpreters.jl b/docs/src/tutorials/working_with_interpreters.jl index fc496cf..69f3760 100644 --- a/docs/src/tutorials/working_with_interpreters.jl +++ b/docs/src/tutorials/working_with_interpreters.jl @@ -5,10 +5,7 @@ using Markdown using InteractiveUtils # ╔═╡ e0a7076c-9345-40ef-a26e-99e8bad31463 -begin - using HerbGrammar - using HerbInterpret -end +using HerbGrammar, HerbInterpret # ╔═╡ 55719688-3940-11ef-1f29-f51dea064ff3 md"# Using the Julia interpreter