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

5715 Commits

Author SHA1 Message Date
Rob Rix
09d616788e Return holds a value, not a ValueRef. 2018-12-07 12:38:16 -05:00
Rob Rix
d82d0ad584 Revert "Rename resolve to resolvePaths."
This reverts commit 6c2cd2a6c9a56956b6d6bae61510939b21f25080.
2018-12-07 11:46:01 -05:00
Rob Rix
3c2a4241e8 Rename resolve to ref. 2018-12-07 11:45:29 -05:00
Rob Rix
23e3a688f7 Resolve MemberAccesses. 2018-12-07 11:40:11 -05:00
Rob Rix
3fd19e07d8 Specialize resolve for Identifier. 2018-12-07 11:32:13 -05:00
Rob Rix
260a44e7a0 Constrain callers of resolve a little further. 2018-12-07 11:31:25 -05:00
Rob Rix
ca6fad7c06 resolve returns in Maybe. 2018-12-07 11:01:46 -05:00
Rob Rix
f59cdd394b Add a resolve method to Evaluatable with a (bad) default definition. 2018-12-07 10:34:40 -05:00
Rob Rix
adffd6b9c4 Rename resolve to resolvePaths. 2018-12-07 09:52:20 -05:00
joshvera
1b23d1d0dd Merge remote-tracking branch 'origin/master' into heap-frames 2018-12-06 16:32:38 -05:00
joshvera
192943889b delint 2018-12-06 16:16:25 -05:00
joshvera
14a47d8711 parens 2018-12-06 15:56:42 -05:00
joshvera
30cb4f43f6 Remove unused bind 2018-12-06 15:53:58 -05:00
Rob Rix
0b6e3430de Clarify that we’re returning the first path we find.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:48:55 -05:00
Rob Rix
2cd7257429 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-06 15:44:27 -05:00
Rob Rix
a4ec6dc3a8 Generalize foldrGraph to foldGraph producing a Monoidal value.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:42:36 -05:00
joshvera
34d5825cf9 Implement Let 2018-12-06 15:29:30 -05:00
joshvera
61a0a9052f Fix tuple instance 2018-12-06 15:29:24 -05:00
joshvera
9b7670e655 Implement tuple eval 2018-12-06 15:22:33 -05:00
joshvera
5f395923a7 Implement Array eval 2018-12-06 15:22:06 -05:00
Rob Rix
664877024d Find paths uniformly using findPath.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:18:39 -05:00
Rob Rix
e5c5d36c3c Define a function to find a path to a declaration through a graph.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:11:22 -05:00
Rob Rix
db698dbd98 Build up paths using foldrGraph.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:04:40 -05:00
Rob Rix
c278733fd7 Define a generic graph traversal operation.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 15:02:59 -05:00
Rob Rix
adfcb37231 Move the Path instances into a deriving clause.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:11:44 -05:00
Rob Rix
b28d877845 🔥 a redundant language extension.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:09:35 -05:00
Rob Rix
dcd751f4b9 Define Path as an ordinary datatype.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:08:56 -05:00
Rob Rix
79e235ce34 Derive the instances for ScopeGraph in a deriving clause.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:06:24 -05:00
Rob Rix
1e7c8d63f6 Factor the module info & span into BaseError’s Eq1 instance.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 13:02:37 -05:00
Rob Rix
5eb73810eb Show module info & span in BaseError.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 12:59:00 -05:00
Rob Rix
f95b06a3b4 Don’t loop on cyclic graphs.
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-12-06 12:34:22 -05:00
Rob Rix
c486eb82ce Follow export edges. 2018-12-06 12:13:10 -05:00
Rob Rix
f9c124f303 Replace the address pair Reader with separate CurrentFrame/Scope Readers. 2018-12-06 12:03:07 -05:00
Rob Rix
74ca31af53 🔥 a bunch of uses of scoped type variables. 2018-12-06 11:45:13 -05:00
Rob Rix
454b9d669d Don’t traverse export edges.
Per discussion with @joshvera: https://github.slack.com/archives/C0E7PGQQ5/p1544111976406600

