Patrick Thomson
3926742c1d
Improve parsing of FileCheck-style tags.
...
This used to operate via some fast-and-loose (ab)use of the Trifecta
API. A simpler way to do things is to use streaming-bytestring to load
a file line by line and parse directives until we encounter program text.
2019-09-23 22:00:44 -04:00
Patrick Thomson
6dcbe96a0c
Fix warnings in Language.Python.Core.
2019-09-23 19:59:23 -04:00
Patrick Thomson
1990e2379b
Merge remote-tracking branch 'origin/master' into remove-regular-compile
2019-09-23 19:56:08 -04:00
Patrick Thomson
a2e1ced785
Reinsert a FIXME.
2019-09-23 19:42:17 -04:00
Patrick Thomson
e98e483c13
Define Compile interface in terms of compileCC.
2019-09-23 13:30:23 -04:00
Patrick Thomson
a556e1d9ff
fix typo
2019-09-23 13:02:50 -04:00
Patrick Thomson
0d994ca28a
Less-specious implementation of ExpressionList compilation.
2019-09-23 12:48:58 -04:00
Patrick Thomson
19a1fa9cfc
More cleanup.
2019-09-23 12:42:08 -04:00
Patrick Thomson
e7f84566b6
Add viaCompileCC helper.
2019-09-23 12:37:21 -04:00
Patrick Thomson
46c7d45865
Cleanup.
2019-09-23 12:33:45 -04:00
Patrick Thomson
54b5d379ea
Fix Compile instance for ExpressionStatement and Assignment.
2019-09-23 12:31:25 -04:00
Patrick Thomson
dccc1942aa
Break toplevel assignment case because it's wrong.
2019-09-23 12:13:40 -04:00
Patrick Thomson
375c975338
Use compileCC to build a record of toplevel bindings.
2019-09-23 11:56:40 -04:00
Patrick Thomson
4174fce11c
Add Bindings type and reader effect.
2019-09-23 11:06:10 -04:00
Patrick Thomson
611877ad00
An infix fmap is cleaner here.
2019-09-19 15:35:25 -04:00
Patrick Thomson
2c24ee2539
Omit otiose default signature.
2019-09-19 15:35:08 -04:00
Patrick Thomson
a89cd0dad9
Eliminate inefficient RelPath->String->Text conversion.
2019-09-19 15:31:04 -04:00
Patrick Thomson
aaa73b20f2
Merge branch 'master' into provide-path-info
2019-09-19 08:22:04 -04:00
Patrick Thomson
d9f88fc046
Add a CHECK-TREE directive and simplify esoteric jq tests.
...
Due to the problems outlined in #245 , the tests for return statements
were complicated and not testing useful properties. This patch adds a
new `CHECK-TREE` directive which lets you embed a Core expression
as a string, which is parsed and then compared against the result of
compiling the containing module.
2019-09-18 18:07:43 -04:00
Patrick Thomson
8dc4db0e21
No more filepath dependency.
2019-09-18 15:03:16 -04:00
Patrick Thomson
b94b3448c4
Ensure filename information is yielded in locate
.
2019-09-18 14:51:06 -04:00
Patrick Thomson
328d1ac251
Everyone gets to depend on text.
2019-09-18 14:50:28 -04:00
Patrick Thomson
0dc0a534c6
Start using typed paths in tests.
2019-09-18 14:41:58 -04:00
Patrick Thomson
483494ccfd
Remember to call locate
on False.
2019-09-18 13:52:00 -04:00
Patrick Thomson
fc98de9e4d
Change wording of justification for CoreSyntax type.
2019-09-18 13:51:45 -04:00
Patrick Thomson
da5bb84b05
Remove tree-sitter dependency from semantic-core.
2019-09-18 13:49:04 -04:00
Patrick Thomson
2aea021890
Use some tree information in a unit test.
2019-09-18 13:05:10 -04:00
Patrick Thomson
99a7806c20
Fix tests.
2019-09-18 12:35:54 -04:00
Patrick Thomson
0dafd1ef7f
Make syntax instances preserve their location.
2019-09-18 12:35:34 -04:00
Patrick Thomson
b460c6e452
Add 'locate'.
2019-09-18 12:35:21 -04:00
Patrick Thomson
eae9f2d7f5
Add CoreSyntax constraint kind to clear up type signatures.
2019-09-18 12:13:08 -04:00
Patrick Thomson
e89e8462ef
Reinstitute and rework Compile for ReturnStatement.
2019-09-18 10:48:41 -04:00
Patrick Thomson
7437a28014
Fix kindedness errors.
2019-09-17 16:26:45 -04:00
Patrick Thomson
5d5e50c733
Merge cleanup.
2019-09-17 16:19:10 -04:00
Patrick Thomson
8b017f90c3
Forgot a pure
.
2019-09-17 11:12:26 -04:00
Patrick Thomson
aabfafc2e3
Address Rob's suggestions.
2019-09-17 11:11:59 -04:00
Patrick Thomson
7d0f817409
Merge branch 'bump-to-tree-sitter-0.2.1' into sempy-early-returns
2019-09-17 10:49:12 -04:00
Patrick Thomson
05d84ea500
Update to latest round of tree-sitter packages.
2019-09-17 10:46:20 -04:00
Patrick Thomson
8b66533c3b
Bump to tree-sitter-python 0.3.0.0.
2019-09-16 13:36:52 -04:00
Patrick Thomson
b3ecc9fb56
Bump to tree-sitter-0.2.1.
2019-09-11 18:24:15 -04:00
Patrick Thomson
38722321ce
Wording changes.
2019-09-11 15:41:48 -04:00
Patrick Thomson
73668094c7
Use DerivingVia to squash forgotten-compileCCSum bugs.
2019-09-11 12:50:53 -04:00
Patrick Thomson
9728ef0199
Check that returns work within if-clauses.
2019-09-11 12:22:24 -04:00
Patrick Thomson
b3a2221390
Work around #195 .
2019-09-11 11:48:06 -04:00
Patrick Thomson
33ea661bf6
Institute compileCC.
2019-09-11 11:45:43 -04:00
Patrick Thomson
584e8721f1
Show more and prettier information in the failure dump.
2019-09-11 11:45:21 -04:00
Patrick Thomson
1cd1068323
Add test cases for translating early returns.
2019-09-11 11:44:46 -04:00
Patrick Thomson
7f833f08f5
Bump tree-sitter versions.
2019-09-09 11:39:29 -04:00
Patrick Thomson
245e5055f3
Forgot a liftToEncoding.
2019-09-04 23:10:54 -04:00
Patrick Thomson
a9328c3671
Derive JSON instances for the Core trees.
2019-09-04 23:10:54 -04:00
Patrick Thomson
5bae778b14
Move warnings into shared haskell component.
2019-09-03 13:35:33 -04:00
Patrick Thomson
a7bbd173d0
Formatting/includes.
2019-09-03 13:34:00 -04:00
Patrick Thomson
8369298101
Remove globally-specified default-extensions.
2019-09-03 13:33:45 -04:00
Patrick Thomson
25be284ad2
fix warnings
2019-08-29 09:32:39 -04:00
Patrick Thomson
efa949d402
better naming
2019-08-29 09:30:58 -04:00
Patrick Thomson
973490b5d4
Decomplect this whole thing by lifting it into IO.
2019-08-29 09:20:13 -04:00
Patrick Thomson
31fbc386e9
Enable multiple directives.
2019-08-29 08:52:38 -04:00
Patrick Thomson
1472fc87e7
kill ugly MonadFail hack
2019-08-27 11:34:24 -04:00
Patrick Thomson
a1b7eb9d5d
remove otiose boolean check
2019-08-27 11:29:12 -04:00
Patrick Thomson
1c5ac83791
Corral orphan instances.
2019-08-27 11:27:53 -04:00
Patrick Thomson
80df9c1f1d
pass the scope graph explicitly
2019-08-27 10:47:45 -04:00
Patrick Thomson
3fb0cc890c
Fix redundant pattern match.
2019-08-27 10:35:47 -04:00
Patrick Thomson
7ddbee0006
Remove tests for future milestones for now to keep diffs small.
2019-08-27 10:33:53 -04:00
Patrick Thomson
102ba23513
Reformat comment so it's easier to read in diffs.
2019-08-27 10:25:21 -04:00
Patrick Thomson
8a44e901c7
More comprehensive error handling for uncompilable assignments.
2019-08-27 10:24:59 -04:00
Patrick Thomson
e1556cb16b
Divest from RecordWildCards.
2019-08-27 10:20:10 -04:00
Patrick Thomson
f10e89184e
Naming.
2019-08-26 09:13:50 -04:00
Patrick Thomson
5413a82272
Kill stray comment.
2019-08-22 16:14:12 +02:00
Patrick Thomson
811f693051
Use Analysis.ScopeGraph instead of my bad reimplementation
2019-08-16 15:54:17 -04:00
Patrick Thomson
59c6b5ecbc
Fix commented-out changes
2019-08-16 15:16:00 -04:00
Patrick Thomson
655fdbf3f3
Clean up language pragmas
2019-08-16 14:55:03 -04:00
Patrick Thomson
909139e552
fix errors
2019-08-16 14:51:14 -04:00
Patrick Thomson
2a88e4b31f
bad example but it passes the tests!
2019-08-16 14:48:21 -04:00
Patrick Thomson
daa36360a6
add failing tests
2019-08-16 13:24:11 -04:00
Patrick Thomson
dde59eb626
jq-based test suite works
2019-08-16 13:20:08 -04:00
Patrick Thomson
90dd0b4d33
Trying to bring up this test harness
2019-08-16 12:34:56 -04:00
Patrick Thomson
3fb642c06d
Experiment with LLVM-style directives for test assertions
2019-08-13 16:35:11 -04:00
Patrick Thomson
dc47e90c00
Minimum viable patch such that all stage-1 fixtures compile
2019-08-13 16:19:20 -04:00
Patrick Thomson
5acd975b1b
trying to get test cases in shape
2019-08-13 14:01:50 -04:00
Patrick Thomson
b4e24720d4
sections 3 and 4
2019-08-13 11:48:02 -04:00
Patrick Thomson
c95befdb22
Add tests for wave 2
2019-08-12 15:01:55 -04:00
Patrick Thomson
b8ba99ff12
Move these down a directory.
2019-08-12 14:52:43 -04:00
Patrick Thomson
4229e81dd3
Rename and reorg so that these are in line with the roadmap
2019-08-12 13:17:55 -04:00
Patrick Thomson
c578f767e7
some ideas
2019-08-08 13:23:36 -04:00
Rob Rix
cf8b344efc
Handle all the unimplemented cases with a helper.
2019-06-19 10:37:11 -04:00
Rob Rix
1164c87b01
Compile function definitions.
...
Co-Authored-By: Patrick Thomson <patrickt@users.noreply.github.com>
2019-06-17 12:01:55 -04:00
Rob Rix
d64e12d868
Compile identifiers.
...
Co-Authored-By: Patrick Thomson <patrickt@users.noreply.github.com>
2019-06-17 11:18:08 -04:00
Rob Rix
31d396ee91
Merge branch 'master' into semantic-python
2019-06-17 10:54:55 -04:00
Rob Rix
f2a9ebef39
Qualify the import of TreeSitter.Python.AST.
2019-06-12 10:23:42 -04:00
Rob Rix
b1a89c0d0e
🔥 redundant parens.
2019-06-11 17:10:19 -04:00
Rob Rix
6dd5010059
🔥 the orphan instances.
2019-06-11 17:10:09 -04:00
Rob Rix
9088708c7b
Compile boolean literals.
2019-06-11 13:10:41 -04:00
Rob Rix
eb7244236f
Split out instances for PrimaryExpression.
2019-06-11 13:09:14 -04:00
Rob Rix
c15bbcb00b
Not via.
2019-06-11 13:05:48 -04:00
Rob Rix
1a6812ed06
Split out instances for Expression.
2019-06-11 13:03:17 -04:00
Rob Rix
236771702b
Derive the Either instance.
2019-06-11 13:01:05 -04:00
Rob Rix
bd9aaa541e
Really really.
2019-06-11 13:00:04 -04:00
Rob Rix
4e24a1ee9e
No, really alphabetize.
2019-06-11 12:59:27 -04:00
Rob Rix
ead494ad3f
These are incurred by IfStatement.
2019-06-11 12:57:27 -04:00
Rob Rix
c8d1de416d
Alphabetize.
2019-06-11 12:56:37 -04:00
Rob Rix
5b539e8d4d
Add a FIXME re: the orphan instances.
2019-06-11 12:55:46 -04:00
Rob Rix
3728f06267
Split out the SimpleStatement cases.
2019-06-11 12:54:25 -04:00
Rob Rix
3b7a2f17b0
DerivingVia.
2019-06-11 12:51:47 -04:00
Rob Rix
602494f605
Define generic compilation of sum types.
2019-06-11 12:43:20 -04:00
Rob Rix
c4351553cb
Compile IfStatement.
2019-06-11 12:29:09 -04:00
Rob Rix
c3184f0354
Extract the default definition.
2019-06-11 12:13:21 -04:00
Rob Rix
0a329ae55b
Stub in compilation of statements.
2019-06-11 12:12:28 -04:00
Rob Rix
135b8b11c3
Give a default definition for Compile which just fails.
2019-06-11 12:12:04 -04:00
Rob Rix
07fa5567e5
Move the Either instance up.
2019-06-11 12:09:38 -04:00
Rob Rix
f09b3614d6
Define compilation of Either.
2019-06-11 12:08:52 -04:00
Rob Rix
37cab16c95
Rephrase Compile as a typeclass.
2019-06-11 12:06:11 -04:00
Rob Rix
23e18ade2e
Note a FIXME.
2019-06-11 12:05:06 -04:00
Rob Rix
41afbd6a91
Rename compileModule to compile.
2019-06-11 12:04:12 -04:00
Rob Rix
7da6b959f1
Error messages are good, actually.
2019-06-11 12:03:48 -04:00
Rob Rix
598000c3ab
Stub in compilation to Core.
2019-06-11 11:59:29 -04:00
Rob Rix
fb5b89817c
Qualify Python stuff if we need to.
2019-06-11 11:54:39 -04:00
Rob Rix
dd0831962b
Stub in a function to compile a Python module.
2019-06-11 11:47:48 -04:00
Rob Rix
04762dcbc4
Add an export list.
2019-06-11 11:45:46 -04:00
Rob Rix
5a2a9f4532
Turn on warnings.
2019-06-11 11:44:43 -04:00
Rob Rix
d09ab401c0
Add stability fields to core & python.
2019-06-11 11:25:20 -04:00
Rob Rix
40e9999b02
Add bug-reports fields.
2019-06-11 11:23:38 -04:00
Rob Rix
6894a756b1
Stub in a Language.Python.Core module.
2019-06-11 11:22:10 -04:00
Rob Rix
5563bc19a0
Depend on tree-sitter-python.
2019-06-11 11:20:58 -04:00
Rob Rix
52fa1a1c4a
Cabal complains if this file isn’t here.
2019-06-11 11:13:26 -04:00
Rob Rix
ebc025b600
Add some dependencies.
2019-06-11 11:12:12 -04:00
Rob Rix
4a9255a76c
Stub in a semantic-python package.
2019-06-11 11:06:11 -04:00