1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 22:31:36 +03:00
Commit Graph

6656 Commits

Author SHA1 Message Date
Rob Rix
8aad196202 Assign until statements. 2017-05-01 16:37:13 -04:00
Rob Rix
5ab78c37b9 Assign while modifiers. 2017-05-01 15:59:08 -04:00
Rob Rix
173c0ecef6 Assign while statements. 2017-05-01 15:57:09 -04:00
Rob Rix
90b07663ed Avoid producing extra errors when we have one already. 2017-05-01 15:53:00 -04:00
Rob Rix
b1ef673d86 Errors point at the start of the current node where possible. 2017-05-01 11:21:07 -04:00
Rob Rix
f709375805 Unpack the actual symbol explicitly. 2017-05-01 11:19:30 -04:00
Rob Rix
50758e0f7e Number the lines in the error message output. 2017-05-01 11:16:08 -04:00
Rob Rix
1dabf3c9d3 Show up to three lines of context. 2017-05-01 11:04:49 -04:00
Rob Rix
91e9e59488 📝 showError. 2017-05-01 10:52:59 -04:00
Rob Rix
c0dd99a5a4 Pull the context into the where clause. 2017-05-01 10:52:29 -04:00
Rob Rix
e33da12d1b Show the source of the error with a clang-style error message. 2017-05-01 10:51:12 -04:00
Rob Rix
434adf3eca Show the expectation with a helper. 2017-05-01 10:33:21 -04:00
Rob Rix
5662b9cead Define a function to show an Error. 2017-05-01 10:32:25 -04:00
Rob Rix
9593416367 Define a helper to show a comma-separated list of symbols.
Complications due to the Oxford comma.
2017-05-01 10:32:07 -04:00
Rob Rix
c1ac705f54 Define a helper to show a SourcePos. 2017-05-01 10:31:46 -04:00
Rob Rix
7fcd50b512 Merge branch 'master' into better-error-reporting-for-repetitions 2017-05-01 10:06:01 -04:00
Rob Rix
e9385c99e6 🔥 indexing. 2017-05-01 09:52:34 -04:00
Rob Rix
a7574b685a 🔥 the --debug flag. 2017-05-01 09:51:40 -04:00
Rob Rix
0bf52e3dde Result has field selectors. 2017-04-28 15:54:34 -04:00
Rob Rix
8872a7ec6a Errors record the symbol of the current node (if any). 2017-04-28 15:49:00 -04:00
Rob Rix
0168773814 Results hold errors instead of text. 2017-04-28 15:45:13 -04:00
Rob Rix
3d1e74bf4e Define an Error datatype. 2017-04-28 15:34:18 -04:00
Rob Rix
250d095598 Result only has one case. 2017-04-28 15:31:23 -04:00
Rob Rix
a988d54ed6 Propagate errors from alternations. 2017-04-28 15:26:19 -04:00
Rob Rix
eb089bb571 Successful results can hold errors. 2017-04-28 15:24:42 -04:00
Rob Rix
ec8be238d1 Children assignments continue after the last child assignment. 2017-04-28 15:19:55 -04:00
Rob Rix
ca0d4328ff Return the final state from assignAllFrom. 2017-04-28 15:18:33 -04:00
Rob Rix
743935b098 Include all nodes in indices. 2017-04-28 14:35:04 -04:00
Rob Rix
da22bee49e Group SourceSpan fields together. 2017-04-28 11:35:50 -04:00
Rob Rix
f0f4ca393c Merge branch 'master' into simplified-json-rendering-path 2017-04-28 09:51:07 -04:00
Rob Rix
285fb8f3a7 🔥 the unused ToJSON instances for Category and Range. 2017-04-28 09:25:12 -04:00
Rob Rix
026f855f0b Move indexing out of the JSON renderer. 2017-04-27 19:42:55 -04:00
Rob Rix
4334e24aa4 Replace the indexing renderer with an indexing operation. 2017-04-27 19:40:54 -04:00
Rob Rix
6ed683f9be 🔥 jsonParseTree. 2017-04-27 19:38:18 -04:00
Rob Rix
4975dc61fe Move decoration of terms out of the JSON renderer. 2017-04-27 19:36:35 -04:00
Rob Rix
013d998ef3 Extract a common handler for path-annotated rendering. 2017-04-27 19:27:03 -04:00
Rob Rix
66d611b460 Handle debug rendering for indices. 2017-04-27 19:24:41 -04:00
Rob Rix
c014c75b0e Handle debug rendering for parse trees. 2017-04-27 19:23:31 -04:00
Rob Rix
9944b32d9f Define a ToJSONFields instance for SourceText. 2017-04-27 19:22:22 -04:00
Rob Rix
59735e5dac Don’t pass the debug flags to the renderers. 2017-04-27 19:13:18 -04:00
Rob Rix
5267ff4bb5 🔥 redundant parens. 2017-04-27 19:13:06 -04:00
Rob Rix
4394c2e833 🔥 the ToJSON instances for Data.Record. 2017-04-27 18:56:53 -04:00
Rob Rix
63b30ac1a3 Render parse trees/indices’ records to JSON. 2017-04-27 18:56:41 -04:00
Rob Rix
862fb3654b Define a ToJSONFields instance for SourceSpan. 2017-04-27 18:51:41 -04:00
Rob Rix
70dd381f26 Simplify the ToJSONFields instance for Syntax. 2017-04-27 18:28:52 -04:00
Rob Rix
fed06ff0e1 Define ToJSONFields instances for Free & FreeF. 2017-04-27 18:23:10 -04:00
Rob Rix
3bf4f63e0c Define a ToJSONFields instance for CofreeF. 2017-04-27 18:17:05 -04:00
Rob Rix
607d4f0398 Define a ToJSONFields instance for SplitPatch. 2017-04-27 18:10:31 -04:00
Rob Rix
1520fb0c2b Replace syntaxToTermField with a ToJSONFields instance. 2017-04-27 18:10:12 -04:00
Rob Rix
43a5580bf5 Define a ToJSONFields instance for Terms. 2017-04-27 18:05:08 -04:00
Rob Rix
5afd5b8fa6 Distribute ToJSONFields through Maybe. 2017-04-27 17:56:24 -04:00
Rob Rix
5beff62cbc Define ToJSONFields instances for Range and Category. 2017-04-27 17:53:36 -04:00
Rob Rix
adf868e5c8 Add a class to produce JSON fields for a type. 2017-04-27 17:49:37 -04:00
Rob Rix
17d413d267 Get all the fields uniformly. 2017-04-27 16:58:39 -04:00
Rob Rix
a5a86b33ea Don’t pass the syntax around. 2017-04-27 16:58:13 -04:00
Rob Rix
96d2ccf92e Decorate the term with the identifier algebraically. 2017-04-27 16:57:47 -04:00
Rob Rix
4abace2490 🔥 an unnecessary Functor constraint. 2017-04-27 16:47:08 -04:00
Rob Rix
f0b89c508c 🔥 parseDecorator. 2017-04-27 16:21:06 -04:00
Rob Rix
9dac0260e3 🔥 Identifier. 2017-04-27 16:18:11 -04:00
Rob Rix
d1b088eda5 Work around the lack of Show1 for IntMap in lts. 2017-04-26 18:39:39 -04:00
Rob Rix
d6b7e408e3 Don’t add a newline after the caret. 2017-04-26 15:27:30 -04:00
Rob Rix
f991988eea Show the source of errors. 2017-04-26 14:54:29 -04:00
Rob Rix
d9d7f98921 Consolidate error reporting. 2017-04-26 14:37:07 -04:00
Rob Rix
dfab45dc65 Tidy up handling of Empty rules. 2017-04-26 13:50:45 -04:00
Rob Rix
59be638d70 🔥 the unlawful Monad instance for Result. 2017-04-26 13:40:03 -04:00
Rob Rix
52aa3800b7 Don’t use Result’s Monad instance for Children rules. 2017-04-26 13:39:42 -04:00
Rob Rix
d2da6e1ad7 Move the Alt rule down to reflect constructor order. 2017-04-26 13:37:48 -04:00
Rob Rix
89b30a5124 Pull the Choose case up a level. 2017-04-26 13:36:57 -04:00
Rob Rix
095e279380 Pull the Children case up a level. 2017-04-26 13:35:21 -04:00
Rob Rix
a6b5fa0634 Pull the Source case up a level. 2017-04-26 13:33:52 -04:00
Rob Rix
f781118abb Move the location at end case up. 2017-04-26 13:32:24 -04:00
Rob Rix
2db005505e Pull the Location case up a level. 2017-04-26 13:31:26 -04:00
Rob Rix
3de156447f Match against the nodes. 2017-04-26 13:30:07 -04:00
Rob Rix
e9bff3be5a Use the where clause’s binding for the source. 2017-04-26 13:28:34 -04:00
Rob Rix
4103936ca2 Use the where clause’s binding for the offset. 2017-04-26 13:28:04 -04:00
Rob Rix
b392c9d6b7 Bind the post-drop state in the where clause. 2017-04-26 13:24:04 -04:00
Rob Rix
a430b444f5 Pull the runAssignment iterator into the where clause. 2017-04-26 13:23:07 -04:00
Rob Rix
e67f5a9398 Guard terms with symbols. 2017-04-26 13:19:10 -04:00
Rob Rix
296717777d Rearrange leaf to put the fmap first. 2017-04-26 13:18:40 -04:00
Rob Rix
b9027441e2 Use the leaf combinator to assign constants and identifiers. 2017-04-26 12:37:13 -04:00
Rob Rix
34e945d1fa Use the leaf combinator to assign literals & comments. 2017-04-26 12:34:34 -04:00
Rob Rix
620b1ebd49 Flip leaf’s argument order. 2017-04-26 12:33:51 -04:00
Rob Rix
860138fe19 🔥 an extra space. 2017-04-26 12:33:37 -04:00
Rob Rix
129d962041 Add a leaf combinator. 2017-04-26 12:31:00 -04:00
Rob Rix
c2df871607 Replace Symbol with a unary Choose. 2017-04-26 12:17:43 -04:00
Rob Rix
d583b3cfcc Prevent forgetting to shadow the initial state. 2017-04-26 12:11:03 -04:00
Rob Rix
677031daaa Choices’ errors note the choice. 2017-04-26 12:07:33 -04:00
Rob Rix
77fe6aff31 empty is the left- and right-identity of <|>. 2017-04-26 12:05:49 -04:00
Rob Rix
ffe7b2ff66 Handle alternations of choices on both sides. 2017-04-26 12:04:34 -04:00
Rob Rix
38a92b7eda Handle alternations of choices on the right. 2017-04-26 12:00:51 -04:00
Rob Rix
c85081ea6b Show the symbol when choice fails. 2017-04-26 11:58:03 -04:00
Rob Rix
ffbca016db Avoid revisiting anonymous nodes. 2017-04-26 11:47:53 -04:00
Rob Rix
d57df3f5fb Show a better error for symbol rules. 2017-04-26 11:44:53 -04:00
Rob Rix
61b3e3c71f Show a better error for symbol rules at end of input. 2017-04-26 11:40:59 -04:00
Rob Rix
6010bcb439 Show a better error for committed choice at end of input. 2017-04-26 11:39:32 -04:00
Rob Rix
b7d84470fb Extract how we show choices into the where clause. 2017-04-26 11:37:00 -04:00
Rob Rix
b7899248d5 🔥 a redundant FIXME. 2017-04-26 11:34:43 -04:00
Rob Rix
2154e4a4ad Construct committed choices using the Alternative interface. 2017-04-26 11:29:24 -04:00
Rob Rix
447412be86 Define committed choice as a map of alternatives. 2017-04-26 11:29:13 -04:00
Rob Rix
122558da3b Stub in a combinator for committed choice. 2017-04-26 10:44:06 -04:00
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