1
1
mirror of https://github.com/github/semantic.git synced 2024-12-21 13:51:44 +03:00
Commit Graph

474 Commits

Author SHA1 Message Date
Rob Rix
2a8e017282 Free is CustomDocConvertible. 2015-10-07 17:20:09 -04:00
Rob Rix
37e204a1e3 Fix is CustomDocConvertible.
It simply defers it to Syntax.
2015-10-07 17:19:56 -04:00
Rob Rix
519b8477fd Diffing by key handles equal terms correctly. 2015-10-07 17:19:50 -04:00
Rob Rix
a8e38b1aa9 Add a module map. 2015-10-07 08:52:26 -04:00
Rob Rix
7852d8a515 Diffs have an inverse. 2015-10-07 08:43:30 -04:00
Rob Rix
0af93b4c68 Patches have an inverse. 2015-10-07 08:41:54 -04:00
Rob Rix
8a9f74a0ff Use discardNullTerms to compute both states. 2015-10-06 21:39:11 -04:00
Rob Rix
321622d553 Extract the discarding of null terms into a private helper function. 2015-10-06 21:38:44 -04:00
Rob Rix
e1dd859db9 Implicit parameters. 2015-10-06 21:36:22 -04:00
Rob Rix
ee969a75fa Compute the after state of diffs. 2015-10-06 21:35:47 -04:00
Rob Rix
b04d71ede3 Compute the before-state of diffs.
This is `Optional`, as some diffs have unrecoverable before states. For
example, the insertion of a term has no before state, but can still
produce a valid before state if it occurs within the context of an
`Indexed` or `Keyed` node.

However, certain malformed diffs (such as `.Pure(.Insert(…))` in
isolation) may lack a valid before state, and thus the public API has
to reflect this.
2015-10-06 21:35:19 -04:00
Rob Rix
75aaebe834 Free has a Term typealias when appropriate. 2015-10-06 21:32:38 -04:00
Rob Rix
85ac68d232 Document why PatchConvertible. 2015-10-06 21:25:21 -04:00
Rob Rix
6b3c66d801 Patch is trivially PatchConvertible. 2015-10-06 21:24:43 -04:00
Rob Rix
46f3f9431b Add a PatchConvertible protocol to enable constrained extensions. 2015-10-06 21:24:01 -04:00
Rob Rix
1059a00db0 🔥 AnyEquatable. 2015-10-06 19:20:16 -04:00
Rob Rix
939a714807 🔥 AnyHashable. 2015-10-06 19:20:06 -04:00
Rob Rix
47dd0b4849 Construct with Diff(), not copy(). 2015-10-06 17:47:10 -04:00
Rob Rix
c9d51049df Construct with Diff(), not copy(). 2015-10-06 17:47:04 -04:00
Rob Rix
de61021d32 Once more, call it Term. 2015-10-06 17:46:37 -04:00
Rob Rix
f51f6f39a2 Call it Term. 2015-10-06 17:46:02 -04:00
Rob Rix
22773917a3 Construct Free with Fix. 2015-10-06 17:45:24 -04:00
Rob Rix
d097f14fcb Explain SES implementation details a little. 2015-10-06 17:36:49 -04:00
Rob Rix
6030731cc8 Extend the graph and return Stream.Nil at the end. 2015-10-06 17:36:41 -04:00
Rob Rix
57fb8ff251 Document the purpose of the matrix. 2015-10-06 17:29:33 -04:00
Rob Rix
d7db7415dc Patches have different costs. 2015-10-06 17:08:22 -04:00
Rob Rix
4fdbcf948f Patches have a cost.
This charges `Replace` patches at a higher cost than `Insert`/`Delete`
patches to avoid spurious replacements.
2015-10-06 17:07:16 -04:00
Rob Rix
bcc3da35f9 Recur at the corner.
This can’t be right.
2015-10-06 17:01:27 -04:00
Rob Rix
c7aad22838 Insert/delete/recur based on the edge being followed. 2015-10-06 17:01:17 -04:00
Rob Rix
c2d4c96d62 Recurrence checks for equality. 2015-10-06 16:59:29 -04:00
Rob Rix
a1a832012e Implement a function copying terms into diffs. 2015-10-06 16:59:11 -04:00
Rob Rix
a628177722 Move SES to its own file. 2015-10-06 16:50:23 -04:00
Rob Rix
8e0cafbac4 Info’s debug description uses its categories’ debug descriptions. 2015-10-06 16:49:14 -04:00
Rob Rix
606d721dea Category is CustomDebugStringConvertible. 2015-10-06 16:48:44 -04:00
Rob Rix
ee8794fd81 Patch is CustomDebugStringConvertible. 2015-10-06 16:45:36 -04:00
Rob Rix
0237d5991a Fix is CustomDebugStringConvertible. 2015-10-06 16:44:00 -04:00
Rob Rix
29d889ef95 Free is CustomDebugStringConvertible. 2015-10-06 16:43:20 -04:00
Rob Rix
64830960e5 Info is CustomDebugStringConvertible. 2015-10-06 16:41:54 -04:00
Rob Rix
db63777dd9 Represent Insert/Delete explicitly in Patch.
Fixes #60.
2015-10-06 16:31:44 -04:00
Rob Rix
0a6a136bff 🔥 Vertex & VertexTests. 2015-10-06 14:24:56 -04:00
Rob Rix
2726a43c83 Lazily, not eagerly.
`Memo.init` selected the eager version, of course, since the lazy
version takes a closure.
2015-10-06 14:19:39 -04:00
Rob Rix
1658219d59 Document constructRowMajor. 2015-10-06 14:17:14 -04:00
Rob Rix
092087fc54 Extract row-major ordering into a private function. 2015-10-06 14:15:21 -04:00
Rob Rix
934390a0d5 Retrieve in row-major order. 2015-10-06 14:11:36 -04:00
Rob Rix
d12c95e296 Insert in row-major order. 2015-10-06 14:11:26 -04:00
Rob Rix
e178745c56 Cache the costs for the rest of the graph at each vertex. 2015-10-06 13:33:38 -04:00
Rob Rix
6c8ce1bcb2 Append, don’t subscript.
Subscripting only replaces, never appends.
2015-10-06 13:29:43 -04:00
Rob Rix
648945fee0 FreeAlgorithm.evaluate() calls out to SES. 2015-10-06 13:09:17 -04:00
Rob Rix
d2b3f16cfc Document SES. 2015-10-06 13:08:17 -04:00
Rob Rix
90b404b3ee Extract the SES function. 2015-10-06 13:05:49 -04:00