diff --git a/bin/solid.pill b/bin/solid.pill index d86bb9efd..36e52f46d 100644 --- a/bin/solid.pill +++ b/bin/solid.pill @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fd51d827ed2bd4823a87caa953ce9a508d6a390442246198b093b0c39fa4e5ed -size 8763109 +oid sha256:789c5755516cf60993f01d6842437c9cf487b24fa6fca8d27f2ff52f9ec79364 +size 8824140 diff --git a/pkg/arvo/lib/language-server/complete.hoon b/pkg/arvo/lib/language-server/complete.hoon index 6e352e819..5b0d0612f 100644 --- a/pkg/arvo/lib/language-server/complete.hoon +++ b/pkg/arvo/lib/language-server/complete.hoon @@ -343,7 +343,7 @@ [%| p.res] :- %& ~? > debug %parsed-good - ((cury tab-list-hoon sut) hoon.p.res) + ((cury tab-list-hoon sut) hoon:`pile:clay`p.res) :: :: Generators ++ tab-generators diff --git a/pkg/arvo/lib/language-server/parser.hoon b/pkg/arvo/lib/language-server/parser.hoon index 339d31972..05667bee0 100644 --- a/pkg/arvo/lib/language-server/parser.hoon +++ b/pkg/arvo/lib/language-server/parser.hoon @@ -5,75 +5,59 @@ ++ pile-rule |= pax=path %- full - %+ ifix [gay gay] - %+ cook |=(pile +<) - ;~ pfix + %+ ifix + :_ gay :: parse optional /? and ignore :: - ;~ pose - (cold ~ ;~(plug fas wut gap dem gap)) - (easy ~) + ;~(plug gay (punt ;~(plug fas wut gap dem gap))) + |^ + ;~ plug + %+ cook (bake zing (list (list taut))) + %+ rune hep + (most ;~(plug com gaw) taut-rule) + :: + %+ cook (bake zing (list (list taut))) + %+ rune lus + (most ;~(plug com gaw) taut-rule) + :: + %+ rune tis + ;~(plug sym ;~(pfix gap fas (more fas urs:ab))) + :: + %+ rune cen + ;~(plug sym ;~(pfix cen sym)) + :: + %+ rune buc + ;~ (glue gap) + sym + ;~(pfix cen sym) + ;~(pfix cen sym) == :: - ;~ plug - ;~ pose - ;~ sfix - %+ cook |=((list (list taut)) (zing +<)) - %+ more gap - ;~ pfix ;~(plug fas hep gap) - (most ;~(plug com gaw) taut-rule) - == - gap - == - (easy ~) - == - :: - ;~ pose - ;~ sfix - %+ cook |=((list (list taut)) (zing +<)) - %+ more gap - ;~ pfix ;~(plug fas lus gap) - (most ;~(plug com gaw) taut-rule) - == - gap - == - (easy ~) - == - :: - ;~ pose - ;~ sfix - %+ cook |=((list [face=term =path]) +<) - %+ more gap - ;~ pfix ;~(plug fas tis gap) - %+ cook |=([term path] +<) - ;~(plug sym ;~(pfix ;~(plug gap fas) (more fas urs:ab))) - == - gap - == - (easy ~) - == - :: - ;~ pose - ;~ sfix - %+ cook |=((list [face=term =mark =path]) +<) - %+ more gap - ;~ pfix ;~(plug fas tar gap) - %+ cook |=([term mark path] +<) - ;~ plug - sym - ;~(pfix ;~(plug gap cen) sym) - ;~(pfix ;~(plug gap fas) (more fas urs:ab)) - == - == - gap - == - (easy ~) - == - :: - %+ cook |=(huz=(list hoon) `hoon`tssg+huz) - (most gap tall:(vang & pax)) + %+ rune tar + ;~ (glue gap) + sym + ;~(pfix cen sym) + ;~(pfix fas (more fas urs:ab)) == + :: + %+ stag %tssg + (most gap tall:(vang & pax)) == + :: + ++ pant + |* fel=^rule + ;~(pose fel (easy ~)) + :: + ++ mast + |* [bus=^rule fel=^rule] + ;~(sfix (more bus fel) bus) + :: + ++ rune + |* [bus=^rule fel=^rule] + %- pant + %+ mast gap + ;~(pfix fas bus gap fel) + -- :: ++ taut-rule %+ cook |=(taut +<) diff --git a/pkg/arvo/sys/lull.hoon b/pkg/arvo/sys/lull.hoon index 9796356dd..48cdce15b 100644 --- a/pkg/arvo/sys/lull.hoon +++ b/pkg/arvo/sys/lull.hoon @@ -928,12 +928,16 @@ :: /- sur-file :: surface imports from /sur :: /+ lib-file :: library imports from /lib :: /= face /path :: imports built hoon file at path + :: /% face %mark :: imports mark definition from /mar + :: /$ face %from %to :: imports mark converter from /mar :: /* face %mark /path :: unbuilt file imports, as mark :: +$ pile $: sur=(list taut) lib=(list taut) raw=(list [face=term =path]) + maz=(list [face=term =mark]) + caz=(list [face=term =mars]) bar=(list [face=term =mark =path]) =hoon == diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 5ec3065d9..b1057651f 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -828,6 +828,8 @@ =^ sut=vase nub (run-tauts bud %sur sur.pile) =^ sut=vase nub (run-tauts sut %lib lib.pile) =^ sut=vase nub (run-raw sut raw.pile) + =^ sut=vase nub (run-maz sut maz.pile) + =^ sut=vase nub (run-caz sut caz.pile) =^ sut=vase nub (run-bar sut bar.pile) =/ res=vase (road |.((slap sut hoon.pile))) [res nub] @@ -865,6 +867,16 @@ :: %+ rune tis ;~(plug sym ;~(pfix gap fas (more fas urs:ab))) + :: + %+ rune cen + ;~(plug sym ;~(pfix cen sym)) + :: + %+ rune buc + ;~ (glue gap) + sym + ;~(pfix cen sym) + ;~(pfix cen sym) + == :: %+ rune tar ;~ (glue gap) @@ -916,6 +928,22 @@ =. p.pin [%face face.i.raw p.pin] $(sut (slop pin sut), raw t.raw) :: + ++ run-maz + |= [sut=vase maz=(list [face=term =mark])] + ^- [vase state] + ?~ maz [sut nub] + =^ pin=vase nub (get-nave mark.i.maz) + =. p.pin [%face face.i.maz p.pin] + $(sut (slop pin sut), maz t.maz) + :: + ++ run-caz + |= [sut=vase caz=(list [face=term =mars])] + ^- [vase state] + ?~ caz [sut nub] + =^ pin=vase nub (get-cast mars.i.caz) + =. p.pin [%face face.i.caz p.pin] + $(sut (slop pin sut), caz t.caz) + :: ++ run-bar |= [sut=vase bar=(list [face=term =mark =path])] ^- [vase state] diff --git a/pkg/arvo/tests/sys/vane/clay.hoon b/pkg/arvo/tests/sys/vane/clay.hoon index 6d5289cec..755d5e43a 100644 --- a/pkg/arvo/tests/sys/vane/clay.hoon +++ b/pkg/arvo/tests/sys/vane/clay.hoon @@ -18,7 +18,7 @@ ++ test-parse-pile ^- tang %+ expect-eq !> ^- pile:fusion - :* ~ ~ ~ ~ + :* ~ ~ ~ ~ ~ ~ tssg+[%dbug [/sur/foo/hoon [[1 1] [1 2]]] [%cnts ~[[%.y 1]] ~]]~ == !> (parse-pile:(ford):fusion /sur/foo/hoon ".") @@ -54,7 +54,7 @@ [`%hood-drum %hood-drum] [`%hood-write %hood-write] == - raw=~ bar=~ + raw=~ bar=~ maz=~ caz=~ hoon=tssg+[p:(need q:(tall:(vang & /app/hood/hoon) [17 1] "."))]~ == !> (parse-pile:(ford):fusion /app/hood/hoon src)