1
1
mirror of https://github.com/github/semantic.git synced 2025-01-09 00:56:32 +03:00
Commit Graph

6656 Commits

Author SHA1 Message Date
Rob Rix
1fe76ee24c Show the rest of assignments following Symbol rules. 2017-04-26 09:33:36 -04:00
Rob Rix
49f5e007da 🔥 Get assignment. 2017-04-25 15:09:41 -04:00
Rob Rix
7be5f34a38 🔥 range/sourceSpan. 2017-04-25 15:09:34 -04:00
Rob Rix
71515d73ae Reintroduce Symbol assignment. 2017-04-25 15:08:23 -04:00
Rob Rix
335cb3194f 🔥 State assignment. 2017-04-25 15:05:04 -04:00
Rob Rix
d5797eba16 Define location assignment. 2017-04-25 15:04:08 -04:00
Rob Rix
c2607ffc4c 📝 Union’s constructors. 2017-04-25 13:53:18 -04:00
Rob Rix
03c57f2ef4 Merge branch 'master' into a-la-carte-folds 2017-04-25 12:47:47 -04:00
Rob Rix
8e2c1ffd5f Correct the docs of identifierAlg. 2017-04-25 12:39:05 -04:00
Rob Rix
4644bcc2ef Use Traversable as shorthand for Functor + Foldable.
This is not generally a good idea, but we strictly control these unions & syntax types, and it’s hard to imagine non-`Traversable` syntax.
2017-04-25 12:35:49 -04:00
Rob Rix
b6723c56f2 Panic! Our system. 2017-04-25 12:33:41 -04:00
Rob Rix
0db2c73a1e Replace the identifiable algebra with an identifier algebra. 2017-04-25 12:30:36 -04:00
Rob Rix
69bbc13da3 Methods must be part of the syntax. 2017-04-25 12:27:42 -04:00
Rob Rix
30e72f3344 Methods are declarations, not statements. 2017-04-25 12:27:27 -04:00
Rob Rix
00200d7822 📝 some cases cyclomaticComplexityAlg doesn’t handle. 2017-04-25 12:17:17 -04:00
Rob Rix
a00ff68f32 Control exits methods at least once. 2017-04-25 12:15:28 -04:00
Rob Rix
390297aa56 📝 cyclomaticComplexityAlg. 2017-04-25 12:13:33 -04:00
Rob Rix
91366b0ba4 📝 CyclomaticComplexity. 2017-04-25 12:11:57 -04:00
Rob Rix
42d8b42f60 Merge branch 'a-la-carte-folds' of https://github.com/github/semantic-diff into a-la-carte-folds 2017-04-25 12:10:56 -04:00
Rob Rix
7bf60eb2ff 🔥 CVAlgebra handling.
We run the risk of making paramorphisms quadratic if we use histomorphisms to decorate, so we compromise on the added flexibility.
2017-04-25 12:10:48 -04:00
Rob Rix
2b703d1f31 Generalize decoratorWithAlgebra to take an R-algebra. 2017-04-25 12:09:10 -04:00
Timothy Clem
975304097c Remove TODO and leave readFile behavior alone for now 2017-04-25 09:07:51 -07:00
Timothy Clem
6be9b9c3cd 🔥 concurrently 2017-04-25 09:05:48 -07:00
Timothy Clem
12948181c5 Merge remote-tracking branch 'origin/master' into clean-parse-and-diff-interface 2017-04-25 09:02:41 -07:00
Rob Rix
68e5042155 Merge branch 'master' into a-la-carte-folds 2017-04-25 10:55:26 -04:00
Rob Rix
6c38ec2b77 Correct the deprecation pragma. 2017-04-24 19:16:50 -04:00
Rob Rix
22ac1e3441 Add a deprecation notice to rToCV. 2017-04-24 18:42:35 -04:00
Rob Rix
7e21c167e1 Define an adaptor from F-algebras to CV-algebras. 2017-04-24 18:35:22 -04:00
Rob Rix
22be6c30f0 Factor Base out of the algebra type synonyms to avoid ambiguity. 2017-04-24 18:34:28 -04:00
Rob Rix
5b32f9d1b6 Note the awful complexity of rToCV. 2017-04-24 16:09:49 -04:00
Rob Rix
440cc2e792 📝 rToCV. 2017-04-24 16:00:06 -04:00
Rob Rix
4ac68417a2 Define the promotion of R-algebras into CV-algebras. 2017-04-24 15:58:29 -04:00
Rob Rix
bee4b4b06e Define a type synonym for course-of-value algebras. 2017-04-24 15:55:09 -04:00
joshvera
7395e88ab0 Remove Data.RandomWalkSimilarity 2017-04-24 15:53:11 -04:00
Rob Rix
bc3fc4b4af 📝 fToR. 2017-04-24 15:46:51 -04:00
Rob Rix
d6cb7890b9 Define a function to promote F-algebras into R-algebras. 2017-04-24 15:45:50 -04:00
Rob Rix
953034ccb3 Define FAlgebra in terms of the Base of some type. 2017-04-24 15:44:46 -04:00
Rob Rix
c53076b071 Replace identifiable with its R-algebra. 2017-04-24 15:43:29 -04:00
Rob Rix
d429d77b15 Define a type synonym for R-algebras. 2017-04-24 15:43:22 -04:00
Rob Rix
fa520d6089 Move the definition of FAlgebra up. 2017-04-24 15:41:17 -04:00
Rob Rix
82a40d19ff cyclomaticComplexityAlg is an F-algebra. 2017-04-24 15:40:31 -04:00
Rob Rix
46c044d448 Replace cyclomaticComplexity with its algebra. 2017-04-24 15:39:46 -04:00
Rob Rix
1e40f9b823 📝 decoratorWithAlgebra’s parameters. 2017-04-24 15:38:34 -04:00
Rob Rix
292969a5df Reformat decoratorWithAlgebra’s signature. 2017-04-24 15:38:22 -04:00
Rob Rix
0a6555351b 📝 decoratorWithAlgebra. 2017-04-24 15:35:47 -04:00
Rob Rix
5201cb3f46 📝 FAlgebra. 2017-04-24 15:35:19 -04:00
Rob Rix
07c13859e2 Define a function lifting an algebra into a decorator. 2017-04-24 15:34:28 -04:00
Rob Rix
8b7d416164 Simplify the cyclomatic complexity computation to just the value. 2017-04-24 15:28:21 -04:00
Rob Rix
c4393ace0b Define a cyclomatic complexity decorator. 2017-04-24 15:23:21 -04:00
Rob Rix
90737f6e5f Generalize identifiable over the union. 2017-04-24 15:07:19 -04:00
Rob Rix
76513638a6 Merge branch 'master' into clean-parse-and-diff-interface 2017-04-24 14:56:06 -04:00
Rob Rix
9e34c589c0 Merge branch 'master' into a-la-carte-folds 2017-04-24 14:55:49 -04:00
Rob Rix
fb477828e6 📝 advanceState. 2017-04-24 13:57:41 -04:00
Rob Rix
a7b47952eb 📝 AssignmentState itself. 2017-04-24 13:55:12 -04:00
Rob Rix
8caea50b14 📝 AssignmentState’s fields. 2017-04-24 13:54:33 -04:00
Rob Rix
806aa944d0 SourcePos is 1-indexed in both line and column. 2017-04-24 13:51:08 -04:00
Rob Rix
3705f960f4 Reformat AssignmentState across several lines. 2017-04-24 13:47:21 -04:00
Rob Rix
d3517ab60f Methods are identifiable. 2017-04-24 13:41:20 -04:00
Rob Rix
54108f0019 Classes are identifiable. 2017-04-24 13:41:16 -04:00
Rob Rix
d5b512d094 Stub in a function producing the list of identifiable subterms of a term. 2017-04-24 13:38:55 -04:00
Rob Rix
d66e425e56 Derive Functor and Traversable instances for à la carte syntax types. 2017-04-24 13:38:21 -04:00
Rob Rix
0ad31e7887 Define Traversable instances for Unions. 2017-04-24 13:37:59 -04:00
Rob Rix
09d4dbcb8e Define Functor instances for unions of Functors. 2017-04-24 13:29:10 -04:00
Rob Rix
3dd4d12af8 Define the strengthening of a single-member union. 2017-04-24 13:28:56 -04:00
Timothy Clem
c1be28de3b Switch over to mapConcurrently in Command.Git too 2017-04-24 09:59:58 -07:00
Rob Rix
cbe44c66e7 Merge branch 'master' into run-assignment-with-source 2017-04-24 12:53:45 -04:00
Timothy Clem
5181a11455 Use StandaloneDeriving for Arguments 2017-04-24 09:42:58 -07:00
Timothy Clem
196a0d28e8 Not using ViewPatterns here 2017-04-24 09:33:12 -07:00
Timothy Clem
77b9b6f909 Few doc fixes 2017-04-24 09:17:28 -07:00
Josh Vera
ed8b07e64b Merge branch 'master' into clean-parse-and-diff-interface 2017-04-24 12:03:09 -04:00
Josh Vera
afc4790383 Merge branch 'master' into rws-effect 2017-04-24 11:53:26 -04:00
Timothy Clem
5b3ea87e57 Revert "Write my own takeExtension"
This reverts commit c18cabe7b583e039d96138b8b219bf99c52dd995.
2017-04-24 08:12:53 -07:00
Timothy Clem
56f9a7ba40 Change naming to diffBlobPair(s) 2017-04-24 07:46:32 -07:00
Timothy Clem
bb71fd7b71 s/renderAsync/renderConcurrently 2017-04-24 07:37:41 -07:00
Timothy Clem
d38724f39b Write my own takeExtension 2017-04-24 07:37:32 -07:00
Rob Rix
5500b7534e term can match empty lists by taking the current offset. 2017-04-24 10:19:15 -04:00
Rob Rix
59b7478caf 📝 AST. 2017-04-24 10:18:42 -04:00
Rob Rix
7868979cee 📝 Node. 2017-04-24 10:18:02 -04:00
Rob Rix
ec65a199dc Define a location combinator. 2017-04-24 10:17:10 -04:00
Rob Rix
25ebe64d83 Define state assignments. 2017-04-24 10:01:09 -04:00
Rob Rix
96affb1f05 Carry the current position through assignment. 2017-04-24 09:53:30 -04:00
Timothy Clem
d4933b3aaf Easier way to get output dir 2017-04-21 18:07:16 -07:00
Timothy Clem
643a7a3581 Docs, order import, internal functions at the bottom 2017-04-21 18:06:56 -07:00
Timothy Clem
44dfa16bb5 Remove debug even tracing 2017-04-21 17:55:07 -07:00
Timothy Clem
779b6afde2 No longer need printTerms 2017-04-21 17:54:58 -07:00
Timothy Clem
190dca165d Turn on debug flag to send sourceText output for parse again 2017-04-21 17:46:59 -07:00
Timothy Clem
ca89087e1d Extract out a common async render and keep async stuff in Semantic 2017-04-21 16:41:46 -07:00
Timothy Clem
bd019104a8 First pass at parallel rendering! 2017-04-21 16:24:17 -07:00
Timothy Clem
980333f40d WIP - optimize concurrency 2017-04-21 15:40:37 -07:00
Timothy Clem
d5b9463a56 Collapse Parser.Language back into Semantic 2017-04-21 14:20:30 -07:00
Timothy Clem
f51798e4c8 Turn parseBlob tests back on in new Spec 2017-04-21 14:12:00 -07:00
Timothy Clem
78d376e256 Pair down command to just fs and git operations 2017-04-21 13:56:19 -07:00
Rob Rix
718ef34e71 assignAllFrom takes an AssignmentState. 2017-04-21 16:53:43 -04:00
Rob Rix
f09e0ba5cc Assign terms annotated with ranges & source spans. 2017-04-21 16:38:51 -04:00
Rob Rix
b99944556c Merge branch 'master' into run-assignment-with-source 2017-04-21 16:18:16 -04:00
Rob Rix
65176ffa6b Advance the state using a helper function. 2017-04-21 13:52:49 -04:00
Rob Rix
5643a0674d Define selectors for AssignmentState. 2017-04-21 13:48:55 -04:00
Rob Rix
626281b68b Define a type for assignments’ state. 2017-04-21 13:45:27 -04:00
Rob Rix
cfe0709649 Rename rest to nodes.
This clarifies that pure assignments don’t advance the state.
2017-04-21 13:42:12 -04:00
Rob Rix
92a3a9c95f Advance the source. 2017-04-21 13:41:42 -04:00
Rob Rix
e3192150e2 Define take & drop functions for Source. 2017-04-21 13:36:41 -04:00
Rob Rix
94452afacc Return a slice of the source. 2017-04-21 13:31:40 -04:00
Rob Rix
fdde8b0255 Don’t bind node fields explicitly. 2017-04-21 13:28:11 -04:00
Rob Rix
27db847b06 Rename node to subtree. 2017-04-21 13:27:44 -04:00
Rob Rix
4aea07f87f Pass the offset through assignments. 2017-04-21 13:26:22 -04:00
Timothy Clem
e9316f4026 Use new diffBlobs interface in cmdline program 2017-04-21 10:25:47 -07:00
Rob Rix
35e3643724 Running an assignment returns the Source. 2017-04-21 12:19:50 -04:00
Rob Rix
41848c415d Revert "Define a Conjunctive typeclass."
This reverts commit 4beaa5a9ae6bb16c4d2d896026f0dc267c1f772d.
2017-04-21 12:17:49 -04:00
Rob Rix
a79d96d942 Revert "Give default definitions for &> and <&."
This reverts commit 9c12b1b63c2f19616e36687883fbcad192efc0b0.
2017-04-21 12:17:48 -04:00
Rob Rix
85ab76a7b0 Revert "Define a liftC2 method."
This reverts commit 5d0f44702e940800eca706e7a060586a9c92f8b7.
2017-04-21 12:17:46 -04:00
Rob Rix
0991f0c8c1 Revert "Give a default definition for <&> in terms of liftC2."
This reverts commit 0a6bfa25ea2801aa7b7c2c19f1fcabf63bddaccf.
2017-04-21 12:17:45 -04:00
Rob Rix
b4a8336beb Revert "Describe the minimal instance."
This reverts commit 4a8a676f8faafd0f60769a20068512937181f7e4.
2017-04-21 12:17:43 -04:00
Rob Rix
639fc824aa Revert "Define example instances of Conjunctive for Maybe and []."
This reverts commit 05dea7751da8699f6eeb53bb00dd5f40fc49b775.
2017-04-21 12:17:02 -04:00
Rob Rix
d5f1fb93ef Define example instances of Conjunctive for Maybe and []. 2017-04-21 12:11:27 -04:00
Rob Rix
0c75affa75 Describe the minimal instance. 2017-04-21 11:50:21 -04:00
Rob Rix
9ba51f537a Give a default definition for <&> in terms of liftC2. 2017-04-21 11:50:10 -04:00
Rob Rix
2119f3b7ed Define a liftC2 method. 2017-04-21 11:48:29 -04:00
Rob Rix
340a58e44e Give default definitions for &> and <&. 2017-04-21 11:44:23 -04:00
Rob Rix
22177b0940 Define a Conjunctive typeclass. 2017-04-21 11:44:16 -04:00
Rob Rix
9acedae624 Simplify the definition of annotation. 2017-04-21 11:20:47 -04:00
Rob Rix
bcceb1c5a8 Define a smart constructor for Get. 2017-04-21 11:20:19 -04:00
Rob Rix
cf8e59635c Define Symbol, Range, and SourceSpan in terms of Get. 2017-04-21 11:18:09 -04:00
Rob Rix
9b9713d317 Define a Get rule to produce the current symbol (soon, node). 2017-04-21 10:56:43 -04:00
Rob Rix
f7e0938c0c Add an annotation combinator. 2017-04-21 10:39:53 -04:00
Rob Rix
2c16ea9b17 term takes its annotation. 2017-04-21 10:38:17 -04:00
Rob Rix
ba73178532 Define combinators producing the range and source span of the current node. 2017-04-21 10:21:25 -04:00
Rob Rix
364c9b1113 Correct the docs of symbol. 2017-04-21 10:13:35 -04:00
Rob Rix
0e2559db0f Reintroduce Node/AST type synonyms. 2017-04-21 10:08:19 -04:00
Rob Rix
8cc3da0de3 Assignment receives source spans. 2017-04-21 09:55:19 -04:00
Rob Rix
ab059af248 Assignment receives ranges. 2017-04-21 09:54:17 -04:00
Rob Rix
2f696ef88d Pass the symbol in a record. 2017-04-21 09:52:23 -04:00
Rob Rix
b5575d7298 📝 parseRubyToAST. 2017-04-21 09:44:05 -04:00
Rob Rix
a29b7b6f2b Return the Source alongside the AST.
This makes for easier chaining.
2017-04-21 09:43:29 -04:00
Rob Rix
9a0361d74d Pass source when running assignments. 2017-04-21 09:40:17 -04:00
Timothy Clem
19e87dd523 Put both diff and parse rendering back together 2017-04-20 15:13:28 -07:00
Rob Rix
9a42d8f4c8 Replace Node with its symbol, dropping the source. 2017-04-20 15:53:01 -04:00
Rob Rix
33f41f5bf0 Merge branch 'master' into rws-effect 2017-04-20 15:26:11 -04:00
Rob Rix
085839aabf Merge branch 'master' into ruby-assignment-a-la-carte 2017-04-20 15:25:34 -04:00
Timothy Clem
389bfaf220 WIP - new renderer achitecture 2017-04-20 11:00:02 -07:00
Rob Rix
ccf9fa9ee2 Fix a typo. 2017-04-20 13:27:53 -04:00
Timothy Clem
5870b33b51 WIP - parse tree renderer 2017-04-19 18:27:36 -07:00
Timothy Clem
04f7f4b1f5 Start to build new interface for semantic 2017-04-19 16:33:27 -07:00
Timothy Clem
8eb4d436e0 s/Semantic/SemanticCmdLine 2017-04-19 14:22:24 -07:00
Rob Rix
ff6ce916eb Assign unless modifiers. 2017-04-19 16:54:03 -04:00
Rob Rix
25379d71aa if/unless can omit the else block. 2017-04-19 16:53:09 -04:00
Rob Rix
1d2c924088 🔥 expr. 2017-04-19 16:28:51 -04:00
Rob Rix
c83b75f5b4 Assign unless statements. 2017-04-19 16:27:59 -04:00
Rob Rix
39657d07ea Define syntax for boolean negation. 2017-04-19 16:24:02 -04:00
Rob Rix
2a4ab71d86 Assign modifier if statements. 2017-04-19 16:19:47 -04:00
Rob Rix
74884ec812 Handle scoped class names. 2017-04-19 16:13:07 -04:00
Rob Rix
af1be07b5f Assign superclasses. 2017-04-19 16:05:49 -04:00
Rob Rix
f97ed6cc37 Rename Content to Source. 2017-04-19 16:00:44 -04:00
Rob Rix
0ebf786747 term provides the annotation. 2017-04-19 15:00:21 -04:00
Rob Rix
aa2a1d7d2c Assign break & continue statements. 2017-04-19 14:03:14 -04:00
Rob Rix
777a4a0392 Define syntax for continue statements. 2017-04-19 14:02:19 -04:00
Rob Rix
95aa88969e Define syntax for break statements. 2017-04-19 13:59:46 -04:00
Rob Rix
c27b14d9d6 Factor out the scope exit statements. 2017-04-19 13:58:42 -04:00
Rob Rix
6e73ca391d Return/Yield values are in an ArgumentList. 2017-04-19 13:57:09 -04:00
Rob Rix
4aeb7b1483 Represent the absence of optional syntax with the Empty constructor. 2017-04-19 13:49:36 -04:00
Rob Rix
d0e474168d Assign integer literals. 2017-04-19 13:37:45 -04:00
Rob Rix
c589e229ee Rename rule to symbol. 2017-04-19 13:11:09 -04:00
Rob Rix
996fa27530 Use the usual Term synonym. 2017-04-19 13:06:06 -04:00
Rob Rix
e4f6084183 Rename Program to Term. 2017-04-19 13:04:31 -04:00
Rob Rix
6d10209545 Assign into a cofree structure. 2017-04-19 13:04:07 -04:00
Rob Rix
437f240929 free/runFree no longer require Functor instances. 2017-04-19 12:59:19 -04:00
Rob Rix
46b8a4d3fd cofree/runCofree no longer require Functor instances. 2017-04-19 12:57:48 -04:00
Rob Rix
92dc311ad5 Export InUnion. 2017-04-19 12:52:24 -04:00
Rob Rix
27b1eb794c Rename emb/proj to inj/prj. 2017-04-19 12:52:16 -04:00
Timothy Clem
18e81adb14 Start to make a clean delineation about command function that use git or the fs 2017-04-19 09:45:11 -07:00
Timothy Clem
eb9547fb25 Tease apart file reading and transcoding 2017-04-19 09:12:19 -07:00
Rob Rix
c7186b8730 Use boolean literal constants. 2017-04-19 11:37:04 -04:00
Rob Rix
404bc3fc2f Define true and false constants. 2017-04-19 11:36:34 -04:00
Rob Rix
69b0eeb18a Assign elsif blocks correctly. 2017-04-19 10:16:08 -04:00
Rob Rix
e9a4f9e3a1 Assign else blocks correctly. 2017-04-19 10:13:05 -04:00
Rob Rix
ae6033e70b Return/yield statements always wrap their children (even if empty). 2017-04-18 16:21:13 -04:00
Rob Rix
b6f96617d7 Parse many statements. 2017-04-18 16:15:17 -04:00
Rob Rix
3c1180f758 Define a Show1 instance for Result. 2017-04-18 16:12:20 -04:00
Rob Rix
67ec37ea3f Sort imports. 2017-04-18 15:56:16 -04:00
Rob Rix
4a29eed58e Export Result. 2017-04-18 10:39:24 -04:00
joshvera
a7293dcdc0 Move effectful functions down 2017-04-14 14:43:48 -04:00
Rob Rix
572fbbeb2a Assign boolean literals. 2017-04-13 15:48:28 -04:00
Rob Rix
94cb31e95e Add a bunch more literals. 2017-04-13 15:43:45 -04:00
Rob Rix
0a9b9ddb8e Rename HashLiteral to Hash. 2017-04-13 15:42:10 -04:00
Rob Rix
645fda316f Rename ArrayLiteral to Array. 2017-04-13 15:42:03 -04:00
Rob Rix
ed668490a8 Methods can be non-empty too. 2017-04-13 13:31:11 -04:00
joshvera
63f1cc0d14 Cleanup type signatures 2017-04-13 12:49:43 -04:00
joshvera
33fbdde73b Merge rws' into rws 2017-04-13 12:33:26 -04:00
joshvera
982bc83cd2 Merge remote-tracking branch 'origin/master' into rws-effect 2017-04-13 12:30:15 -04:00
Rob Rix
5bac4505c9 Return & yield may not take parameters. 2017-04-13 12:01:53 -04:00
Rob Rix
00b1aed9a1 Merge branch 'master' into ruby-production-type 2017-04-13 11:57:14 -04:00
Rob Rix
4921dd346f 📝 Empty. 2017-04-13 11:55:13 -04:00
Rob Rix
9abd51cefa Define Empty syntax. 2017-04-13 11:47:58 -04:00
Rob Rix
731c7a5c1d Move Syntax into the Program type synonym. 2017-04-13 11:18:10 -04:00
Rob Rix
88c4081e0d Assign return & yield statements. 2017-04-13 11:12:11 -04:00
Rob Rix
3b9c53c4c2 Skip anonymous nodes at the end of input. 2017-04-13 11:02:23 -04:00
Rob Rix
1943d62dbf Extract the anonymous skipping function to the top level. 2017-04-13 11:02:13 -04:00
Rob Rix
a0322cf652 Clearer error message for children assignment. 2017-04-13 10:50:00 -04:00
Rob Rix
3de5f3aaf9 Pull out the function to skip anonymous nodes. 2017-04-13 10:49:08 -04:00
Rob Rix
2e7627184a Clearer error messaging for content assignment. 2017-04-13 10:48:39 -04:00
Rob Rix
d3f91d2f96 Clearer error messaging for rule assignment. 2017-04-13 10:47:22 -04:00
Rob Rix
08b93f2dd0 Methods may not have bodies. 2017-04-13 10:40:10 -04:00
Rob Rix
309636dc2c Skip all but regular nodes. 2017-04-13 10:34:37 -04:00
Rob Rix
86f5e21529 Define field selectors for Rose. 2017-04-13 10:33:21 -04:00
Rob Rix
666e0c025f Assignment produces a Result. 2017-04-13 09:36:01 -04:00
Rob Rix
c936064e1b Define a Result type. 2017-04-13 09:35:34 -04:00
Rob Rix
e598e460fa Assigning all must exhaust the input nodes. 2017-04-13 09:03:47 -04:00
Timothy Clem
e628e15016 Just refer to it as 'semantic' in version string 2017-04-12 13:33:50 -07:00
Rob Rix
ae5fd2001a Simplify the top-level Ruby assignment. 2017-04-12 16:28:43 -04:00
Rob Rix
c46e0904d1 Slice in linear time. 2017-04-12 16:18:26 -04:00
Timothy Clem
da90d950e9 Extra whitespace 2017-04-12 13:12:08 -07:00
Rob Rix
da022960f4 toAST unfolds the whole tree. 2017-04-12 16:02:12 -04:00
Timothy Clem
3704773965 Merge remote-tracking branch 'origin/master' into subparsers 2017-04-12 12:55:11 -07:00
Rob Rix
12eca8a3b0 Structure Ruby AST importing as an unfold(ish). 2017-04-12 15:03:35 -04:00
Rob Rix
6abce74472 Derive Foldable & Traversable instances for RoseF. 2017-04-12 15:02:47 -04:00
joshvera
97549660af use foldl' in insertMapped and deleteRemaining 2017-04-12 14:46:27 -04:00
Rob Rix
2f252e46b0 Export RoseF. 2017-04-12 14:39:07 -04:00
Rob Rix
fb4415d5dc Define Recursive & Corecursive instances for Rose. 2017-04-12 14:37:05 -04:00
Rob Rix
e50ec88a01 Export parseRubyToAST. 2017-04-12 14:32:32 -04:00
Rob Rix
ce075494cf Stub in a function to produce AST for Ruby. 2017-04-12 14:31:55 -04:00
joshvera
2af05a1b0f Revert to using State 2017-04-12 12:14:36 -04:00
Rob Rix
eb8d0e3c19 Add a go syntax module & grammar datatype. 2017-04-12 10:53:04 -04:00
Rob Rix
be9c4a42ff Add a typescript syntax module & grammar datatype. 2017-04-12 10:51:31 -04:00
joshvera
502255b732 Let's see if foldr works 2017-04-11 18:33:59 -04:00
joshvera
95beaf8446 Move q application out 2017-04-11 18:23:32 -04:00
joshvera
1a78d5e1ea Rename k to q 2017-04-11 18:22:24 -04:00
joshvera
630c607f2b Remove pure 2017-04-11 18:22:16 -04:00
joshvera
5a8217f06b Revert to foldl 2017-04-11 17:10:25 -04:00
joshvera
00f88e540f Reverse the order of insertMapped arguments 2017-04-11 17:10:08 -04:00
joshvera
a418aa43c0 Remove GAlign constraint 2017-04-11 17:09:43 -04:00
joshvera
e1a795a6fe Allow RWS to be interleaved with other effects 2017-04-11 16:29:47 -04:00
Rob Rix
bacba50ec5 Define the Grammar datatype using TemplateHaskell. 2017-04-11 11:50:59 -04:00
joshvera
9ec24e646c Merge remote-tracking branch 'origin/master' into rws-effect 2017-04-11 11:27:03 -04:00
Timothy Clem
9ed78b0202 No need for args variable 2017-04-10 17:14:30 -07:00
Timothy Clem
4227f63065 Don't want to actually print out args 2017-04-10 17:13:04 -07:00
Timothy Clem
6e3af1b75f SemanticDiff.hs => Semantic.hs and smoke test specs 2017-04-10 17:10:34 -07:00
Timothy Clem
5b1d104383 Clarify naming a bit 2017-04-10 16:07:00 -07:00
Timothy Clem
e9edb42e53 Remove render formats and use render/encode functions directly 2017-04-10 15:10:24 -07:00
Rob Rix
000fa34a50 s/Switch/Match/. 2017-04-10 16:44:57 -04:00
Rob Rix
e50ebc2765 Use a single code path for assigning all nodes in a list. 2017-04-10 16:37:00 -04:00
Rob Rix
aa0d65747f Make the Eq & Eq1 instances agree. 2017-04-10 16:09:40 -04:00
Rob Rix
848f0759bb Explicit exports. 2017-04-10 16:02:33 -04:00
Timothy Clem
a03f0da106 Command.Parse doesn't need to know about Arguments 2017-04-10 11:28:09 -07:00
Rob Rix
5938d21653 Children assignments run their sub-assignment and then yield. 2017-04-10 11:24:20 -04:00
Rob Rix
3684872e32 Tighten up rule assignment with guard. 2017-04-10 11:14:04 -04:00
Rob Rix
52263c7aa4 Reformat children assignment evaluation. 2017-04-08 09:12:42 -04:00
Rob Rix
755b448ac5 Show assignments after effects. 2017-04-07 18:31:37 -04:00
joshvera
2cff2caf68 Use the RWS effect 2017-04-07 17:59:45 -04:00
joshvera
013e7660a8 Move the rest of rws to an effect 2017-04-07 17:48:14 -04:00
Rob Rix
b4847b0a1c Class scope can have multiple independent entries. 2017-04-07 16:42:15 -04:00
Rob Rix
f73542ea8e Define a Show1 instance for AssignmentF. 2017-04-07 16:42:09 -04:00
Rob Rix
22c9fb404d Show data constructors. 2017-04-07 16:39:33 -04:00
Rob Rix
cc5ba7674f Clarify Union’s Show1 instance. 2017-04-07 16:34:56 -04:00
joshvera
954186942a Add minimumTermIndex 2017-04-07 16:08:49 -04:00
joshvera
2e3b28ec78 Stub out rws function 2017-04-07 15:59:00 -04:00
joshvera
752d494795 Implement genFeaturizedTermsAndDiffs as an effect 2017-04-07 15:42:32 -04:00
Rob Rix
e3140636b7 Don’t export AssignmentF or its constructors. 2017-04-07 15:00:44 -04:00
joshvera
999cfbc57c Add SES effect 2017-04-07 14:44:37 -04:00
Rob Rix
cec63c69aa Pull the Ruby rules out to the top level. 2017-04-07 14:29:48 -04:00
Rob Rix
1df2c979ec Define a function to run the assignment for all the nodes. 2017-04-07 14:26:51 -04:00
Rob Rix
7453872869 Reformat the method rule a little. 2017-04-07 14:18:31 -04:00
Rob Rix
1d75bda845 Correct the method rule. 2017-04-07 14:16:58 -04:00
Rob Rix
b2cacf0d81 Reformat the rules a little. 2017-04-07 14:16:37 -04:00
Rob Rix
20f4f30ae9 🔥 a bunch of unnecessary type signatures. 2017-04-07 14:10:43 -04:00
Rob Rix
f5f080f1dd Correct the 📝 for rule. 2017-04-07 14:08:59 -04:00
Rob Rix
401ecdbe78 Rule assignment is used in normal applicative form. 2017-04-07 14:04:56 -04:00
Rob Rix
c27af0034e Rename stepAssignment to runAssignment. 2017-04-07 13:31:26 -04:00
Rob Rix
6534948186 Correct the 📝 for stepAssignment. 2017-04-07 13:29:29 -04:00
joshvera
4ca51cc5dc Pass eraseFeatureVector to runRWS 2017-04-07 13:12:29 -04:00
Timothy Clem
11afb8a35e Merge remote-tracking branch 'origin/master' into subparsers 2017-04-07 09:52:08 -07:00
Rob Rix
8e0fa11fff Merge branch 'master' into syntax-a-la-carte 2017-04-07 12:41:12 -04:00
joshvera
0a1e846a5e Fix setFeatureVector type 2017-04-07 12:38:53 -04:00
Rob Rix
76240b1d67 Refocus the existing assignment specs. 2017-04-07 12:21:45 -04:00
Rob Rix
979a42e1d4 Move Assignment into its own module. 2017-04-07 11:57:11 -04:00
Rob Rix
efb43890f3 Stub in a module for syntax assignment. 2017-04-07 11:38:27 -04:00
Rob Rix
2d0b3ff4b1 Unique the list of paths. 2017-04-07 10:49:36 -04:00
Rob Rix
3c596fb980 Take the difference on full blob entries, not just their paths. 2017-04-07 10:47:56 -04:00
Timothy Clem
7099603df6 Only write trailing newline for json output 2017-04-07 10:07:02 -04:00
Rob Rix
73f3384de9 Rename Fail to Empty. 2017-04-07 09:44:31 -04:00
Rob Rix
b8e4cb7471 Tidy up the nullability rules. 2017-04-07 09:44:02 -04:00
Rob Rix
9b69f3aae8 Define nullability for alternations. 2017-04-07 09:37:13 -04:00
Rob Rix
2b460b223c Note the need for a nullability test. 2017-04-07 09:14:28 -04:00
Rob Rix
8d536fa825 Programs have zero or more declarations. 2017-04-06 16:01:01 -04:00
Rob Rix
ac8d473e8e Simplify how children assignments are applied. 2017-04-06 14:22:38 -04:00
Rob Rix
5b1d68ae80 Derive Foldable instances for syntaxes. 2017-04-06 14:19:15 -04:00
Rob Rix
b0700242ee Define Foldable instances for Unions. 2017-04-06 14:16:10 -04:00
Rob Rix
049df31589 Define Show1 instances for most of the syntax types. 2017-04-06 13:36:43 -04:00
Rob Rix
8dd1745c56 Define (incorrect) GShow1 instances for constructors and selectors. 2017-04-06 13:34:57 -04:00
Timothy Clem
7f588418a7 Add in flag for JSON index format 2017-04-06 09:39:23 -07:00
Rob Rix
c62bbc17b1 Define GShow1 lifted over compositions. 2017-04-06 11:52:08 -04:00
Rob Rix
4fe7be91c5 Define GShow1 lifted over products. 2017-04-06 11:52:00 -04:00
Rob Rix
ea3649ea79 Define GShow1 lifted over sums. 2017-04-06 11:49:51 -04:00
Rob Rix
2996bd8561 Define a bunch of obvious GShow1 instances for generic representation types. 2017-04-06 11:48:50 -04:00
Rob Rix
bcfd99afde Define a few GShow1 instances for types with Show1 instances. 2017-04-06 11:43:18 -04:00
Rob Rix
d9abc56818 Define generic implementations for Show1. 2017-04-06 11:43:01 -04:00
Rob Rix
467c808616 Define a GShow1 typeclass. 2017-04-06 11:42:47 -04:00
Rob Rix
ebb97d8a75 Stub in a module for a generic Show1. 2017-04-06 11:34:50 -04:00
Rob Rix
904b32092a Define a Show1 instance for Union. 2017-04-06 11:33:23 -04:00
Rob Rix
368a8a498d Define Generic1 & Eq1 instances for declarations. 2017-04-06 11:29:56 -04:00
Rob Rix
ae2b122b85 Define Generic1 & Eq1 instances for statements. 2017-04-06 11:27:51 -04:00
Timothy Clem
da129c2efc Remove left over import 2017-04-06 08:25:29 -07:00
Rob Rix
30ffbe6421 Define Generic1 & Eq1 instances for literals. 2017-04-06 11:21:35 -04:00
Rob Rix
3d1feb70a4 Define an Eq1 instance for empty unions.
These can never be constructed, so we just return False in case somebody decides to apply this to bottom.
2017-04-06 11:19:57 -04:00
Rob Rix
349214b5c5 Compositions of functors use the appropriate Eq1 instance. 2017-04-06 11:19:21 -04:00
Rob Rix
3f093df987 Recursive applications depend on an Eq1 instance. 2017-04-06 10:50:12 -04:00
Rob Rix
828c7da001 Define Eq1 instances for Leaf, Branch, and Identifier. 2017-04-06 10:40:49 -04:00
Rob Rix
5166900702 Define an Eq1 instance for Comment. 2017-04-06 10:39:22 -04:00
Rob Rix
7f401c4e08 Re-export Eq1 from the generic module. 2017-04-06 10:27:00 -04:00
Rob Rix
6163caf82a Define an Eq1 instance for Union. 2017-04-06 10:19:09 -04:00
Rob Rix
fbcc5e7c43 Derive Eq & Show instances for Node. 2017-04-06 10:16:48 -04:00
Rob Rix
b2d5e7eac1 Take a stab at assigning method declarations. 2017-04-06 09:43:12 -04:00
Rob Rix
376de45263 Take a stab at assigning class declarations. 2017-04-06 09:40:47 -04:00
Rob Rix
ecc1c075a6 Ruby can contain identifiers. 2017-04-06 09:39:44 -04:00
Rob Rix
4c959d4635 Define Identifier syntax. 2017-04-06 09:23:52 -04:00
Rob Rix
9afc6986cc Add a bunch more productions. 2017-04-06 09:21:20 -04:00
Rob Rix
3afba97601 Note the inefficiency of Alt. 2017-04-05 22:24:57 -04:00
Rob Rix
31940f376f Add a bunch more production symbols. 2017-04-05 21:40:10 -04:00
Rob Rix
43eba62216 Define an alternative instance for Assignment. 2017-04-05 21:34:58 -04:00
Rob Rix
8af3b80138 📝 stepAssignment. 2017-04-05 21:22:28 -04:00
Rob Rix
0a4dc5a5d1 📝 the Assignment combinators. 2017-04-05 21:21:35 -04:00
Rob Rix
ddba2b53cd Define small-step semantics for assignment. 2017-04-05 21:16:09 -04:00
Rob Rix
bca1bf08d8 Define a failure combinator.
This is kind of a stand-in.
2017-04-05 21:15:58 -04:00
Rob Rix
c265eeb4c9 🔥 the Child term. 2017-04-05 21:15:32 -04:00
Rob Rix
37525402de Define a type synonym for AST. 2017-04-05 21:05:11 -04:00
Rob Rix
4000319ae2 Define a placeholder input syntax node type. 2017-04-05 21:05:03 -04:00
Rob Rix
1242721981 Define a rose tree type. 2017-04-05 21:04:50 -04:00
Rob Rix
a3dee74ac0 Children assignment takes an assignment to map over the children. 2017-04-05 21:03:02 -04:00
Timothy Clem
797a08521b Only write trailing newline for json output 2017-04-05 17:52:51 -07:00
Rob Rix
786290ed05 🔥 the Semigroup instance & And constructor. 2017-04-05 20:05:14 -04:00
Rob Rix
a9fb2b6759 Redefine Rule to always be productive. 2017-04-05 19:46:41 -04:00
Timothy Clem
e76597dcdb Don't print out args in main 2017-04-05 15:45:30 -07:00
Timothy Clem
1dd54d35d9 Rework argument parsing to use subparsers and commands 2017-04-05 14:30:20 -07:00
Rob Rix
315c5e6e9b Use the Program rule at the top level. 2017-04-05 16:17:04 -04:00
Rob Rix
25fd886dfb Generalize the type of children. 2017-04-05 16:16:50 -04:00
Rob Rix
9a82e14e9e Define assignment for if statements. 2017-04-05 16:14:57 -04:00
Rob Rix
70f0c29758 Define assignment of a child term. 2017-04-05 16:14:48 -04:00
Rob Rix
a9ce523c47 Define a comment assignment. 2017-04-05 16:02:26 -04:00
Rob Rix
696ea064db Define an assignment term producing a node’s children. 2017-04-05 16:02:16 -04:00
Rob Rix
1f89f7f3ed Define an assignment term producing a node’s content. 2017-04-05 16:02:02 -04:00
Rob Rix
683f701811 Define a Semigroup instance for Assignment. 2017-04-05 16:01:42 -04:00
Rob Rix
432474b8c5 Add true/false to the grammar. 2017-04-05 16:00:43 -04:00
Rob Rix
0ca4263b43 Clarify the 📝 for assignment. 2017-04-05 14:54:58 -04:00
Rob Rix
63ed6036ed Derive Enum, Eq, Ord, & Show instances for the Ruby Grammar type. 2017-04-05 14:53:02 -04:00
Rob Rix
5a57c87a88 Add some more rules. 2017-04-05 14:49:58 -04:00
Rob Rix
6f3d17f937 Rename the syntax type. 2017-04-05 14:49:21 -04:00
Rob Rix
1c4b5b394e Rename the Rule type and constructors. 2017-04-05 14:49:00 -04:00
Rob Rix
91f85d3dfd Stub in assignment onto Ruby programs. 2017-04-05 14:26:55 -04:00
Rob Rix
c56ac0d0f9 Extend the Ruby syntax definition a little. 2017-04-05 14:01:36 -04:00
Rob Rix
5dd64723ac Move the Ruby type into its own module. 2017-04-05 14:00:47 -04:00
Rob Rix
28acaef678 Stub in a module for Ruby syntax. 2017-04-05 13:59:03 -04:00
Rob Rix
cf4f532bce Rename the literals; namespacing will suffice. 2017-04-05 13:46:00 -04:00
Rob Rix
2a8b8869ca Stub in a datatype for Ruby syntax. 2017-04-05 13:32:20 -04:00
Rob Rix
1b97a01bfb Merge branch 'master' into syntax-a-la-carte 2017-04-05 13:27:08 -04:00
joshvera
dcbac37b66 Add eraseFeatureVector 2017-04-05 12:14:56 -04:00
joshvera
7e09170877 Add some state and run functions 2017-04-05 11:38:51 -04:00
Rob Rix
c6dc41e63b Open the repo multiple times, concurrently. 2017-04-05 10:20:11 -04:00
Rob Rix
42cd9e35ff Extract how we get blobs. 2017-04-05 09:41:31 -04:00
Rob Rix
acbe324a77 🔥 the trace events (for now). 2017-04-05 09:39:31 -04:00
Rob Rix
c9175254e7 Abstract out running a git command with alternate object dirs. 2017-04-05 09:38:18 -04:00
joshvera
1649d24afd Stub in RwsF data type 2017-04-04 17:59:19 -04:00
Rob Rix
5f1f82fb33 Define a MonadIO instance for Command. 2017-04-04 15:54:27 -04:00
Rob Rix
0762ff3408 Define a combinator to run a number of commands concurrently. 2017-04-04 15:46:51 -04:00
Rob Rix
31ffb0e640 🔥 a TODO. 2017-04-04 12:45:12 -04:00
Rob Rix
f4f83895f6 Evaluate terms in parallel. 2017-04-04 11:00:37 -04:00
Rob Rix
b4d72cc62c Evaluate diffs in parallel. 2017-04-04 10:57:18 -04:00
Rob Rix
35cdc611ad Read files at SHAs in Both. 2017-04-04 10:46:04 -04:00
Rob Rix
15d899abed Run diffs in Both. 2017-04-04 10:42:51 -04:00
Rob Rix
5612624589 Tidy up the readFilesAtSHAs evaluator. 2017-04-04 10:25:10 -04:00
Rob Rix
35a5644de9 🔥 redundant parens. 2017-04-03 22:27:44 -04:00
Rob Rix
ceecfa00b1 Simplify how we deal with empty source blobs. 2017-04-03 20:11:12 -04:00
Rob Rix
ff4bfdb6ec Represent missing files in Maybe. 2017-04-03 20:01:08 -04:00
Rob Rix
d23251e8c7 Add a convenience to diff terms in Maybe. 2017-04-03 20:00:46 -04:00
Rob Rix
fbb899250a Replace the summaries maps with Summaries. 2017-04-03 17:15:58 -04:00
Rob Rix
3b457496a9 ReadFilesAtSHAs returns blobs in Both. 2017-04-03 16:46:13 -04:00
Rob Rix
8373395c23 Fall back to patch rendering. 2017-04-03 16:22:04 -04:00
Rob Rix
d589400c58 Perform high-level diffing via Command. 2017-04-03 16:21:44 -04:00
Rob Rix
66028f6745 Split & Patch render to a new File monoid.
This is a cheap way to intercalate newlines.
2017-04-03 16:21:14 -04:00
Rob Rix
35b5efba97 Diff rendering takes a list of blobs and diffs. 2017-04-03 16:05:36 -04:00
Rob Rix
a072db14f3 🔥 Output. 2017-04-03 16:00:00 -04:00
Rob Rix
76d5d0f5a6 🔥 Command.Diff. 2017-04-03 15:59:32 -04:00
Rob Rix
3b5f84e521 Pull the renderer out of the diff mode scope. 2017-04-03 15:46:54 -04:00
Rob Rix
f086517746 Run path diffs in Command. 2017-04-03 15:44:41 -04:00
Rob Rix
04a1444c89 Eta reduce. 2017-04-03 15:40:15 -04:00
Rob Rix
126af5ec91 Render ToC and Summary in the Summaries monoid. 2017-04-03 15:37:20 -04:00
Rob Rix
7447a785da Define a type of summaries. 2017-04-03 15:31:46 -04:00
Rob Rix
f5a41f97cd alternateObjectDirs are FilePaths. 2017-04-03 15:26:28 -04:00
Rob Rix
542de0190c Define a convenience to parse a blob in whatever language we assume for its extension. 2017-04-03 15:13:37 -04:00
Rob Rix
a11623d994 Define a convenience to render a diff to Output. 2017-04-03 15:12:00 -04:00
Rob Rix
e219ae99c7 Don’t pack FilePath into Text. 2017-04-03 14:41:28 -04:00
Rob Rix
86bf611ced We might not know the language. 2017-04-03 14:37:53 -04:00
Rob Rix
d24469aaef Clarify that parallelization is TBD. 2017-04-03 12:33:53 -04:00
Rob Rix
d58b7d1a89 Spacing. 2017-04-03 12:33:36 -04:00
Rob Rix
b396551aed Generalize the diff command over the field types. 2017-04-03 12:32:36 -04:00
Rob Rix
70cffaa9a3 📝 runCommand. 2017-04-03 12:29:14 -04:00
Rob Rix
51bb7c1b33 📝 the commands. 2017-04-03 12:28:43 -04:00
Rob Rix
670b85edc9 Eta-reduce runDiffRenderer. 2017-04-03 12:22:11 -04:00
Rob Rix
516f888ac8 Export the Command terms. 2017-04-03 12:18:48 -04:00
Rob Rix
37e21217e2 Import the command modules directly. 2017-04-03 12:18:40 -04:00
Rob Rix
f172c1b6ae 🔥 TermProjection. 2017-04-03 12:14:26 -04:00
Rob Rix
6802765865 🔥 a redundant comment. 2017-04-03 12:10:11 -04:00
Rob Rix
16860c33c3 Move the CommandF type down. 2017-04-03 12:09:59 -04:00
Rob Rix
8f7559f81c Define smart constructors for the Command instructions. 2017-04-03 12:09:05 -04:00
Rob Rix
2f10158596 Placate hlint. 2017-04-03 12:05:52 -04:00
Rob Rix
42b0c2503f The ReadFilesAtSHAs command takes a list of alternative object dirs. 2017-04-03 12:04:54 -04:00
Rob Rix
20504b9991 Extract the evaluators into their own functions. 2017-04-03 12:02:40 -04:00
Rob Rix
28c57f84b1 🔥 term renderers. 2017-04-03 11:53:27 -04:00
Rob Rix
614124a070 🔥 a redundant comment. 2017-04-03 11:29:53 -04:00
Rob Rix
eaddc5965e Tidy up the type signature for identifierFor. 2017-04-03 10:40:15 -04:00
Rob Rix
89e1017f9e Define an identifier decorator. 2017-04-03 10:40:05 -04:00
Rob Rix
442746ddb8 Term decorators operate over complete subterms. 2017-04-03 10:39:58 -04:00
Rob Rix
c2fc77faeb Tighten up termSourceTextDecorator. 2017-04-03 10:39:28 -04:00
Rob Rix
4a8311892b 🔥 some unnecessary foralls. 2017-04-03 10:35:00 -04:00
Rob Rix
cb0950ed64 Define an Identifier type. 2017-04-03 10:10:58 -04:00
Rob Rix
b374a7be9d Define a term renderer command. 2017-03-31 23:03:23 -04:00
Rob Rix
87fc2afafa Define term renderers. 2017-03-31 23:03:12 -04:00
Rob Rix
2aa1bf934b Define runDiffRenderer' in tacit style. 2017-03-31 23:02:56 -04:00
Rob Rix
551e4e37dd Sort the Diff import up. 2017-03-31 23:02:41 -04:00
Rob Rix
90c2290183 Define an evaluator for TermProjection. 2017-03-31 22:39:52 -04:00
Rob Rix
db5d3ba11a Generalize identifierFor. 2017-03-31 22:39:37 -04:00
Rob Rix
c3b849105f Define a TermProjection datatype. 2017-03-31 22:32:29 -04:00
Rob Rix
1cd2b5456b 🔥 redundant parens in sacrifice to hlint. 2017-03-31 19:44:04 -04:00
Rob Rix
c183f0ab75 Tighten up makeNode. 2017-03-31 19:43:53 -04:00
Rob Rix
0a6612d504 roll parseNodeForTermF into parseRoot. 2017-03-31 19:35:16 -04:00
Rob Rix
3b37f6f2b8 Fold buildParseNodes back into parseRoot. 2017-03-31 19:29:48 -04:00
Rob Rix
3484b04960 Replace parseRoot’s algebra with a constructor for the recursive structure. 2017-03-31 19:25:28 -04:00
Rob Rix
c18e332e28 ParseNode is a leaf in a list and a rose tree. 2017-03-31 19:15:20 -04:00
Rob Rix
9d7ee81064 Base, Recursive, and Corecursive instances for Rose. 2017-03-31 19:14:42 -04:00
Rob Rix
2477035b9d Define a Rose tree type. 2017-03-31 19:13:03 -04:00
Rob Rix
c0578deeca Extract a parseRoot function out of parseIndex and parseTree. 2017-03-31 18:02:10 -04:00
Rob Rix
9c83be8b99 Application instead of composition. 2017-03-31 17:51:24 -04:00
Rob Rix
90a2f97d47 Tidy up the buildParseNodes signature with RAlgebra. 2017-03-31 17:47:48 -04:00
Rob Rix
2d830b57bb Pull the for out of buildParseNodes. 2017-03-31 17:44:50 -04:00
Rob Rix
d172d9440f Use an R-algebra type synonym to tidy up the type signatures.
🎩 @patrickt.
2017-03-31 17:17:15 -04:00
Rob Rix
a0995343a3 Define a command to render a diff. 2017-03-31 17:03:17 -04:00
Rob Rix
70b5505852 Define an alternative evaluator producing the output type. 2017-03-31 16:54:55 -04:00
Rob Rix
bbe8d05e71 Export DiffRenderer and runDiffRenderer. 2017-03-31 16:50:13 -04:00
Rob Rix
0c6c57d3b3 Evaluate DiffRenderers. 2017-03-31 16:49:29 -04:00
Rob Rix
8dcc7703dc Constrain ToCRenderer appropriately. 2017-03-31 16:49:09 -04:00
Rob Rix
d612dccb8d 🔥 toSummaryKey. 2017-03-31 16:48:58 -04:00
Rob Rix
4c24cdf1ad 🔥 TOC’s dependency on Renderer. 2017-03-31 16:48:06 -04:00
Rob Rix
a9ca469ea7 TermRenderer has a fields type parameter. 2017-03-31 16:39:51 -04:00
Rob Rix
1cd5b2bfec Constrain the SummaryRenderer. 2017-03-31 16:39:40 -04:00
Rob Rix
b30c19e68b 🔥 JSON’s dependency on Renderer. 2017-03-31 16:37:16 -04:00
Rob Rix
45b34c7444 🔥 Summary’s dependency on Renderer. 2017-03-31 16:37:08 -04:00
Rob Rix
5ee44d4642 🔥 Patch’s dependency on Renderer. 2017-03-31 16:20:48 -04:00
Rob Rix
fd2b24b714 🔥 Split’s dependency on Renderer. 2017-03-31 16:17:20 -04:00
Rob Rix
30ab7102bb Constrain & parametricize SExpressionDiffRenderer & SExpressionTermRenderer appropriately. 2017-03-31 16:14:44 -04:00
Rob Rix
92092f6136 SExpression does not import Renderer. 2017-03-31 16:12:26 -04:00
Rob Rix
1d360e6534 Define DiffRenderer and TermRenderer types. 2017-03-31 16:08:39 -04:00
Rob Rix
b7a1cf11ea Reformat the Renderer exports list. 2017-03-31 15:55:57 -04:00
Rob Rix
b95fae682d Read all files when no specific files are requested. 2017-03-31 15:53:49 -04:00