1
1
mirror of https://github.com/github/semantic.git synced 2024-12-23 14:54:16 +03:00
Commit Graph

253 Commits

Author SHA1 Message Date
Patrick Thomson
034bb562d4 Introduce tree-automata DSL for filtering and matching ASTs.
This patch adds the `Matcher` monad, which is capable of filtering any
recursive data structure, bottom-up, yielding a list of (or an
optional) result. These functions are probably going to be used over
`Term` values, so API is provided to wrap common projection functions.

The API was more or less copied directly from that of Clang's AST
matching facilities.

There are a lot of things we can do in the future:
* Binding results yielded in matchers to associated names, for future
  transformation stages to look up and modify.
* Actual transformation stages.
* Optimizations. This is not very fast.

A million thanks to @robrix, whose sage advice managed to turn my
kooky idea for an API into something really special and exciting.
2018-03-27 16:14:30 -04:00
Timothy Clem
7fdc5e2fda Write a small spec for evaluating PHP includes 2018-03-19 14:42:31 -07:00
Timothy Clem
1e276dddef TDD FTW 2018-03-15 11:34:34 -07:00
Timothy Clem
579a447961 Test out go import evaling 2018-03-13 11:14:55 -07:00
Timothy Clem
38b7607fa3 Turn on the TypeScript analysis spec 2018-03-09 16:24:32 -08:00
Timothy Clem
d352c66227 Test out rest of python imports, move to new dir 2018-03-09 15:16:07 -08:00
Timothy Clem
3fc7f644b2 Try my hand at a spec for analysis - test out python imports 2018-03-09 15:01:29 -08:00
Timothy Clem
fb000828ed Test out import-graph output for relevant languages 2018-02-07 12:20:41 -08:00
Rob Rix
67f251e223 Combine the generic Eq1, Ord1, & Show1 implementations into a single module. 2017-11-30 10:24:48 -05:00
Rob Rix
bcb64b3187 Rename the Integration spec. 2017-11-27 14:06:12 -05:00
Rob Rix
59fc8bffc9 Rename the TOC spec. 2017-11-27 14:04:58 -05:00
Rob Rix
69595553d6 Rename the Interpreter spec. 2017-11-27 14:03:45 -05:00
Rob Rix
a442bfeea1 Rename the Term spec. 2017-11-27 14:02:03 -05:00
Rob Rix
a079638c5b Rename the Semantic spec. 2017-11-27 14:00:53 -05:00
Rob Rix
80fce5b41e Rename the Diff spec. 2017-11-27 13:59:44 -05:00
Rob Rix
4b06df7db4 Rename the Stat spec. 2017-11-27 13:58:23 -05:00
Rob Rix
59166b50bb Rename the CLI spec. 2017-11-27 13:57:25 -05:00
Rob Rix
b98375b58f Rename the IO spec. 2017-11-27 13:52:48 -05:00
Rob Rix
8a3d34a1fc Rename the SES spec. 2017-11-27 13:51:05 -05:00
Rob Rix
f4960b0a0d Rename the Source spec. 2017-11-27 13:49:52 -05:00
Rob Rix
266bd1199a Rename the RWS spec. 2017-11-27 13:48:43 -05:00
Rob Rix
a8e8489fcb Rename the assignment spec. 2017-11-27 13:47:04 -05:00
Rob Rix
8dea7d4194 🔥 AlignmentSpec. 2017-11-21 17:08:52 -05:00
Rob Rix
efa454edcc 🔥 PatchOutputSpec. 2017-11-21 17:08:40 -05:00
Timothy Clem
666585bf50 Start writing a few specs 2017-10-04 11:12:24 -07:00
Rob Rix
7e034fa4c1 Test that genericLiftCompare gives equivalent behaviour to compare for product types. 2017-10-03 09:23:44 -04:00
Rob Rix
6f4539cdce Stub in a module for generically-implemented Ord1 specs. 2017-10-03 09:15:45 -04:00
Rob Rix
be481f7a71 Rename SES.Myers to SES. 2017-09-14 11:53:02 -04:00
Rob Rix
7da8799e08 🔥 Prologue & protolude. 2017-07-28 14:37:02 -04:00
Rob Rix
ed9b00cc90 🔥 rangesAndWordsFrom. 2017-06-24 10:41:32 -04:00
Rob Rix
992ef93c0b Git gone. 2017-06-14 17:47:31 -04:00
Rob Rix
7f72974e27 🔥 the summary renderer. 2017-05-17 12:32:17 -04:00
Timothy Clem
f51798e4c8 Turn parseBlob tests back on in new Spec 2017-04-21 14:12:00 -07:00
Timothy Clem
19e87dd523 Put both diff and parse rendering back together 2017-04-20 15:13:28 -07:00
Timothy Clem
389bfaf220 WIP - new renderer achitecture 2017-04-20 11:00:02 -07:00
Timothy Clem
8eb4d436e0 s/Semantic/SemanticCmdLine 2017-04-19 14:22:24 -07:00
Timothy Clem
3704773965 Merge remote-tracking branch 'origin/master' into subparsers 2017-04-12 12:55:11 -07:00
Timothy Clem
6e3af1b75f SemanticDiff.hs => Semantic.hs and smoke test specs 2017-04-10 17:10:34 -07:00
Rob Rix
35fb87c1f9 Merge branch 'master' into syntax-a-la-carte 2017-04-10 11:29:28 -04:00
Rob Rix
a151a24885 What the efff, apparently. 2017-04-10 11:27:26 -04:00
Rob Rix
5349354910 Merge branch 'master' into what-the-hspec 2017-04-08 10:30:22 -04:00
Rob Rix
8e0fa11fff Merge branch 'master' into syntax-a-la-carte 2017-04-07 12:41:12 -04:00
Rob Rix
00b3106933 Combine output stats for all specs 2017-04-07 12:24:57 -04:00
Rob Rix
76240b1d67 Refocus the existing assignment specs. 2017-04-07 12:21:45 -04:00
Rob Rix
83d0248500 Stub in a module for tests of Ruby syntax assignment. 2017-04-06 10:09:12 -04:00
Rob Rix
7b6bf4f42b Stub in a spec. 2017-04-05 11:10:23 -04:00
Rob Rix
1fbe6a8319 Rename ParseCommand to Command.Parse. 2017-03-31 11:50:36 -04:00
Rob Rix
32b9dd9f16 Rename DiffCommand to Command.Diff. 2017-03-31 11:48:21 -04:00
Rick Winfrey
eaa5873ed7 Merge branch 'master' into gitmon-support 2017-03-27 15:38:18 -07:00
Rick Winfrey
9cf176a37d GitmonClient spec should not run in parallel 2017-03-21 14:48:47 -07:00