feat(lang): the at operator — crease-segment selection (#50) #63
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "worktree-at-operator"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds the
atoperator. A crease name denotes a bundle of segments (onecrease_id, one edge per crossed face; ADR 0014), andatprojects it down to a single segment by incidence.--l at .p,--l at --a,--l at #(…)— one selector, bare--l at (.p and --a)— two selectors, parenthesised (disambiguates a shared crossing vertex; cap = 2)0→ "no segment…",>1→ "ambiguous… add a selector")Replaces the
--( --d #(…) )restrict escape hatch, which is removed —--( … )now means only line-through-two-points. Selection is incidence (side_of_line = 0+ param in[0,1]), distinct fromtoward's proximity.Implementation is additive:
Fold_stateedges already carrycrease_id+ endpoints, soatis a query over the existing subdivision (newcrease_segmentsenumerator). Spec §4.8 documents it; grammar in Appendix A. Whole suite green; the FOLD golden is byte-identical after the syntax-only example migration.For #50 — first of three slices (
pinchcreation and ambiguity-enumeration tooling to follow).crease-at-flap.bel—--b(blue, axiom 1) bent by--v(green, axiom 2);--q(pink, axiom 3) is perp to theat #(.c .d)upper segment.