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

20174 Commits

Author SHA1 Message Date
Charlie Somerville
d5baf53ebd throw FreeVariableError rather than failing in identifier eval 2018-03-28 11:24:58 +11:00
Charlie Somerville
b1a195f7e7 add EvalError type with FreeVariableError constructor 2018-03-28 11:24:37 +11:00
Charlie Somerville
7abffcf7bc rename EvalError type to LoadError 2018-03-28 11:12:38 +11:00
Timothy Clem
ea28aee67e Merge pull request #1684 from github/you-get-a-namespace
Ruby modules also behave like namespaces
2018-03-27 16:03:01 -07:00
Timothy Clem
5c1e5514f7 Merge branch 'master' into you-get-a-namespace 2018-03-27 15:40:30 -07:00
Timothy Clem
3d56947e82 Fix typos 2018-03-27 15:18:38 -07:00
joshvera
4eaffa9f49 Catch LoadErrors in ImportGraph analysis and inject them into the Import Graph 2018-03-27 17:00:25 -04:00
joshvera
9ca6b66665 hide catchError 2018-03-27 16:59:51 -04:00
joshvera
ac14425fdc Add an evaluateRubyImportGraph function 2018-03-27 16:59:40 -04:00
joshvera
ff54bb7475 Export Resumable from Analysis 2018-03-27 16:59:23 -04:00
Patrick Thomson
89be1f1f1f kind signatures not needed 2018-03-27 16:35:38 -04:00
Patrick Thomson
85d064bf95 Merge remote-tracking branch 'origin/master' into matching 2018-03-27 16:34:31 -04:00
Patrick Thomson
97df7beba1 fix lints 2018-03-27 16:34:09 -04:00
joshvera
a3399f92f5 remove FreeVariableError for now 2018-03-27 16:17:38 -04:00
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
joshvera
68423dd298 Store enough information in LoadError 2018-03-27 16:11:43 -04:00
Rob Rix
bf2bab5255 Modify the state strictly. 2018-03-27 15:41:43 -04:00
Rob Rix
107274d4dd 🔥 some redundant imports. 2018-03-27 15:25:57 -04:00
Rob Rix
e9cac9d0c2 🔥 find*, in favour of EvaluatingState fields. 2018-03-27 15:24:28 -04:00
Rob Rix
b8d714af28 Use the EvaluatingState fields directly. 2018-03-27 15:23:26 -04:00
Rob Rix
7a10eabfd7 🔥 an unused language pragma. 2018-03-27 15:14:25 -04:00
Rob Rix
e40b34d691 Export EvaluatingState. 2018-03-27 15:08:28 -04:00
Rob Rix
ee2a948186 Use gets to view state. 2018-03-27 15:05:22 -04:00
Rob Rix
541568e16f Bump effects to master. 2018-03-27 15:04:55 -04:00
Rob Rix
7b90a0192b Prefix the lenses instead of the fields. 2018-03-27 15:03:26 -04:00
Rob Rix
d596b0a7c6 🔥 the dependency on TH. 2018-03-27 15:01:35 -04:00
Rob Rix
ec972b1567 Define the lenses without TH. 2018-03-27 15:00:49 -04:00
Timothy Clem
a8c67ed8ab Merge pull request #1686 from github/fix-typescript-member-expression
Fix typescript member expression
2018-03-27 11:02:33 -07:00
Timothy Clem
cde0974151 Don't change the ruby prelude on this branch 2018-03-27 10:53:58 -07:00
Timothy Clem
e770aaec35 Fix up Import graph output 2018-03-27 10:20:41 -07:00
Timothy Clem
e2d13b6cdc Fix up specs 2018-03-27 10:20:28 -07:00
Timothy Clem
4e6fb7a6f1 Fix up typescript member expression assignment - revert qualified identifier business 2018-03-27 10:20:10 -07:00
joshvera
d0cdd12334 Add EvalError and throw FreeVariableError 2018-03-27 13:11:51 -04:00
joshvera
3070481500 indentation 2018-03-27 12:53:51 -04:00
joshvera
9ef46dabe6 Add a couple of exceptions 2018-03-27 12:46:00 -04:00
Timothy Clem
094432934f Ruby class example 2018-03-26 15:30:11 -07:00
Timothy Clem
bea56e5bab Demonstrate a little more detail of subclassing 2018-03-26 15:29:39 -07:00
Timothy Clem
505562126a Fix toc summary tests now that ruby classes have their own syntax 2018-03-26 15:15:38 -07:00
Timothy Clem
3402fda563 makeNamespace takes list of supers 2018-03-26 15:07:45 -07:00
Rob Rix
6b0b0f908d Tighten up the comments. 2018-03-26 17:55:15 -04:00
Timothy Clem
d04909bb1b Refactor to specialize syntax across different languages 2018-03-26 14:26:44 -07:00
Timothy Clem
7b5137fdee Clean up 2018-03-26 14:07:19 -07:00
Timothy Clem
18b5e1b7e6 Treat ts internal modules as namespaces as well 2018-03-26 14:05:38 -07:00
Timothy Clem
df48086911 s/Module/Namespace for this syntax 2018-03-26 14:05:27 -07:00
Timothy Clem
0dccd71e6b Not using these typescript syntaxes at all now 2018-03-26 14:04:37 -07:00
joshvera
aaefc8f4e3 Throw a NamespaceError 2018-03-26 17:03:23 -04:00
joshvera
0950695810 Add ValueExc to MonadEvaluatable 2018-03-26 17:00:42 -04:00
Timothy Clem
016c70b0ac Remove extraneous comments and whitespace 2018-03-26 13:43:40 -07:00
joshvera
414e100d5e Add NamespaceError 2018-03-26 16:29:32 -04:00
joshvera
7294d76cb3 Merge remote-tracking branch 'origin/master' into less-fail 2018-03-26 16:29:18 -04:00