This makes the tests run again, tho two of them fail.
2018-12-06 11:22:15 -05:00
Rob Rix
0e4a91fc91 Add a convenience for constructing a path to a declaration. 2018-12-06 11:20:09 -05:00
Rob Rix
9375a82be2 Simplify in terms of an insertReference helper. 2018-12-06 11:14:35 -05:00
Rob Rix
b3ef26f301 Use insertScope here too. 2018-12-06 11:10:19 -05:00
Rob Rix
b47e28f278 Use insertScope. 2018-12-06 11:09:08 -05:00
Rob Rix
de416fa88c Use insertFrame in insertFrameLink. 2018-12-06 10:47:27 -05:00
Rob Rix
c23b587f80 Rename the Heap field to unHeap. 2018-12-06 10:45:36 -05:00
Rob Rix
8074a3a37f Realign some cases. 2018-12-06 10:40:50 -05:00
Rob Rix
15d53b25fa 🔥 a redundant do-block. 2018-12-06 10:39:56 -05:00
Rob Rix
b9b007277d 🔥 commented-out functionality. 2018-12-06 10:38:59 -05:00
Rob Rix
3b2c76c283 Customize the Show instance for Heap for brevity. 2018-12-06 10:38:40 -05:00
Rob Rix
113fb7ea1c Reformat Frame. 2018-12-06 10:33:06 -05:00
Rob Rix
fc19fa67db Use declareFunction to define both Function and Method evaluation. 2018-12-06 10:20:51 -05:00
Rob Rix
e65da03e85 No we should not. 2018-12-06 10:20:05 -05:00
Rob Rix
4913b252b8 Define a helper for declaring functions/methods. 2018-12-06 10:19:22 -05:00
Rob Rix
8ff61d8299 Simplify the ValueRoots instance for closures. 2018-12-06 10:09:50 -05:00
Rob Rix
46ab1d6b02 Use <$> again. 2018-12-05 15:56:00 -05:00
Rob Rix
7ca06eff7f Use <$>. 2018-12-05 15:55:41 -05:00
Rob Rix
cdb869e199 Functor law. 2018-12-05 15:55:13 -05:00
Rob Rix
0fe1f4db5f Use for_. 2018-12-05 15:54:22 -05:00
Rob Rix
a14cc79903 🔥 redundant parens. 2018-12-05 15:53:23 -05:00
Rob Rix
47c2dea759 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 15:39:09 -05:00
Rob Rix
6bb5308697 Rename the ScopeGraph field to unScopeGraph. 2018-12-05 15:35:02 -05:00
Rob Rix
d98cb05d0b Pattern-match against the constructor. 2018-12-05 15:34:20 -05:00
Rob Rix
7badac6148 Spacing. 2018-12-05 15:32:18 -05:00
Rob Rix
0daef02edc Don’t use record wildcards to unpack ScopeGraph. 2018-12-05 15:32:06 -05:00
Rob Rix
dc2b94eef2 Align { to the next line. 2018-12-05 15:26:35 -05:00
Rob Rix
6bf9f08f63 🔥 a couple of redundant do-blocks. 2018-12-05 15:24:50 -05:00
Rob Rix
3d34922fe2 Tighten up reference with <$> and <|>. 2018-12-05 15:24:10 -05:00
Rob Rix
c90e1605fd Tighten up insertImportReference using <$> and <|>. 2018-12-05 15:20:08 -05:00
Rob Rix
12ccbf8f85 Move modifyReferences down. 2018-12-05 15:19:09 -05:00
Rob Rix
e8a9634339 Flip modifyReferences. 2018-12-05 15:18:53 -05:00
Rob Rix
1e12265292 Extract a function to modify a scope’s references. 2018-12-05 15:17:18 -05:00
Rob Rix
ebc1a83ed1 Factor out a common traverseEdges function. 2018-12-05 15:14:57 -05:00
joshvera
522c87e627 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 15:09:46 -05:00
joshvera
eae6b7c8b3 Add tests for QualifedExportFrom 2018-12-05 15:07:37 -05:00
Rob Rix
05392f2296 simplify lookupScopePath using <$>. 2018-12-05 14:53:42 -05:00
Rob Rix
98107e05be Correct associatedScope using >>=. 2018-12-05 14:48:44 -05:00
Rob Rix
3a3fa0c541 Define associatedScope using foldr. 2018-12-05 14:42:53 -05:00
Rob Rix
38611d053c Simplify associatedScope using <$> and <|>. 2018-12-05 14:42:05 -05:00
Rob Rix
3c2a544a2d Define scopeOfDeclaration using a foldr. 2018-12-05 14:40:12 -05:00
Rob Rix
bc0c28477f Simplify scopeOfDeclaration using <$ and <|> . 2018-12-05 14:38:25 -05:00
Rob Rix
9a966a51f4 Use maybe. 2018-12-05 14:35:30 -05:00
Rob Rix
433e3dd04d Use maybeM. 2018-12-05 14:35:24 -05:00
Rob Rix
4a80c83275 Parens instead of dollar. 2018-12-05 14:34:09 -05:00
Rob Rix
c4477c05b7 🔥 a redundant dollar. 2018-12-05 14:33:33 -05:00
Rob Rix
5981de0f56 Redundant parens. 2018-12-05 14:33:01 -05:00
Rob Rix
b67708c9d3 🔥 redundant parens. 2018-12-05 14:32:02 -05:00
Rob Rix
34b5965554 Extract a defineSelf helper. 2018-12-05 14:29:00 -05:00
Rob Rix
0132a24e1b 🔥 ScopedTypeVariables. 2018-12-05 14:26:43 -05:00
Rob Rix
776ae3ebe1 🔥 a redundant language extension. 2018-12-05 14:25:09 -05:00
Rob Rix
af8ae29d7e Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 14:05:57 -05:00
Rob Rix
dda1706189 Implement object for Type. 2018-12-05 14:05:41 -05:00
joshvera
3a88a76d12 Remove super instance 2018-12-05 14:04:02 -05:00
joshvera
7c677f8625 Remove ScopedResolution instance 2018-12-05 13:55:52 -05:00
joshvera
4a350ece0b Remove old Call code 2018-12-05 13:53:30 -05:00
Rob Rix
ba070a6b46 Merge branch 'heap-frames' of https://github.com/github/semantic into heap-frames 2018-12-05 13:49:51 -05:00
joshvera
b319d0fb64 Implement TypeAlias instance 2018-12-05 13:46:32 -05:00
Rob Rix
95c1151cd2 Reintroduce heapLookupAll. 2018-12-05 13:44:47 -05:00
Rob Rix
664b3b2a9d Reintroduce heapLookup. 2018-12-05 13:44:42 -05:00
Rob Rix
b77dc95d4f Reintroduce heapRestrict. 2018-12-05 13:08:24 -05:00
joshvera
a2026e8ada Add valueRef tests back 2018-12-05 12:44:52 -05:00
joshvera
49e8a7004c Remove Exports 2018-12-05 10:23:42 -05:00
joshvera
0f8058d82a Remove NamespaceError 2018-12-05 10:20:41 -05:00
joshvera
073dca372d Remove Data.Abstract.Environment 2018-12-05 10:20:35 -05:00
joshvera
9fee3d5965 formatting 2018-12-05 10:20:17 -05:00
joshvera
5b198eb919 Implement Break and Continue 2018-12-04 19:22:29 -05:00
joshvera
5deda2a033 Implement and reopen ruby modules 2018-12-04 18:46:29 -05:00
joshvera
33b752a5aa Implement This eval instance
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 17:01:30 -05:00
joshvera
ac1d2dbc95 Declare __self in Method instance
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 17:01:19 -05:00
joshvera
793ec4b32d Define __self in preludes
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 17:00:20 -05:00
joshvera
85f00a2904 Add defineBuiltIn
in order to construct an associated scope to pass to BuiltIn

Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 16:24:44 -05:00
joshvera
fa3adf19e6 Assign params within a frame in Abstract/Type semantics
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-04 15:56:11 -05:00
Rob Rix
f75c2b14a1 Build function scopes in the Evaluatable instances. 2018-12-04 14:55:25 -05:00
Rob Rix
00c6bb2229 Note that we should be building the scope in define instead of in the Function carrier. 2018-12-04 14:34:40 -05:00
Rob Rix
bb2bcf6274 🔥 a redundant fresh. 2018-12-04 14:21:07 -05:00
Patrick Thomson
3502dadda6 fix build/lints 2018-12-04 13:24:15 -05:00
Rob Rix
dbf670d4ee Use deriving strategies for the Heap. 2018-12-04 13:12:25 -05:00
Rob Rix
9420d5cc96 🔥 a bunch of redundant bindings. 2018-12-04 13:12:18 -05:00
Rob Rix
c16385e20f 🔥 a bunch of redundant constraints. 2018-12-04 13:12:03 -05:00
Rob Rix
91fce6a246 🔥 a bunch of redundant imports. 2018-12-04 12:25:32 -05:00
joshvera
debefff57c Differentiate between Import and Superclass edge tests 2018-12-04 11:24:01 -05:00
Patrick Thomson
28b6cdb9b1 last few changes 2018-12-04 10:45:30 -05:00
Patrick Thomson
18e651cbc0 Merge remote-tracking branch 'origin/master' into tokenize-ruby 2018-12-04 10:40:01 -05:00
joshvera
4d134fd9aa putDeclarationScope should be robust
And look things up with respect to a current scope instead of traversing the key value pairs of the scope graph
2018-12-04 10:38:05 -05:00
joshvera
2544b100e1 Ignore Lexical, Import, and Export edges in declarationNames
Since we only use it for objectMembers in tests and those should only traverse superclass edges atm
2018-12-04 10:37:33 -05:00
joshvera
b88dde5d5e Traverse superclass edges 2018-12-04 10:37:03 -05:00
joshvera
6a27c20c9b Go back to declaring in Function syntax 2018-12-04 10:36:47 -05:00
joshvera
7f4d4d0c40 Declare in concrete function again
Fixes subclass associated scope issue in subclasses.py
2018-12-03 17:58:48 -05:00
joshvera
4af4dd616b Implement Eval instance for classes
Add Class to scopedEnvironment
2018-12-03 17:39:45 -05:00
joshvera
c505b53898 No need to declare multiple times
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-03 15:59:49 -05:00
joshvera
2d190d8ec9 Don't insert already declared names into a scope
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-12-03 15:59:38 -05:00
joshvera
0cd64662f2 Rename Address to Slot 2018-11-29 20:07:30 -05:00
joshvera
b2bbd0e78c Filter Export edges so we don't traverse them in the tests 2018-11-29 19:36:58 -05:00
joshvera
716bebd985 Remove lexical scope from Statements node 2018-11-29 13:00:53 -05:00
joshvera
49b4a1494f Remove currentFrame from Heap 2018-11-28 17:10:35 -05:00
joshvera
8dd5a7e295 WIP remove current scope and frame from Heap and ScopeGraph
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-28 13:31:40 -05:00
Rick Winfrey
999ef65221 Add Reader effect
Co-Authored-By: Josh Vera <vera@github.com>
2018-11-27 17:18:46 -08:00
Rick Winfrey
124c7593f4 Handle scope and frame edges
Co-Authored-By: Josh Vera <vera@github.com>
2018-11-27 17:17:00 -08:00
joshvera
b6e789fff7 Use a Reader for the scope address and frame address
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-27 14:16:27 -05:00
joshvera
ccb044ac6b Export scopeLookup
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-26 19:54:49 -05:00
joshvera
ff1543f434 Implement Method
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-26 19:54:37 -05:00
joshvera
e9a999b69e Eval params to names in Evaluatable Function
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-26 19:54:28 -05:00
joshvera
af0184a195 Store names as params in Closure
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-26 19:53:58 -05:00
Timothy Clem
14600029fd Pick out delcarations for ScopeResolution and through Context better 2018-11-26 13:43:20 -08:00
Timothy Clem
e2ac46ae69 Better Show for Span 2018-11-26 13:41:55 -08:00
joshvera
ce40ee2d37 declarationNames traverses edges
Co-Authored-By: Rob Rix <rob.rix@github.com>
2018-11-26 13:05:37 -05:00
joshvera
86aa9c9950 Move defaultAlias to Data.ImportPath 2018-11-20 19:03:46 -05:00
Patrick Thomson
9e553ce939 fix-lint 2018-11-20 11:51:40 -05:00
Patrick Thomson
812abf249d fix stray import/old TODO 2018-11-19 16:45:55 -05:00
Patrick Thomson
af02dc3391 Port over Tokenize instances. 2018-11-19 16:41:00 -05:00
Patrick Thomson
c0d71fe80d Add enough Scope tokens to handle Ruby syntax. 2018-11-19 16:15:32 -05:00
Patrick Thomson
2974b34c17 Add 'Flow' to represent control-flow constructs. 2018-11-19 16:05:01 -05:00
joshvera
01f5a29039 Return unit in delete instance 2018-11-16 18:57:05 -05:00
joshvera
f2aa442c48 Rename AssignmentRvalError to DerefError 2018-11-16 18:54:25 -05:00
joshvera
06c9e97b2d implement Delete evaluatable 2018-11-16 18:53:27 -05:00
joshvera
d8933a062b Add deleteSlot 2018-11-16 18:53:16 -05:00
joshvera
007c710668 cover all cases of pathDeclarationScope 2018-11-16 18:02:39 -05:00
joshvera
fb0e7e3407 Add object to AbstractValue 2018-11-16 16:11:39 -05:00
joshvera
de126c7b94 qualify object 2018-11-16 16:11:28 -05:00
joshvera
ec8733889e Add AbstractHole instance to ValueRef 2018-11-16 16:10:02 -05:00
joshvera
e54cc8b096 Add QualifedImportError 2018-11-16 16:09:42 -05:00
joshvera
f39da9578a Move ImportPath to Data.ImportPath 2018-11-16 16:09:11 -05:00
joshvera
ea5587d16c Implement Evaluatable for MemberAccess 2018-11-15 20:24:34 -05:00
joshvera
39e723b980 Add Object to concrete Value 2018-11-15 20:24:21 -05:00
joshvera
3de1cbce5b Change scopedEnvironment to return the address of an Object 2018-11-15 20:24:06 -05:00
joshvera
994fd861c5 Add ReferenceError 2018-11-15 20:23:43 -05:00
joshvera
77fd2e823d Add insertDeclarationSpan to ScopeGraph 2018-11-15 19:29:09 -05:00
joshvera
6a34826abd Declare variable declarations with an empty span and update after evaluating 2018-11-15 19:28:48 -05:00
joshvera
2f32fd6f2b fix empty heap test 2018-11-15 18:44:47 -05:00
Rick Winfrey
46d39a25c8 A lot of warnings. ALOT 2018-11-15 15:04:28 -08:00
Rick Winfrey
97545f0ae7 Remove redundant constraints and imports 2018-11-15 14:18:36 -08:00
Rick Winfrey
e08b1100e4 Remove unnecessary (now) scopeAddress parameter
In Data.Abstract.ScopeGraph when we invoke `insertImportReference`, we make the assumption that the starting scope with respect to the currently available ScopeGraph is the `currentScope`. We then start from that scope to begin constructing a Path to the scope containing the target declaration.

Control.Abstract.ScopeGraph will need the scopeAddress parameter still, because it is going to insert a new scope into our scope graph using the scope returned from Data.Abstract.ScopeGraph (with the newly constructed path to the declaration).
2018-11-15 13:58:28 -08:00
Rick Winfrey
f7c38b0bb7 Clean up unused params 2018-11-15 13:52:14 -08:00
Rick Winfrey
a94760e99a Placeholder for handling Hole Paths 2018-11-15 13:51:57 -08:00
Rick Winfrey
66d3044951 Merge branch 'master' into heap-frames 2018-11-15 13:44:06 -08:00
joshvera
393da1897b Test position of slots
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-15 14:39:41 -05:00
joshvera
22e1822185 Defer declaring names in the scope graph to param
Parameter syntax evaluatable instances are now responsible for adding declarations to the scope graph.

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:16:26 -05:00
joshvera
5c861f412f Add putDeclarationScopeAtPosition
So we can set the associated scope for the declaration of a slot

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:14:58 -05:00
joshvera
fe30b926f7 EvalError types
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:14:31 -05:00
joshvera
127552dbfc parameterize EvalError by address and value
so that we can throw AssignmentRvalError within Assignment or RequiredParameter Evaluatable instances

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:14:02 -05:00
joshvera
3223c97548 Add non-lexical StatementBlock
to differentiate between syntax that creates a new lexical scope and function bodies etc.

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-14 19:13:22 -05:00
joshvera
3f4c5d961d Create a lexical edge to its parent's declaration frame when calling a closure 2018-11-14 15:15:31 -05:00
joshvera
eebae6a1fc Add pathDeclarationScope 2018-11-14 15:14:58 -05:00
Timothy Clem
7c3469b86e Get the math right! 2018-11-13 15:50:07 -08:00
joshvera
519a6db035 Implement Return
impements Return in terms of eval and earlyReturn now that eval returns a ValueRef

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-13 17:59:25 -05:00
joshvera
12a038869a Export Heap and Frame accessors
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-13 17:58:49 -05:00
Timothy Clem
492117d796 Actually use the HTTP_TIMEOUT config var 2018-11-13 14:30:25 -08:00
joshvera
567fe790c9 Construct an import reference from correct start scope
Construct an import reference starting from the currentAddress of the target scope graph

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-13 14:08:42 -05:00
joshvera
4aac61ea70 Insert a list of scope if label doesn't exist in edge map of target scope
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-13 14:08:06 -05:00
joshvera
24720f9f06 Look within references when constructing paths
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-13 14:07:38 -05:00
Rick Winfrey
1e88378a51 Return an Rval representing the function body as a closure, instead of returning a Heap address
Co-Authored-By: Josh Vera <vera@github.com>
2018-11-09 12:47:44 -08:00
Rick Winfrey
12d27b436c Update an existing function declaration scope
Co-Authored-By: Josh Vera <vera@github.com>
2018-11-09 12:47:24 -08:00
Rick Winfrey
7103ba94b7 Declare a function using its name and the full span of the function
⚠️ this is a hack to get around the problem of evaluating a functionName (term) in order to retrieve its Span to properly declare the function.

Co-Authored-By: Josh Vera <vera@github.com>
2018-11-09 12:46:14 -08:00
Rick Winfrey
cbafcd8114 Add (Show address) for debugging
Co-Authored-By: Josh Vera <vera@github.com>
2018-11-09 12:42:43 -08:00
joshvera
a37c10b7fb Implement Call in terms of call effect
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 13:05:04 -05:00
joshvera
ce91cf71db Remove self argument from call effect
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 13:04:52 -05:00
joshvera
c663c6a2ea Stub in pathPosition with Position 0
⚠️ : This is really bad because we never want to erroneously index into a sequence.

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 12:03:05 -05:00
joshvera
244109310a Add AbstractHole instances for Path, Scope, Address
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-09 11:37:45 -05:00
joshvera
eebcc9c9ee Fix up runFunction carriers
function effect now takes parameters as terms

Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-08 20:47:04 -05:00
joshvera
f6bfec2d96 the tests compile! 2018-11-08 18:22:35 -05:00
joshvera
22bdbdfafe Fix up import conflicts
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-08 12:55:42 -05:00
Rick Winfrey
ca0508c471 Export lookupDeclaration 2018-11-07 16:29:11 -08:00
Rick Winfrey
05c85c30e2 Add lookupDeclaration in Data.Abstract.Heap
This allows us to retrieve a frame address and position with which we can inspect slot values accordingly
2018-11-07 16:23:06 -08:00
joshvera
0c35a8a95c Start fixing up tests
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-07 18:27:56 -05:00
joshvera
a49b7f5440 Add lookupFrameAddress to Heap
Co-Authored-By: Rick Winfrey <rick.winfrey@gmail.com>
2018-11-07 15:56:20 -05:00