[33mcommit 220572e7fd3cddb90be03328ec920cec0ce14862[m[33m ([m[1;36mHEAD -> [m[1;32mclean-lexer[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu May 9 14:31:56 2019 +0200
[ci skip] Always follow dedents with newline
[33mcommit 5edfa106fc1e41ce56a5de2c9345d31b4edeb2ce[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu May 9 13:41:37 2019 +0200
Re-add rules for lexing numbers
[33mcommit f0b5227499c083f14aab9721601d7c4b2c47e311[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu May 9 13:21:13 2019 +0200
Add preservation of comments
[33mcommit 67d2e5f856820851c1b18aab520472d9d71acfd8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu May 9 12:21:35 2019 +0200
Update indentation rules
[33mcommit 785f31ea892971520c43d62167b73f990fa7dc9a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 8 17:40:47 2019 +0200
Correctly reset hit token boolean after each newline
[33mcommit d6d9d3bd8e4f3d066999204d8b1d624b50dc9899[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 8 17:32:24 2019 +0200
Add lexing of all tokens.
Indentation and dedentation has been slightly broken.
[33mcommit ff685bdb7c7d6659c9fbc0d5c44b47dacfc04428[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 8 16:35:27 2019 +0200
Add rules for parsing remaining tokens
[33mcommit 5e1db936f4cc38071c03e84bba17a4e9e1bb309e[m[33m ([m[1;31morigin/clean-lexer[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 8 13:12:30 2019 +0200
Add lexing of additional characters
I think that it is best that the tab character be unrecognized.
4 spaces is an indentation, this should help with consistency within the
language, similar to how Go does formatting.
[33mcommit da02937a8e2a0cf75fc97dc967cb212e0bf793d9[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 8 12:29:59 2019 +0200
Start refactor of lexer
[33mcommit 6d4b854b1b6e469771c68a1b0c5eaca1c2635a29[m[33m ([m[1;31morigin/master[m[33m, [m[1;32mmaster[m[33m)[m
Merge: d4782a2 7c7ede8
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue May 7 14:46:48 2019 +0200
Merge pull request #81 from JSAbrahams/todos-desugar
Add panic messages and use unimplemented macro in desugar stage
[33mcommit 7c7ede8bbc789b23325e79a8857d97c6ca2c8354[m[33m ([m[1;31morigin/todos-desugar[m[33m, [m[1;32mtodos-desugar[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon May 6 16:08:48 2019 +0200
Add tests for incorrect or desugar input that does nothing
[33mcommit 008be186081beff08e9a2f7005f1123dd09e172a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon May 6 13:58:43 2019 +0200
Make explicit what still should be implemented in desugar stage
Also make more explicit what should and shoulnd't be encountered.
[33mcommit d4782a28633c4ae740ecbdc299ad9a66641b90e4[m
Merge: 4dc1f6a cde51fb
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon May 6 15:44:14 2019 +0200
Merge pull request #82 from JSAbrahams/new-handle
Properly implemenent handle statement
[33mcommit 4dc1f6ac960c58f485c17f7d23bcb2d689908426[m
Merge: 008a606 45df794
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon May 6 14:25:07 2019 +0200
Merge pull request #80 from JSAbrahams/better-code-examples
Use factorial to showcase PositiveInt
[33mcommit cde51fb69aef0fc8a03deb2b9893101d57c40631[m[33m ([m[1;31morigin/new-handle[m[33m, [m[1;32mnew-handle[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon May 6 14:18:54 2019 +0200
Expect newline before match cases in handle
Add some test for raises and handle
[33mcommit 210eb36a232c10b557f7c261e899e401035ae0f3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon May 6 14:03:26 2019 +0200
Remove requirement of when after handle token for handle
mat
[33mcommit 45df79410e9f486d61dc8dc83c33a9c782ed3eec[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon May 6 01:07:18 2019 +0200
Use correct type for server example
[33mcommit 84a18841aee5a65bbfe051574d1b12137840e7fa[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon May 6 00:40:59 2019 +0200
Use correct type names in README
[33mcommit e65027b66ae45367f1668387d6247e4910013ac9[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon May 6 00:39:09 2019 +0200
Use factorial to showcase PositiveInt
[33mcommit 008a60618603c4150e24d327873718f05031b670[m
Merge: 81b507d ee6c619
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:59:59 2019 +0200
Merge pull request #79 from JSAbrahams/code-mistakes-readme
Fix some code mistakes in README
[33mcommit ee6c619bf77291cbbd5abc1cc2b93ba3b1398933[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:56:36 2019 +0200
Fix order in DisconnectedHTTPServer in README
[33mcommit 81cfe4baf1326197d396c76731f14061cf718532[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:54:43 2019 +0200
Fix some code mistakes in README
[33mcommit 81b507dc9571401507e720c4f319d8f0854768de[m
Merge: 9209320 73d8a3a
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:43:27 2019 +0200
Merge pull request #78 from JSAbrahams/error-handling-doc
Use correct assign in error doc
[33mcommit 73d8a3ae26cd436814bb5447fd3d39e0644b6f75[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:43:00 2019 +0200
Use correct assign in error doc
[33mcommit 920932044525a456354c65ad802dfb2ca49d9eb4[m
Merge: e56e4a1 5af3ecc
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:41:38 2019 +0200
Merge pull request #77 from JSAbrahams/error-handling-doc
Fix grammar error in error handling section
[33mcommit 5af3ecc1d45f34d7a8266221a58f660587bbcd17[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:39:36 2019 +0200
Use correct assign in stateful example
[33mcommit fd2c1bb779cc4f3c47538c1239ea8995e7e86abc[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:38:31 2019 +0200
Fix grammar error in error handling section
[33mcommit e56e4a1f5b31e9625eb83883e86cab73f8ac4c4b[m
Merge: e6106f3 d1ee663
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:36:16 2019 +0200
Merge pull request #76 from JSAbrahams/type-refinement-patch
Add logo to type refinement section in README
[33mcommit d1ee66349b0848f0b099363d7d7891129081d813[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:29:59 2019 +0200
Add logo to type refinement section in README
[33mcommit e6106f37108c7a0583ba8b0e9d9382702fd273ca[m
Merge: 71c10d2 5e8d382
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:28:41 2019 +0200
Merge pull request #75 from JSAbrahams/readme-example
Add code examples to README
[33mcommit 5e8d3821a88522ef5c35a9fd0135ab1191ea8095[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 17:03:30 2019 +0200
Fix some grammar and spelling mistakes
[33mcommit 71c10d235ee5dc0bfab2cbd78e07031971fdaf2a[m
Merge: 4766388 d51c77e
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun May 5 16:58:32 2019 +0200
Merge pull request #74 from JSAbrahams/forward
Add desugaring of `foward`
[33mcommit fd644bb217cb8ae902e1ce6eccccdc4d6aa5d031[m[33m ([m[1;31morigin/readme-example[m[33m, [m[1;32mreadme-example[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun May 5 16:55:15 2019 +0200
Add mamba code language flag
Currently not recognized as a language, but someday hopefully it will be.
[33mcommit 0774cd1d7e778b314bcef34c7088bc5f35563e8d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun May 5 16:53:52 2019 +0200
Add error handling example to README
[33mcommit b18fbeff18d2f920f1b828a82864c6a7bc764a79[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun May 5 16:08:12 2019 +0200
Add some code examples
Still need to add examples for error handling and elaborate a bit upon the type refinement example.
[33mcommit d51c77ea062dc98ff16d6c4b38c2347f78770418[m[33m ([m[1;31morigin/forward[m[33m, [m[1;32mforward[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun May 5 13:49:53 2019 +0200
Don't pass self to forwarded method
[33mcommit 8a3511cdabc692cda1412638a61741c186a589e0[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat May 4 16:39:55 2019 +0200
Add test for checking desugaring forward works as expected
[33mcommit 9134d7968c69505aaa577ddafbc85de2f81e2d21[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat May 4 16:21:28 2019 +0200
Only return block for variable def if includes forward
This happens in the desugaring stage.
If a variable definition has no forwards, there is no need for us to
return it in a block.
[33mcommit 80172ff106fa6cbc1f1f0b71d1868f2c751c4862[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat May 4 16:08:57 2019 +0200
Add desugaring rule for forward
[33mcommit 4766388c893397328fc4b418ba50d075fef5f3bd[m
Merge: c872d54 4cf03a0
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed May 1 18:37:39 2019 +0200
Merge pull request #68 from JSAbrahams/doc-interface
Add documentation to interfaces
[33mcommit 4cf03a09788a61c60d94dca0ac418779e3678fed[m
Merge: 2e59981 c872d54
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed May 1 16:16:33 2019 +0200
Merge branch 'master' into doc-interface
[33mcommit c872d54bef86329349ef8f97371d57c9c99c5a13[m
Merge: 014726f 75074ea
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed May 1 16:15:55 2019 +0200
Merge pull request #73 from JSAbrahams/fix-is-instance
Fix isinstance typo in Python code generation
[33mcommit 014726ffb8a95aa88c3c32c7b3e19e742dd9796f[m
Merge: c273624 5a6aa9b
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed May 1 16:03:24 2019 +0200
Merge pull request #72 from JSAbrahams/core-import
Add ImportAs and Import to Core language
[33mcommit 2e59981ae37ddc751c4e1935cb07080ad091e6e6[m[33m ([m[1;31morigin/doc-interface[m[33m, [m[1;32mdoc-interface[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 1 16:02:36 2019 +0200
Desugar ReturnEmpty to Return None in Core language
[33mcommit 36d7fe0c79901af00fcb2b5ecea841396191a432[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 1 15:59:24 2019 +0200
Move macro to common in lexer
[33mcommit 39738192a35c749e8ae82d655194fc67dc60d00e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 30 16:18:37 2019 +0200
Add documentation to lexer
[33mcommit 97d8a124dc773ed2ff85a5ee122e89e32202d254[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 30 16:06:23 2019 +0200
Add documentation to parser
[33mcommit ffb1a0930addb37fa0f300af59ed02e1141a3707[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 30 15:53:33 2019 +0200
Fix compile error in to_py_source documentation
[33mcommit 7c1cc101b89ebcd22c0263d785a68e887af254ef[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 30 14:43:42 2019 +0200
Format imports in parser
[33mcommit b350fdfb830cc82e6e568d6165716477c1918f0d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 30 14:41:33 2019 +0200
Move macro's in parser to common
This reduces the clutter, especially since documentation now is now
being added.
[33mcommit f793c81b3763a74a570986457821dfca983f88ab[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 22:11:07 2019 +0200
Fix formatting in code and desugar docs
[33mcommit 5b0bf71da175bc0a1d2d3a5a1b01ec2fccf22715[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 21:29:46 2019 +0200
Add documentation to `to_py_source` and `desugar`
[33mcommit 75074ea1a555c15449d92e002728c881c5df58c4[m[33m ([m[1;31morigin/fix-is-instance[m[33m, [m[1;32mfix-is-instance[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 1 15:53:20 2019 +0200
Fix isinstance typo in Python code generation
[33mcommit 5a6aa9b1444c6c2649a80275219d6ad5b2a5b434[m[33m ([m[1;31morigin/core-import[m[33m, [m[1;32mcore-import[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 1 15:45:58 2019 +0200
Add ImportAs and Import to Core language
[33mcommit c2736242d69d2e02eecaedafb85ca735ea15163e[m[33m ([m[1;32mcollection-comprehension[m[33m)[m
Merge: d7fc7c4 e581c49
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed May 1 00:44:52 2019 +0200
Merge pull request #71 from JSAbrahams/tuples-and-none
Tuples and none
[33mcommit e581c49108d8a1f025d87edfe32703cb93b8fe16[m[33m ([m[1;31morigin/tuples-and-none[m[33m, [m[1;32mtuples-and-none[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed May 1 00:16:24 2019 +0200
Return tuple of None if assigning to tuple
We use state to track whether this is the case or not.
[33mcommit 62adb00b3d1954c5678c0e3cf2d1fbfa2c69b44c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 14:22:34 2019 +0200
Add Context and State to desugar stage
This can be used to check wheter an identifier is a:
- class
- field/property
- function
Also add State.
Ass opposed to Context, which is built once and then never changed,
State can change while desugaring.
This can be used when checking whether we're assigning to a tuple or not
for instance.
[33mcommit 58ba38fd42f51f327466ff138fa464284dbd0c7f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 13:55:14 2019 +0200
Move assign None rules to desugar stage
Also desugar ReturnEmpty to return None.
[33mcommit 428bc678b809398646414804ae25f55f7b062555[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 23 15:16:54 2019 +0200
Add test for python syntax checking
* Assign None to variable if nothing assigned to it
It is clear that desugaring and the core module should be more complex:
* self should be added to functions in stateful classes.
* when calling functions of self, they should be explicitly called on
self (it might be an idea to add this to the language).
[33mcommit d7fc7c4e422f1f861928aab423b50a78d3f52e64[m
Merge: 69e7d4f c9da903
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed May 1 00:03:18 2019 +0200
Merge pull request #70 from JSAbrahams/test-config
Allow dead code in common core of test package
[33mcommit c9da9033d2afa55ad56febec66c096da0050bd74[m[33m ([m[1;31morigin/test-config[m[33m, [m[1;32mtest-config[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 30 16:24:53 2019 +0200
Allow dead code in common core of test package
We no longer get useless compile messages, as these utility functions
were actually used.
[33mcommit 69e7d4f95022d1568c841990d88b14aa1a1db4e8[m
Merge: 2c92365 abd1944
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Apr 30 14:20:06 2019 +0200
Merge pull request #69 from JSAbrahams/better-enum
Simplify ENum
[33mcommit abd19449d8c0e366243a676cd3411d35c0c86363[m[33m ([m[1;31morigin/better-enum[m[33m, [m[1;32mbetter-enum[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Apr 29 11:40:20 2019 +0200
Use standard power operator of Python for Enum
It might be overdoing it to define a custom class for this.
[33mcommit 2c923654c9fc141930278b05888c303dc42ad5c6[m
Merge: 27ffa76 0414880
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Apr 29 11:05:40 2019 +0200
Merge pull request #61 from JSAbrahams/test-python
Test mamba class to python class
[33mcommit 04148807b069a8544364037736d6ca1ea7ef22bd[m[33m ([m[1;31morigin/test-python[m[33m, [m[1;32mtest-python[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Apr 29 10:46:01 2019 +0200
Make PYTHON argument a static value
Its value depends on the operating system.
[33mcommit 3e690c2c2243bbbf54ff7a4c016028c54f63cf12[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 22:10:02 2019 +0200
Make empty definitions desugar to assigning None
[33mcommit d69b77e9e59af4b9de975ce1ecc029d40047a6bf[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 22:01:48 2019 +0200
Use correct python command based on OS
[33mcommit ae2c4926e8437f6baaf9fa27ba6e4607569da8e3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 13:04:57 2019 +0200
Add command to install Python 3
[33mcommit 3a26d71304f4d19ad937f560fd74f8959ca5cfc2[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 20:01:48 2019 +0200
Add Python to travis config
[33mcommit 87b7d7880e8ebbdb3df9c117b58c2a4290ac5c76[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 19:43:48 2019 +0200
Remove unnecessary check that tuple Python file exists
If an error occurred it should have been caught
[33mcommit d5d7c4c31bc8007328a15d4faebe8e01481e93cc[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 15:33:43 2019 +0200
Remove Python from travis
[33mcommit ffae18c8598f809497e1c9652f33858709686474[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 15:19:07 2019 +0200
Update travis config for multiple languages
[33mcommit 6d756effb2db7eb59d6e526c1004ee8b46b23d8d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 15:12:03 2019 +0200
Update appveyor and travis configs
Add for testing tuples which we needn't ignore.
[33mcommit 2ecc700c7d5c40e990f83ae7c01121aa2cbf307c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Apr 25 14:26:02 2019 +0200
Remove defaults from functions
This was just confusing and only has very specific use-cases.
[33mcommit e7a54ebfc2bd87bac5e3ac1c2952cb0d9d70a253[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Apr 25 11:48:41 2019 +0200
Ignore python test
We still need to add some more complex desugaring rules before this
class becomes valid Python code.
[33mcommit 91ca95e87659a40d2a5b54d0f085c6190c52c977[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Apr 24 13:14:35 2019 +0200
Don't make constants fun args when parsing
[33mcommit 7a17b0d15982fd5c46aecda701ae48c9d4c6ff5c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Apr 23 15:16:54 2019 +0200
Add test for python syntax checking
* Assign None to variable if nothing assigned to it
It is clear that desugaring and the core module should be more complex:
* self should be added to functions in stateful classes.
* when calling functions of self, they should be explicitly called on
self (it might be an idea to add this to the language).
[33mcommit 27ffa76f35a5346b1a7bd3e4d65ea1aab3c1b50e[m
Merge: e612251 fdc9c89
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Apr 28 21:36:31 2019 +0200
Merge pull request #67 from JSAbrahams/cleaner-tests
Check result from test resource access
[33mcommit fdc9c89e0a693ac8fa180bf11f898c860ec5db56[m[33m ([m[1;31morigin/cleaner-tests[m[33m, [m[1;32mcleaner-tests[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 20:25:52 2019 +0200
Remove redundant assert_eq macro invocations
[33mcommit 796d5ca58e651026d9d0a618d76e5c47ec24359f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 16:50:14 2019 +0200
Return Result in test instead of using assert_ok macro
Implement Termination for ParseResult
[33mcommit eac8f369b113e032e947bc061abea72fc4c7b7ce[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 15:25:18 2019 +0200
Use Result in tests
This should somewhat improve error reporting.
[33mcommit e61225160c793c2c9d1021322b28989f1bc5ab58[m
Merge: 1cdd755 cc153df
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Apr 28 14:48:52 2019 +0200
Merge pull request #65 from JSAbrahams/types
Create Type enum
[33mcommit cc153dfa89752b02480b5bee1c9ffbfd6f5cfe14[m[33m ([m[1;31morigin/types[m[33m, [m[1;32mtypes[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Apr 28 13:27:33 2019 +0200
Create Type enum
This will not only come handy in the type checker but also during the
desugar stage.
For instance, when we assign to a value, we need to know whether it is
a tuple or not.
Instead of creating another custom alias in the desugarer, it is
probably better to re-use the types from the type checker (which is
still to be written).
[33mcommit 1cdd7558b87f34cd77d3e21072b6be94e84054aa[m
Merge: 3bf1eba 2bf43f5
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Apr 28 12:54:53 2019 +0200
Merge pull request #62 from JSAbrahams/fix-tokens
Improve Display for Token
[33mcommit 2bf43f566820905790454797971a872ec988944d[m
Merge: 93bff34 3bf1eba
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Apr 26 19:59:04 2019 +0200
Merge branch 'master' into fix-tokens
[33mcommit 93bff341803bc2152a4451ec8b8af94c4b4030e0[m[33m ([m[1;31morigin/fix-tokens[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 19:55:44 2019 +0200
Use update from rust format
[33mcommit 3bf1ebade62a47883915bc161a6027e66575e48a[m
Merge: ea4d805 cd5d6c2
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Apr 26 19:26:43 2019 +0200
Merge pull request #60 from JSAbrahams/new-grammar
Move mutable field from VarDef to IdType
[33mcommit 5dc107345a1df9b785c03010a14008403f0c0d87[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 14:38:10 2019 +0200
Use String::from instead of to_string in Display for Token
[33mcommit 247caa4416fe35520c53c4dcedae9e666e4811b3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 14:17:38 2019 +0200
Remove unused tokens
Add TODO for removing useall token once parsing imports has been
implemented.
[33mcommit cd5d6c27fafb965af06e54587e789be6c8a13c40[m
Merge: 6c6741d ea4d805
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Apr 26 19:05:59 2019 +0200
Merge branch 'master' into new-grammar
[33mcommit ea4d8055b238841a33bff2ce8aa33fe636a759ff[m
Merge: 027416b 40f151e
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Apr 26 19:05:47 2019 +0200
Merge pull request #59 from JSAbrahams/imports
Add parsing, desugaring and core constructs for imports
[33mcommit 40f151ef7ce6059fc6d28e25a2f77adb2e45d050[m[33m ([m[1;31morigin/imports[m[33m, [m[1;32mimports[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 18:57:09 2019 +0200
Add tests for imports
[33mcommit 23c8329bf72fbaa3e61e015967d40bf8f408b4be[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 17:39:51 2019 +0200
Fix file path for kcov
[33mcommit 61da077cce0121e5499a534db0c90017bf1ff0a7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Apr 26 14:56:27 2019 +0200
Remove verify flag for kcov from travis config
[33mcommit 6c6741d29bb9586c972b56b9c3bcc2361a6d59dc[m[33m ([m[1;31morigin/new-grammar[m[33m, [m[1;32mnew-grammar[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Apr 25 11:21:38 2019 +0200
Move mutable field from VarDef to IdType
This reflects the change in the grammar.
A variable definition does not contain any information about the
mutability of the definition.
This is now stored in the id alongside type information.
[33mcommit 22147e419e959f4f626f46b5ddd0c9d3440c909d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Apr 22 12:45:29 2019 +0200
Desugar imports and add Core constructs for imports
[33mcommit c08aaebc37a575db046375ea78d85fff6e32c64c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Apr 22 12:27:11 2019 +0200
Add parsing imports
[33mcommit c028312c2a15a9e9a7b9d1243de9f28db63c359f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Apr 22 11:40:57 2019 +0200
Add tests for parsing imports
[33mcommit 027416ba89ea42e8636b69c48045ec3c63858106[m[33m ([m[1;32mmut-fun-args[m[33m)[m
Merge: 1daf45d 0a11e2f
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 27 13:29:12 2019 +0100
Merge pull request #58 from JSAbrahams/test-desugarer
Test desugar stage
[33mcommit 0a11e2f24355bb23c01a8219e982d5ffed330a34[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 27 13:22:38 2019 +0100
Remove TODO in desugar stage
We now do something with default.
[33mcommit a6b01c7248766bb0501b359801afb3089d14d78d[m[33m ([m[1;31morigin/test-desugarer[m[33m, [m[1;32mtest-desugarer[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 27 12:29:21 2019 +0100
Add default to FunArg in core language
Add test for added behaviour.
[33mcommit 6087ea9e315fcb27ba518c46fd99485cc59570d4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 27 12:00:45 2019 +0100
Add tests for desugar definitions
Change behaviour of desugar definition with no body. It is now still
a Core VarDef instead of being desugared to an Id, which can be
confusing and also throws away information regarding it's private field.
[33mcommit 1daf45de700a215875e6f2cb35faed055d380dd3[m
Merge: 9d52cb8 45e6240
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Mar 26 16:48:53 2019 +0100
Merge pull request #56 from JSAbrahams/better-tuples
Expression wrapped in braces is no longer a tuple
[33mcommit 406dbe1894996031a518c62884b5a90846da39b7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 26 16:26:35 2019 +0100
Add tests for desugaring control flow
Fix some inconsistencies in naming of variables.
[33mcommit 640c577ddb1324b672395b287d42d61e70b4b4ac[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 26 15:14:35 2019 +0100
Split up desugar stage
- Add `is not` to core language
[33mcommit 55c1032840c0728edc07c9823584e4d73f067247[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Mar 25 18:39:30 2019 +0100
Fix failing set_verify test
It didn't compile, whoops.
[33mcommit f6e5d5716476f527376b81a5369901bb63c90bd1[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Mar 25 18:28:52 2019 +0100
Remove empty test classes
Will write these in future.
[33mcommit 419ddf32f13c3e0869976595d68e9f7cab0face3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Mar 25 18:27:07 2019 +0100
Add tests for desugar collections
Add Init Node, and the accompanying desugar rules
[33mcommit 99da683257f665e4fdddabbe118acbac5b83de71[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Mar 25 18:07:49 2019 +0100
Test desugar simple statements
[33mcommit 471e32ee19ed40d87dd9d70ef420e8444fbf4459[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Mar 25 17:46:13 2019 +0100
Test desugar of all built-in operations
[33mcommit 9d52cb826b3a70f3c1ac6ba3a596176be0d99c76[m
Merge: 9242519 ea34185
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 24 23:08:09 2019 +0100
Merge pull request #57 from JSAbrahams/better-travis-link
Make travis badge link to all travis badges
[33mcommit ea34185425aa00ea5323d6fa5dff5f4fb142d572[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 24 22:48:12 2019 +0100
Make travis badge link to all travis badges
Currently, if you click on it you go to the most recent build.
This can be of any PR, so it might be a failing build even if master doesn't fail.
This is confusing because if the master build passes, you don't expect to be confronted with a failing build when you click on the badge.
[33mcommit 45e62409d1561fd1442bd89a6ec1db7b8d081831[m[33m ([m[1;31morigin/better-tuples[m[33m, [m[1;32mbetter-tuples[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Mar 24 22:23:20 2019 +0100
Expression wrapped in braces is no longer a tuple
A tuple has either 0, 2, or more elements.
A tuple with only 1 element is now no longer a tuple but an expression
wrapped in braces.
[33mcommit 9242519adadeb25c625328d5b99ab8785c8ee6b7[m
Merge: b0a7095 b1f2bf2
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 24 15:29:20 2019 +0100
Merge pull request #52 from JSAbrahams/test-parse-definition
Test parsing definitions
[33mcommit b0a70950f39ad8c1e5964d9cca9f2b0098137a72[m
Merge: 1985471 14c7d6d
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 24 15:23:14 2019 +0100
Merge pull request #54 from JSAbrahams/pretty-readme-1
Remove breakline between badges
[33mcommit 14c7d6d861f4e2595ca81aa8f01ad9ce23ddd66d[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 24 15:17:06 2019 +0100
Remove breakline between badges
[33mcommit b1f2bf21bc5621ff8716430a8adf4b276fc5e2b1[m[33m ([m[1;31morigin/test-parse-definition[m[33m, [m[1;32mtest-parse-definition[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Mar 24 15:13:10 2019 +0100
Add tests for function definitions
[33mcommit e78e1e8e1a2f1a7837f88d9ef8184a2ca943f036[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Mar 24 14:08:30 2019 +0100
Ignore tests for now
[33mcommit 29b5841a144025e2abd8ca1cfcf85e50ce3345bd[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Mar 24 13:33:53 2019 +0100
Add test for invalid definitions
Ensure that error is thrown when parsing a block when a statement is not
followed by a newline or dedent.
Also uncovered a bug where expressions followed by a plus are not
automatically parsed as operations.
[33mcommit 86055d947a2609e456dfd8df4e3a255cc1eb3ec4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Mar 24 12:58:10 2019 +0100
Add tests for valid definitions
Fix bug where an empty definition was incorrectly identified as an
error. In the language, it should be possible to define something
without immediately assigning to it (we want to have "deferred"
initialization).
[33mcommit 19854719ffa2da6ef501acf869e05fc176a26989[m
Merge: f943e54 6ed0411
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Mar 23 18:07:45 2019 +0100
Merge pull request #51 from JSAbrahams/better-logo
Better logo
[33mcommit 6ed0411a60cf67b97c94d14016fe881dad9883ac[m[33m ([m[1;31morigin/better-logo[m[33m, [m[1;32mbetter-logo[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 18:00:54 2019 +0100
Point to ico file in README
[33mcommit a3bde8c867f1b26b3dce37db26ed94640bb61e79[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 18:00:02 2019 +0100
Add logo ico file
[33mcommit 42e66369fe4152a5bddb2a8f5e0287a2029ed391[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 17:57:20 2019 +0100
Add logo with text
[33mcommit f943e5422277adfdcd257fed6704e986902a2f61[m
Merge: 0edd71b c23490c
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Mar 23 12:03:23 2019 +0100
Merge pull request #50 from JSAbrahams/test-parse-invalid
Add Pass keyword and add tests for parsing invalid expressions
[33mcommit c23490cb174aaef913336b6509e9dc9eb14897ba[m[33m ([m[1;31morigin/test-parse-invalid[m[33m, [m[1;32mtest-parse-invalid[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 11:54:25 2019 +0100
Add tests for new pass keyword
[33mcommit 378d60c868814b79eb1f5abc5d138c94ce45c878[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 11:34:46 2019 +0100
Add missing newline to invalid operation test
[33mcommit 30e2a1f468389d0daee3fcd6bafff3a8de04c196[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 11:33:10 2019 +0100
Add tests for function calls
[33mcommit 498090420e3c2751b1cafadcd2388c28b45eea82[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 11:14:10 2019 +0100
Add test for questor on nothing
[33mcommit 1afc684e9d0996e40c9b5afc470a33a4afa643a0[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Mar 23 11:11:06 2019 +0100
Add Pass keyword and add tests for parsing invalid expressions
[33mcommit 0edd71bc6fc1bce2a74c87ffd811a9f2f8d18670[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 16:21:14 2019 +0100
Add tests for parsing calls
[33mcommit 056179d5050c42ca649564114b6f69cdb567dbf8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 15:49:14 2019 +0100
Add test for blocks
[33mcommit 62bb0245fc618088ac4becaccbd25c9f710e8620[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 15:38:01 2019 +0100
Add tests for expressions and statements
[33mcommit fc0a9781ff4a732ed041ee885e833f86cb83e9eb[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 15:03:38 2019 +0100
Add tests for some literals in operations
[33mcommit b0008f57f7caf2f82f66a33bb9d9044cad294ca8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 14:47:48 2019 +0100
Add tests for unary operations
- Fix bug where square root operation was not recognized as expression
in parser.
[33mcommit db9d95b5de2f030a4b069d5b47179115a4b2e48f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 14:44:30 2019 +0100
Add tests for operations
- Fix bug where Ge was incorrectly parsed as IsA
[33mcommit 0a690cb84a9d92297325aff7a0a89fc06468cebc[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 14:07:50 2019 +0100
Add verification tests for collections
[33mcommit 95d806798999efe329f37baffb94b9b9b4cdb0e5[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 13:55:17 2019 +0100
Add tests for parsing control flow statements
[33mcommit 86a4fd779c9c9c82d978fc65e8a2266409eee95f[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 22 16:38:13 2019 +0100
Change logo's to Unix and Windows
[33mcommit 5e99187594d91170531e63c29a5e03a7877d0e89[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 22 13:14:44 2019 +0100
Use 4 spaces for proper list indentation
[33mcommit eaaa21958fb32721fae089dc248f355b19068afe[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 21 13:29:16 2019 +0100
Use 4 spaces in markdown files
[33mcommit d0ecf36d186b1d2b1dcb8d5a98947234dfbdcf83[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Mar 21 15:56:25 2019 +0100
WIP Update CodeCov configuration (#43)
* Add bors and point it to travis build
* Only build master in Appveyor and cache in Travis
This should speed up builds. We don't build for every push now.
We also cache cargo in Travis. Not sure if this will work properly but
we'll see.
* Update codecov config
- Require ci to pass
- Use sunburst diagram and list files in comment layout
- Change range to 50..100
- Notify if coverage changes in file not touched by PR
* Add example tests for foreach statements
This was also added here to test the new codecov config.
* Format control flow tests
[33mcommit a9c14d7241a6a06524a719461c171a5f665eca4a[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Mar 21 13:40:43 2019 +0100
Use 4 spaces in markdown files (#47)
* Use 4 spaces in markdown files
* Add single space to nested bullet points
[33mcommit 6a96c3f24b3a10116944926078f88d0d0a803406[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Mar 21 13:21:52 2019 +0100
Add Codeacy to project (#44)
* Add Codacy code quality badge to README
* Move coverage badge
[33mcommit 2e49b8fb0720777c30e8647cec23db8d99a79a64[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Mar 21 13:21:25 2019 +0100
Fix list-item-indent Errors (#45)
* Fix list-item-indent errors
* Remove excess spacing in CONTRIBUTING
[33mcommit f517f34905c4068dcd81b6d015cdbb8cc6c795e2[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 20 22:28:42 2019 +0100
Fix links to CONTRIBUTING and CODE_OF_CONDUCT (#41)
* Fix links to CONTRIBUTING and CODE_OF_CONDUCT
* Simplify description text
[33mcommit db8aa301b1fe8ad45b45254567a141b91c0eac9e[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 20 22:07:13 2019 +0100
Split up tests and add tests for the core (#40)
* Add subdirectories to utility
* Create sub directories for tests
* Fix formatting in tests
* Add tests for core
* Update travis kcov config
* Add leading slash for target directory
* Point to correct output produced by cargo test for kcov
* Remove unnecessary path for codecov
[33mcommit dd7a3a29c43e25c084bdd3105d2622dd804435d3[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 20 17:14:55 2019 +0100
Change rustfmt indentation stye back to default (#39)
Visual was too cluttered.
[33mcommit da9fcb0ca09881c986fe3653a1c6a33e0b926b62[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 20 16:55:58 2019 +0100
Wrap pipeline (#33)
* Create quick_transpile function which transpiles a given file
This is a quick and dirty implementation.
The python file is stored alongside the original file.
* Use correct resource function in test util
* Add newline to generated python classes
* Format core mod
* Create main file
* [ci skip] Add tests for command line
The main file however is not executed (this was verified with a simple
print statement). Need to investigate why this is.
* Fix command line tests
The problem was that the check that checked if the resource was present
didn't look in resources.
Also used OpenOptions, since that makes it easier to deal with files.
Only need to work a bit on the code quality.
* Format files properly
* Add tests to command to check overwrite of existing file
* Improve util class of tests
* Remove comments above imports
* Introduce actual syntax error
* Reorder imports
[33mcommit 8a1a31af77bcb637088a7095a0ffbf5487f99d5a[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 20 15:17:00 2019 +0100
Center align badges in README (#38)
* Center align badges in README
* Fix spacing between build badges
[33mcommit 3530031e6289ac16048266766e39898269a8d182[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Mar 18 21:54:00 2019 +0100
Remove logo from website
It's already clearly visible in the readme. I'd rather have it in the readme as then it is visible on GitHub, we're developers will interact with the repository.
On the documentation repo I think it's better to not have it in the sidebar.
[33mcommit 43c1d057dc2b83072c508e8c2289a22a80abd466[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Mar 18 21:11:24 2019 +0100
Change documentation link to page link (#37)
[33mcommit 28d612621b069e93034428d940b62b7dfda4ab32[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Mar 18 21:08:53 2019 +0100
Remove documentation from title (#36)
[33mcommit 1b2f305d3d1116260ec5ccdeea237b3c625ae9c4[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Mar 18 21:05:22 2019 +0100
Add logo of Mamba to website (#35)
* Add logo of Mamba to website
* Add link to documentation website in description
* Fix link to documentation
* Make link hyperlink
* Change link back to github link
If I click on a link in GitHub, I expect to be taken to the GitHub page. (for now)
* Put badges on separate lines
[33mcommit 329202644f79d8e34191c77d67a889738f7c828e[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Mar 18 20:35:25 2019 +0100
Set theme jekyll-theme-minimal
[33mcommit 42615cbb1f40f4e599f9b4fd14e2728e5b120e56[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Mar 18 20:29:30 2019 +0100
update mamba doc link in README (#34)
It now points to the webpage.
[33mcommit 980af5ac555d304595be113c3fbf43ee3bb0353c[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 17 17:34:20 2019 +0100
Re-add custom issue template (#31)
* Re-add custom issue template
* Add additional context to custom issue template
[33mcommit 13431dd3296d615a02f03e76344d1b84772ebbef[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 17 16:58:07 2019 +0100
Fix code of conduct link in README (#30)
* Fix code of conduct link in README
* Fix code of conduct link in CONTRIBUTING
* Simplify code of conduct link in README
* simplify code of conduct link in CONTRIBUTING
[33mcommit aea5f4768805971da7da266039472c295dace59a[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 17 16:31:21 2019 +0100
Add code of conduct (#29)
* Add code of conduct
* Add link to code of conduct in CONTRIBUTING
* Add link to code of conduct to README
Some other general formatting.
* Remove wiki from code of conduct
The project does not have a wiki.
* Update contributing text in README
[33mcommit cfb4cd9f68f66bca364c0a09633015f7ac8f3918[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 17 14:59:21 2019 +0100
Update issue and feature request templates (#23)
* Update feature request template
* Remove useless custom issue template
* Add sections to custom issue template
* Add additional context section to PR template
* Add placeholder text to custom issue template
* Remove trailing spaces
[33mcommit 47c3ece6c3b29f520c844148d821e34e969196a3[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 17 14:58:54 2019 +0100
Re-add links to badges (#28)
[33mcommit b6d4147283c5620458696fce1cd1c34c15c1e9a4[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 17 14:21:37 2019 +0100
Add Apveyor (#26)
* Change styling of badges
Also add built with love badge.
* Add appveyor config `.appveyor.yml` file
* Add appveyor badge to README
* Install Rust in appveyor config
* Move init to install in .appveyor.yml
* Only run clippy on stable channel
- Remove most channels, otherwise appveyor build takes too long
- we test 64 bit stable and nightly channels only
- Remove duplicate rustup install commands
* Update badge style
Use for-the-badge style.
* Add MIT and Love badge
* If channel is nightly install rustup nightly
[33mcommit 0572141197e9a31f581c3df51167ef0520492480[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Mar 17 12:45:33 2019 +0100
Add tests for lexer (#24)
* Add lexer test and fix off by one position when lexing id or op
* Correctly parse equality
* Remove DDoublePoint
* Correctly lex True and False
* Fix off by one position in string. Now we take into account the
closing " character.
* When desugaring enum, if exponent is empty, make exponent 0.
* Correctly position indents instead of all giving them the same
position as the first encountered character.
* Lex identifiers that start with underscore
* Add QuestCall Token
* Fix incorrect position after "?or"
* Fix incorrect position of "?"
* Change argument of tokenize from String to str
[33mcommit d649a468e1be567fc335cf812d70c4d436244f85[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Mar 16 15:30:35 2019 +0100
Add codecov config and to travis build (#22)
* Add codecov config and to travis build
Also added the codecov token to the environment variables within Travis.
* Use kcov to generate codecov report
* Remove rust nightly specification
This should be done properly in the future.
* Remove duplicate codecov report command
* Fix target path for kcov coverage
* Fix deps path
* Remove trailing forward slash in deps path
* Specify smoke and parser for codecov report
[33mcommit f4791f5897e091a5f97c980da0505493600ea59e[m
Merge: 5c57b3d 42967d8
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 20:53:48 2019 +0100
Merge pull request #21 from JSAbrahams/better-readme
Add Travis badge and Fix Access of Resources in Tests
[33mcommit 42967d8189ec94b794a4db57e34d54bbc558d8e5[m[33m ([m[1;32mbetter-readme[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 20:50:26 2019 +0100
Use forward slash when accessing resources on unix systems
[33mcommit d93c48c9e46fbbbf5fe50a60502297d52a14d464[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 20:35:07 2019 +0100
Install cargo in travis script
[33mcommit 7da995fee629e0b11330f86cb5548d0b58ea0687[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 20:31:49 2019 +0100
Add Travis badge
[33mcommit 5c57b3d06789fabcada69d1bd66769e4c070e3d1[m
Merge: c69d194 c45a620
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 19:42:02 2019 +0100
Merge pull request #18 from JSAbrahams/better-doc
Expand README and CONTRIBUTING docs
[33mcommit c45a620c02aece8e24d8a9eed1e436aae1bf3320[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 19:40:30 2019 +0100
Expand CONTRIBUTING document
* Expand CI section
* Add extra steps to submitting an issue and submitting a PR
* Slightly expand the etiquette section
[33mcommit 239214bfc46809e0da9f8450be435e565bed57a0[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 19:25:27 2019 +0100
Fix some grammar mistakes in README
Add some more explanation to the tooling section of the README.
[33mcommit c69d1941ace816e0ec8be2a4928b49c62d95ad97[m
Merge: 23195ec 31e0b57
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 18:09:55 2019 +0100
Merge pull request #16 from JSAbrahams/update-feature-request-pr-template
Update Feature Request template
[33mcommit 31e0b57ed865b087c4bbb6e5cb93169e0c158a15[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 18:09:47 2019 +0100
Fix first section header
[33mcommit b51fa92c09cb0db49f43409b481429c1c152c8ae[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 18:07:50 2019 +0100
Update feature-request.md
[33mcommit 23195ec97322f593d13091b8fac269667773ab68[m
Merge: 3e4ad07 bd7e8a4
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 17:58:30 2019 +0100
Merge pull request #14 from JSAbrahams/better-readme
Add clearer explanation of the language in README
[33mcommit bd7e8a4ddeb0d42be1206d2813edd6da084dfaa7[m[33m ([m[1;32mtravis[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 17:55:32 2019 +0100
Add clearer explanation of the language in README
[33mcommit 3e4ad07af4ef443bf44a96011b7e556b098392f4[m
Merge: cc2b984 dd6640e
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 17:47:14 2019 +0100
Merge pull request #12 from JSAbrahams/open-source
Add open source features
[33mcommit dd6640ea645b0b770c5ffbff29463f7fbfda2ce2[m[33m ([m[1;32mopen-source[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 17:42:37 2019 +0100
Reduce logo size in README
[33mcommit 1a70476b6d2504f8affee18a8735c32e2afa61ec[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 17:40:51 2019 +0100
Add CI section to CONTRIBUTING document
[33mcommit d8346c58281242ace17e7789ffa8be3247d75e13[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 17:35:48 2019 +0100
Update issue templates and add pull request template
[33mcommit fb7963d4fd1411e090ea35c958e54b58b1c1ce32[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 17:22:24 2019 +0100
Add CONTRIBUTING document
[33mcommit 8c48daa3c62229f98562296cda4699f8a93ebc94[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 17:00:28 2019 +0100
Update custom issue template description
[33mcommit cc2b984415f0a7b0c3072acf33898e219160f2c8[m
Merge: ace0b9c 10d1fd7
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 16:59:07 2019 +0100
Merge pull request #13 from JSAbrahams/parsing-multiple-expressions
Parsing multiple expressions
[33mcommit 10d1fd7fbb59641479b2f7d0b69c3918c8939561[m[33m ([m[1;32mparsing-multiple-expressions[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 16:57:24 2019 +0100
Expand test cases to test multiple expressions
[33mcommit 9616aa1ee5f9398404f8a73c855d6b33e0b2dc88[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 16:48:58 2019 +0100
Add multiple arguments to anonymous function
Make clear in code in which situations we exclude unary operators. This
should be reflected in the documentation as well.
Also use references where appropriate when reading tokens, negating the
need to clone tokens.
[33mcommit 58aadc8f1f41e7883d92a558c26c8d99f2af0190[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 16:24:17 2019 +0100
Add parsing multiple expressions to control flows
[33mcommit 41585e2968453b33394d70de60eba007aea7309e[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 15:04:03 2019 +0100
Add issue templates
[33mcommit ace0b9cefee523eac22fe460853aaf3dbc63efef[m
Merge: 1167fb2 b14ea07
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 14:56:09 2019 +0100
Merge pull request #10 from JSAbrahams/tooling
Tooling
[33mcommit 1167fb258dbb63fa9dd8f41bc2bb1e31676c5c79[m
Merge: d0bbe5d 7c96f20
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Fri Mar 15 14:50:57 2019 +0100
Merge pull request #11 from JSAbrahams/new-logo
Use new logo
[33mcommit b14ea074dcffbf269c1643c30e3229487ffcb4ec[m[33m ([m[1;32mtooling[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 14:48:27 2019 +0100
Use new grammar
* Remove useless init node and constructor parsing.
* Use when, match, then appropriately.
* Fix ambiguity with anonymous function, must be preceded with '\',
similarly to Haskell.
* Use references where possible for consistency (and performance).
[33mcommit 5b674d511541c7bea11a84b23d7341cf3ceec1e1[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 14:47:30 2019 +0100
Use new grammar
* Remove useless init node.
* Use when, match, then appropriately.
* Fix ambiguity with anonymous function, must be preceded with '\',
similarly to Haskell.
* Use references where possible for consistency (and performance).
[33mcommit cdcb07963a85a8716b1829b091f5df80c3985edf[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 12:44:38 2019 +0100
Add LICENSE and add tool descriptions to README
[33mcommit 7c96f203371a230c80a6d4888ce70662305239e4[m[33m ([m[1;32mnew-logo[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Mar 15 12:30:58 2019 +0100
Use new logo
[33mcommit 08a56a07123893118fac0ec64338349d4017ef6e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 14 17:56:27 2019 +0100
Set match_arm_blocks to false
[33mcommit 61ed74154e6a9062ee476b9741018c05459a9b0b[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Mar 14 17:48:11 2019 +0100
Delete misc.xml
[33mcommit 18bccbf77a28d8756610e67b1ae4ca3958d3b0b2[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 14 17:41:59 2019 +0100
Run format
[33mcommit cb27de234d69e8b5290d8432297af339442d7784[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 14 17:21:48 2019 +0100
Surround strings with " when converting to python
[33mcommit 50059b6c68ccce79d3b26b4cc76a9d1cab502b7c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 14 17:15:46 2019 +0100
Prefix statements with a newline in a block when writing to python
Instead of having a separate newline at the start and then adding a
newline at the end, which resulted in one newline too much at the end.
[33mcommit 61ac4c39c4287c783f2a4c151b8fab31da4181a1[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 14 17:12:10 2019 +0100
Address clippy issues
* Remove redundant return statements
* Remove redundant `as_ref()` calls
* Change method arguments from &Vec<...> and Vec<...> to &[...] so it
can also be used with non-vec based slices
* Use dereferencing instead of `clone()`
[33mcommit e16d24660c575f5a17cda99d8ee2dcad65235506[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 14 12:53:57 2019 +0100
Configure and apply rustfmt and add empty clippy config toml file
Rules for rustfmt are in the rustfmt.toml file. These are subject to
change but should quickly diverge to a fixed set of rules to avoid large
diffs in the future.
[33mcommit 569c53ee7a9fb3b46f08dfd06fd292ab1d217289[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Mar 14 11:15:39 2019 +0100
Set up basic tooling
* Clippy
* Rustfmt
* Travis yml file
[33mcommit d0bbe5dc8b87f124e5b3ff277b8acf7af6de6fe5[m
Merge: 5329066 a42c516
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Mar 14 11:02:22 2019 +0100
Merge pull request #9 from JSAbrahams/compile-classes
Compile classes
[33mcommit a42c516f52f5ff7d381022c035775de7519fd8cb[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 23:20:50 2019 +0100
Desugar if with None else to if without else in core language
[33mcommit a84482023ed079780766766cfe1bc4919b92e556[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 23:14:44 2019 +0100
Prefix private values and functions with _
This conforms to the python standard. There is no way to actually
enforce private in python, only with our own type checker.
[33mcommit 1f7d06a06c803f492e7db8b6ebb5f4a4893f1049[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 21:59:12 2019 +0100
Allow function calls within operations
* Make calls right associative
* Add direct function calls without adding namespace self
* Ensure proper indentation in bodies of if, for, while and __init__
[33mcommit 44d3e4c40d927a93df79be620450fbb765b9ff0c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 21:00:41 2019 +0100
Add property call to core language
Also identified issue where calls are left associative, whereas we
actually want them to be right associative. This should be fixed.
[33mcommit f267bb9f125785ee5ad1f515f96ab8f8e030e4d7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 17:52:09 2019 +0100
Add some rules for desugaring method and function calls
* Add writing of class definitions
[33mcommit 12d364b6f007652989ac293fd1fad5c429183404[m[33m ([m[1;32mfix-parsing-types[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 16:15:22 2019 +0100
Remove definition from constructor argument
* Remove constructor keyword
[33mcommit 6d49273b64f82b395e5dba1cd361a597ae74abf5[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 16:10:34 2019 +0100
Use stateful and pure terminology
[33mcommit 013099dde33312739bd46745b4a5ff8a5c0f6f5e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 16:08:19 2019 +0100
Add parsing of chained
This for instance allows us to call an attribute of an object and then
assign to it.
[33mcommit 2e172b00a8aa22db8600e440cd89c2f237fd2bb3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 14:36:42 2019 +0100
Move type aliases and definitions to module
* Improve code quality of parser, omit returns where redundant.
* Improve naming of type tuples and arguments to more closely coincide
with language grammar.
[33mcommit 5329066c4ff687e7c198f568b37a73e31183cbf3[m
Merge: 7096b87 66a340c
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 13 13:06:36 2019 +0100
Merge pull request #8 from JSAbrahams/desugarer
Desugarer
[33mcommit 66a340c7da20a8a0b4727c638d3eb9bf309b32c4[m[33m ([m[1;32mdesugarer[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Mar 13 13:05:52 2019 +0100
Add ENum to core language
[33mcommit 54f4136b0daec1b0f5cfb28ae3a63e2e490ae36b[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 12 21:13:16 2019 +0100
Fix indentation rules when writing python files
[33mcommit 2ca0fe2b3cc903b03e3fae50187a84d86571a4ae[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 12 20:52:23 2019 +0100
Ditch experimental box syntax in desugarer
* Always use desugar_expression, not desugar
* Use string format in core module
[33mcommit 339e7d562669372604580028489361d086f58827[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 12 16:42:02 2019 +0100
Add indentation to to python source conversion
[33mcommit e52bcf29bc0dbbe96982988505078096e06eeecc[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 12 16:05:10 2019 +0100
Add some rules for converting to python source
[33mcommit 0a28d68a6210c6a9120366c11f359ad8b2c5c6eb[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 12 14:33:48 2019 +0100
Add context to desugarer
* Clearly differentiate type def in parser
[33mcommit 39fcb38dc9ee48cafde8dddcc6d488d18282815a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Feb 28 10:55:00 2019 +0100
Remove doc, as this was moved to a separate repo
[33mcommit 671e861b6348f31479e15632b693474b8e0b5745[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Feb 24 20:12:49 2019 +0100
Create framework for parsing to python source code
[33mcommit 8fd1b76bfad841db2b90ab8189765c8c9996a935[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Feb 24 19:48:14 2019 +0100
Update documentation of the language
* Expand general features of the language document
* Slightly change grammar to use `=>` arrows.
[33mcommit ad2d7277635940f6827c006b1c6a73c2fdb0d5d4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 19 11:14:20 2019 +0100
Remove sizeof operator from class doc
[33mcommit 039b97e82ea224a8efad92d287fff029d1ae5eed[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 19 11:13:48 2019 +0100
Fix call in grammar
[33mcommit 4ed471b69784aec77f26f7dbc52f725e843785af[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 19 11:07:44 2019 +0100
Remove unnecessary macro and use box syntax instead
[33mcommit b30aa63f5c5553395662535193530733bc4689c4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 19 10:58:24 2019 +0100
Remove unnecessary core instructions
[33mcommit 8e6e3ffd1c459bb744c50aff5a2c3c5f732bb12a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Feb 13 15:17:58 2019 +0100
Add start of simple vm
[33mcommit 4461ac6c5581a8d66ec67a812569a1938779ab56[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 12 14:33:33 2019 +0100
Remove unused variables in parser
[33mcommit 96f9d594d80ad405efd5b5fd36c1e55df9df597b[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 12 14:27:41 2019 +0100
Add some desugaring rules
[33mcommit 631849026e4fe6d574c5d4b6f43d6726238e5d11[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 9 21:02:38 2019 +0100
Add parsing of default arguments values and literals as arguments
The latter may be used for default behaviour.
[33mcommit 0badd45bdd2faa8799ea008771bdc2ee62279a42[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 9 20:47:10 2019 +0100
Add parsing of postfix functions
Postfix calls are wrapped in Call nodes, with a left and right side. It
is up to the semantic checker to ensure that the left and right hand
sides make sense.
* Fix parsing of collections
[33mcommit 9cec693c6819a88991debac47c414ffbf467c797[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 9 19:41:25 2019 +0100
Parse normal non-infix function and method calls
[33mcommit 76cabcf72d62fc46367931f380123d4fa54e28e5[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Feb 6 16:54:12 2019 +0100
Redefine function call in grammar
We can also now call methods and functions in other name-spaces using
post-fix notation.
Only need to actually implement in the parse_function_call function.
[33mcommit 4e183974008ad5206435b697a4c9e47d1f01af56[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Feb 6 15:38:29 2019 +0100
Remove map from grammar
A map is a set of pairs. Fixes ambiguity between anonymous functions and
key value pairs.
[33mcommit de49bd85b8a344d3ff5b8d1a41e0c8d2b915b603[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Feb 12 16:52:48 2019 +0100
Expand test class file
[33mcommit 8720992bce71c6c7b3a210f8d3b1735bc6721dd8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 12 11:45:33 2019 +0100
Add top level parsing of type definitions
* Make else part of condition optional
* Allow inline condition in type definition
* Remove unused where token
[33mcommit 7096b8736036330eab473421d5a0368e81931cf1[m
Merge: 1eaf759 d0e07c8
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Mar 13 12:51:11 2019 +0100
Merge pull request #7 from JSAbrahams/logo
Add first version logo
[33mcommit d0e07c821754f4578ac0efe0e708e1bb2513e383[m[33m ([m[1;32mlogo[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Mar 12 14:54:27 2019 +0100
Add first version logo
[33mcommit 1eaf7599114c3c39114dbdcaf01a9d0fc3a45ba8[m
Merge: 40c21d4 b4fa958
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Feb 9 21:05:44 2019 +0100
Merge pull request #6 from JSAbrahams/key-value-pair
Add parsing of remaining language features
[33mcommit b4fa95805bef145ef16a973b7a8debc32a5e3d01[m[33m ([m[1;32mkey-value-pair[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 9 21:02:38 2019 +0100
Add parsing of default arguments values and literals as arguments
The latter may be used for default behaviour.
[33mcommit 4d623593f0a028d8109fbefbd420b654b6938d68[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 9 20:47:10 2019 +0100
Add parsing of postfix functions
Postfix calls are wrapped in Call nodes, with a left and right side. It
is up to the semantic checker to ensure that the left and right hand
sides make sense.
* Fix parsing of collections
[33mcommit 55e038a641973b7456a071bf01a6355dcdc99dca[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 9 19:41:25 2019 +0100
Parse normal non-infix function and method calls
[33mcommit efe4213416f53b7799542deda14622bc86ffd1a6[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Feb 6 16:54:12 2019 +0100
Redefine function call in grammar
We can also now call methods and functions in other name-spaces using
post-fix notation.
Only need to actually implement in the parse_function_call function.
[33mcommit ceaddf0c74319e3a7787805faa2b350d0c8f2e72[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Feb 6 15:38:29 2019 +0100
Remove map from grammar
A map is a set of pairs. Fixes ambiguity between anonymous functions and
key value pairs.
[33mcommit 40c21d4c0eccdf6cab23faebf004818cceacc822[m
Merge: e0f833f 6b6f0f4
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Feb 6 14:25:31 2019 +0100
Merge pull request #5 from JSAbrahams/debug-parser
Debug parser
[33mcommit 6b6f0f4ca62864aeef663c7ac8e94155edcb169c[m[33m ([m[1;32mdebug-parser[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Feb 6 14:03:34 2019 +0100
Add parsing of `ofmut` keyword
[33mcommit 6dfd4a1f0d39fa8750a5811f11512dc9c1e8fce1[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Feb 6 13:33:30 2019 +0100
Add assigning to collections to variable definition
[33mcommit a817b3e87b4b1be2c3309b591cb782cd05089288[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 5 18:19:10 2019 +0100
Remove binary in operator
[33mcommit 022467650bb56fb6786c119100b33092e0d30943[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 5 17:02:37 2019 +0100
Add init parsing, and enforce indentation in class and util body
* Remove infinite loops in parsing class definitions and constructor
arguments (call iterator next instead of just continue loop)
* Only check for dedent if end of file not reached
* Parse file instead of module
[33mcommit 94c9e9203266661f45895f773ae4fd9c11109b34[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 5 15:10:31 2019 +0100
Add parsing of forward when parsing definition
[33mcommit 9dacff8b02a187c901b686fdbbbfb4ade2e6652e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 5 14:53:35 2019 +0100
Fix parsing function definitions
* Get ride of id_and_type parsing. This should be verified by type
checker depending on the context.
* Fix bug in lexer where `:` became `::`.
* Simplify certain parsing constructs or remove redundant parsing
constructs.
[33mcommit e0f833f057654b1593f555a4abd4769f60e7194d[m
Merge: 96ac0d7 e91b6d4
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Feb 5 00:36:07 2019 +0100
Merge pull request #4 from JSAbrahams/error-handling
Add parsing of modules
[33mcommit e91b6d4433e941cf5480b91d0453850e639c2ae0[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 5 00:46:15 2019 +0100
Update endpos in file parser
[33mcommit 89dbf61fca3a13d9780e8c7194dca36104d15ff1[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Feb 5 00:38:30 2019 +0100
Add parsing of modules
[33mcommit 9a23edb5a55518bd7dbdca510907a59d972a4838[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Feb 4 23:08:55 2019 +0100
Remove postfix if from language in favour of postfix functions
* Add raise and handle to both expressions and statements separately
* Make constructor a definition
* Add parsing of generics
* Fix consistency in ast_nodes of parsing types (use optionals for
optional arguments in grammar)
* Remove "self" from grammar (still a keyword however)
[33mcommit 6003b82c46e3c10134f4a127560d65e60fb4c735[m[33m ([m[1;32merror-handling[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Feb 4 18:09:45 2019 +0100
Allow def as constructor arg and isnta keyword
[33mcommit 96ac0d724ee63fead46798be6b9114b603a89806[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sun Feb 3 16:13:10 2019 +0100
Add COBOL and Perl to inspirations
[33mcommit 387553e07586337f3dee21f2f0db15b6c7345154[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Feb 3 13:02:10 2019 +0100
Add parsing of constructor
[33mcommit d422e7876a5655554428425dd09523fc27858474[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Feb 3 00:25:09 2019 +0100
Implement underscore
[33mcommit 8732b1c3ed20753e2c46a283dbfeca14fad3189e[m
Merge: 78a5895 22860db
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Feb 2 23:17:06 2019 +0100
Merge pull request #3 from JSAbrahams/parsing-blocks
Parsing blocks
[33mcommit 22860dbfdc457d049e4d6557658f0d14b33e95c3[m
Merge: 1f4f140 78a5895
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Feb 2 23:16:56 2019 +0100
Merge branch 'master' into parsing-blocks
[33mcommit 1f4f1408ce5500d49970391a8dcf9d723b1fc503[m[33m ([m[1;32mparsing-blocks[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 2 22:41:13 2019 +0100
Implement function calling
* Remove sizeof operator, which made the grammar too complicated
[33mcommit 094ebf3359b46fd85bd99f2e15447b39231b4f93[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 2 22:02:09 2019 +0100
Finish parsing of collections
[33mcommit 4286707c52afc11d7d8646a706699f9f0869225f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 2 21:00:41 2019 +0100
Fix parsing tuples
[33mcommit 62376b318393dedf4d0f0feb472f2143edecb9a7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 2 12:46:52 2019 +0100
Remove some grammar errors from foreword
[33mcommit 7f50c72b624d3a0262ffea94e67de6a57a6fc1a1[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Feb 2 12:19:14 2019 +0100
Finish parsing of definitions
There is an ambiguity in the grammar. When parsing tuples, it is not
clear whether we have a type tuple or a tuple with expressions.
This ambiguity should be removed from the grammar.
[33mcommit 5d390d544ad3e1fd9605ead65c87149339e90472[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 29 17:28:42 2019 +0100
Expand documentation of modues
[33mcommit 22af7f1163bbad0a284ca48f0ebe083b96939584[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 29 12:48:43 2019 +0100
Rewrite foreword of philosophy
[33mcommit 040645e8238284307ddc57988a980fd5c8f0a5be[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 28 17:27:20 2019 +0100
Simplify definition in grammar
* Blur lines between function and variable, make clear they are both
definitions
* Add 'undefined' keyword
* Add 'vararg' keyword
* Add some missing keywords and special characters to language spec
[33mcommit 32bd224434cd54f6475c6935b53932ac2c4dcf50[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 28 14:07:36 2019 +0100
Make range an expression, and expand philosophy document
[33mcommit 73b641843fd6741afde0b52884e49151f62469c8[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Jan 26 23:56:35 2019 +0100
Add static verification or type properties to spec
[33mcommit da92f53909138770c8d533bf72ac10344b8576b5[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Jan 26 23:35:54 2019 +0100
Use isa for type aliases instead of assignmet
[33mcommit 7f9a36fcff377337804ff40f9cd695ff3f32a253[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 26 20:11:28 2019 +0100
Implement in operator
[33mcommit 41f2cb21a9e999b2093857a01c88f28c7ca3b312[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 26 20:06:56 2019 +0100
Rework type refinement
Change it from a system that desugars to post and pre conditions to a
system that checks certain conditions upon instantiation (or casting)
[33mcommit fbee38bf17d8fd0a5080b09e11bc3fba0390b318[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 26 18:23:59 2019 +0100
Add type refinement to language
This can be used to implement design by contract
[33mcommit 841b80d1291486e59c475f8d02a12b3a9d630099[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Jan 26 16:43:57 2019 +0100
Delete modules.xml
[33mcommit fff5fdad28d872ba66fe1280afb2643224d4685d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 26 16:21:08 2019 +0100
Slightly update philosophy document
[33mcommit 2c72bfcf7afb7286269524343cc7ccf0bdcb39db[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 26 15:58:08 2019 +0100
Add design by contract to language spec
* Add retry keyword for error handling
* Add ensure and require keywords for functions
* Add inspiration document to outline philosophy of language
[33mcommit 6aed90cd75100d39e84cd05c2e4b2ea4ff20b82e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 26 00:00:00 2019 +0100
Add parsing of range and collections except maps
[33mcommit e54219d8ee1982d0e8d67ea8d16c221ebe74a06f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 25 23:03:08 2019 +0100
Implement new grammar in expression and statement
[33mcommit 13bb8f3851e3ce515ed654df0edad983210b523e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 25 17:06:09 2019 +0100
And type alias to language spec and grammar
Also add range to language spec and grammar
[33mcommit 09fd6572525f34d1b9946db1afd0645d3b7fc774[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 24 19:04:09 2019 +0100
Implement control flow expressions, operations, and part of collections
In the parser.
* Add raises and handle keywords
* Add private keyword
Add some extra Nodes for closer mapping between grammar spec and
actual implementation.
Improve error handling documentation slightly, and make explicit what it
is desugared to.
[33mcommit cd79b908cb3acc252ac42cfe3a51ca925d60a28f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 23 22:12:59 2019 +0100
Make if source for test slightly more complicated
This is to more effectively test the indentation rules as we try to
debug it further.
[33mcommit 32bfee82d010b89e1df015ef07b2d70689cf9068[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 23 22:05:15 2019 +0100
In list of consecutive newlines, if dedent, place after first newline
Before, dedents were placed after all newlines. This however is
troublesome if we have multiple newlines followed by dedent(s). Namely,
it made it look like an statement or expression at the end of a block
was not newline terminated, by followed by a newline and then dedent
terminated.
Now, when the lexer encounteres multiple newlines, it only stores the
first one, and uses a counter to keep track of any other newlines. These
are then added to the list once another expression is encountered.
[33mcommit de038fa1da49dab0684bb80642ce238e37115759[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 23 15:17:50 2019 +0100
Change to using `->` arrows in function, and add explanation in spec
[33mcommit b70797414089eba9c93bca05b9c04b665e829b6e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 22 23:39:21 2019 +0100
Only allow infix notation of functions if they have one argument in spec
[33mcommit 51cac0048e9aa2a735b9c185a978f41d5483b463[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 22 22:38:50 2019 +0100
Add README to temporary doc folder
[33mcommit 1b0cf62072cc6b3060ac772dab1a57734acebf36[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 22 22:31:29 2019 +0100
Add default behaviour and values to functions and methods in spec
* Add list and map builder to language
* Fix a few grammatical errors in documentation
[33mcommit 809caa38419350a25ab2a0b17d61813d4b187d4c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 22 13:34:33 2019 +0100
Add extensions to language spec
* Add raises token
* Add raises to language grammar
[33mcommit 25626c62448c8fec9ec07a3ce6b321411a21fb8f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 21:33:00 2019 +0100
Add further explanation to error handling document
[33mcommit 67702187d477f44081cddb564e83bec3edc7a665[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 21:20:55 2019 +0100
Change the error handling in the language spec
* Add documentation for functions and methods.
* Use `->` in `when` instead of `then`, as the `->` better reflects the
program flow.
[33mcommit 6913215cd2e1370dd64be03e9250fbbd0c439898[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 18:01:20 2019 +0100
Add null safety and error handling to the language spec
Add tokenization of the `?` and `?or` operator. Still need to tokenize:
* `?and`
* `!`
* `!or`
* `!and`
[33mcommit 680ad33a9b201afdd9efad1ba1eb8e99eddf49e7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 16:12:46 2019 +0100
Make bracket token names explicit to avoid confusion
[33mcommit b2edc8a94a76075c8dd10b0cdc547abfc4af5563[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 15:53:04 2019 +0100
Re-add to token (`->`)
Need to re-evaluate the syntax of functions. Do we still want to assign
to a function or do we switch to using the to (`->`) token?
Also change the grammar of anonymous functions. The arguments are now
represented using a normal tuple. The type checker should check that
these are indeed identifiers.
[33mcommit b1db6d930b0cec40c8d34f9b41f684f17736d40c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 15:26:40 2019 +0100
Correct generic example
* Use correct generic type syntax
* Add OtherNode to correct graph
[33mcommit eaf1339f276bb81affa5b3667650a8454216968e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 14:50:54 2019 +0100
Use private in grammar (and generic example)
[33mcommit aedb8b627e6d98b113a584acaa125eabdcff69ea[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 14:44:10 2019 +0100
Expand documentation of generics
Add empty definition with type to grammar for types interfaces
[33mcommit 3f34bba8690fceac6baa2341028203bc74b2015d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 14:29:40 2019 +0100
Add vertical line to character list, and explains what it does in docs
[33mcommit 76960e9e20c76e8533c1ffde1609c410f6599177[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 14:11:10 2019 +0100
Add documentation for generics and re-add `from` keyword
[33mcommit 727fa67f26ec8d7f7f8ea0f27362c2ad5fb2207c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 13:29:52 2019 +0100
Change operator overloading so `neq` cannot be overloaded
This can produce confusing situations where, if one overloads eq but
not neq, or vice versa, both eq and neq may be true or false at the same
time. Therefore, we only overload eq.
a neq b is desugared to not (a eq b)
[33mcommit f6280f3a918f2adf640d9455f9bbe794203833e8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 13:20:42 2019 +0100
Add an explanation for mutability propagation
[33mcommit 1d480ceb8f74c988d0bda01f1029e9009dac7165[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 12:28:58 2019 +0100
Add operator overloading to grammar
[33mcommit 37a5ff84446cae43860c2b50dd625e4c202689a4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 21 09:20:42 2019 +0100
Add `ofmut` keyword for collections, and `// println`
[33mcommit 4ea493e2b632883430524d44856286f8523ed089[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 20 14:13:44 2019 +0100
add .iml files and target to gitignore
[33mcommit 5c600e2d929079296612e0769bfff0196a0fdf13[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 20 14:11:25 2019 +0100
Add .idea file to gitignore
[33mcommit 4bed95569b09dc49665a21dbd3da32bfb6d4a047[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 20 14:09:14 2019 +0100
Fix end position function to calculate correct token widths
[33mcommit e5068a5e844dba9dbe8eb99f66bfc8b03c2ef833[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 20 13:39:05 2019 +0100
Don't escape string if backslash used before a character
[33mcommit 80bcf8ddb387a4f23f3891e2ddb5de2ed101f185[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 20 12:54:04 2019 +0100
Shorten equality keywords
Use macros in operation to decrease verbosity and hopefully increase
readability.
[33mcommit 5269fa427e33a983cb493751026458b3be40a754[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 19 21:42:08 2019 +0100
Remove unless keyword
Expand documentation of the language.
[33mcommit e86c27b37aa5a4ba5de4e702389c55ee66093492[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 19 16:45:09 2019 +0100
Expand notation of collections in grammar
* We now have maps
* We have a size of operator (which should desugar to a function)
[33mcommit 78a58954023dae51121628578ba4764f79ccb3c9[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Jan 19 15:37:35 2019 +0100
Fix definition anonymous function in documentation
[33mcommit e42c89837e4a5ab2476f4e894a4847b941ee94f1[m
Merge: 7f8246f 3dedd10
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Sat Jan 19 14:25:48 2019 +0100
Merge pull request #2 from JSAbrahams/module-imports
Add module imports
[33mcommit 3dedd10a8134642431b2931df082c93e82d5e885[m[33m ([m[1;32mmodule-imports[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 19 12:35:04 2019 +0100
Expand grammar of parsing types, type tuples, and fix parsing types
[33mcommit 6c23043eb6fc81f23e02bd0233fa1bf2de3a277c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 19 12:19:29 2019 +0100
Don't add NL after ever token in lexer
[33mcommit 7d511ad55256c16d2099bb09fd4d02ceb4b38e56[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 18 21:54:20 2019 +0100
Implement type
[33mcommit 15d7627da472e1191fa638e368e4df44d56b8aa4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 18 14:56:19 2019 +0100
Made code logic in block more explicit
[33mcommit ae398860a354e60b2c3ed266c0b34aed4154913b[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 18 14:33:45 2019 +0100
Implement new rules of definitions
[33mcommit d223e3215aed6a63e5fac85a695db9e2ee7af1d7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 18 02:36:39 2019 +0100
Don't increase line position when increasing indent
[33mcommit 47830a059b26edfddd809de87a7ef608e1a44616[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 18 02:25:52 2019 +0100
Only dedent if non-whitespace character encountered at lower indentation
This is done using a boolean. After every newline check if the last
one was a newline, indicating an empty line.
[33mcommit f11fc850b6d63ae7da76fdd1810090d62d61814e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 18 02:07:30 2019 +0100
Fix indentation rules in parser
Still need to deal with empty lines in code blocks. We don't want to
insert a dedent or indent if the indentation remains unchanged, even
if there are some empty lines in between.
[33mcommit 52e3f922842c60bc7c32651795ae6c762397fd50[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 22:06:40 2019 +0100
Add indent and dedent rules to lexer
Still a bit buggy, but don't have time to fix it at this moment.
Aside from the implementation, the concept however seems to be sound.
[33mcommit 4ec92cecf8c80f120daef1020b2c4e922fd3b3a5[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 21:54:28 2019 +0100
Use peek instead of next and passing current token in lexer
This is more elegant, and reflects the structure of the parser.
[33mcommit 693c5b47ce4694e76e4537bab4bb822352520cba[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 21:39:29 2019 +0100
Expand lexer to coincide with grammar and add code comments to grammar
Code comments are now ignored by the lexer
The to arrow has been removed.
[33mcommit 3b27b9994e55ae8b208fe8a09a070df580e6a406[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 19:32:22 2019 +0100
Finish Using AST
Should still clean up the operation module, as it has become very
bloated.
[33mcommit daa6a35fd72c53fc4c9d37f26562ba0ef780d1c7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 19:13:36 2019 +0100
Start using AST instead of Node
[33mcommit 0370cc3ac14a983ddd45b6e045572e6c782c88ba[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 16:20:54 2019 +0100
Use typealias for Token Position Peekable
[33mcommit 20f29c0dbc4fa0e9b060e1e9befcf2b77f7d322f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 14:58:12 2019 +0100
Use default generic in ParseResult
[33mcommit 91e6de4c6a208ee1d6b976703d3a0de98d6793bf[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 14:22:47 2019 +0100
Move core language definition to desugarer
Create empty interpreter
[33mcommit aff913f83eafb3c70d6b1fb402e4f94090de4924[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 13:40:31 2019 +0100
Expand documentation
To make more explicit the ideas of the language.
This will also become important when building the type checker.
[33mcommit ede4443ae6776506819af047c337b21150a3bde6[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 17 13:32:30 2019 +0100
Expand documentation
To make more explicit the ideas of the language.
This will also become important when building the type checker.
[33mcommit ecd6741118d7c579bb89c7477ce0e45e2d08b96c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 16 15:27:49 2019 +0100
Remove 'from' keyword
[33mcommit 782d7c46bae38f24fcafffbb00e8da7359a73718[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 16 14:19:14 2019 +0100
Add missing keywords and symbols to lexer
[33mcommit bf36208d61f80d4d45f3b18949496202cb00a55e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 16 14:10:48 2019 +0100
Add constructor to grammar
[33mcommit d7a33f91f27faf2b420b71d46b1e6f0c05f5bd88[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 16 12:51:56 2019 +0100
Use structs with named parameters instead of tuples
This increases the readability of the parser, and decreases the
likelihood of mistakes being made.
Also remove the indentation in the parser, which is no longer needed
there.
[33mcommit b0fdf2fe0b8dcd5ceca877b678a598ee7cba2722[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 16 11:23:46 2019 +0100
Switch to using structs in core to avoid confusion
[33mcommit 1432595325d3b588b0436150a07fac7c67e110f8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 15 23:12:29 2019 +0100
Add 'isa' token, node to parser, and node to core language
* Start implementing indent rules in lexer and simplify block to only
deal with indent and dedent.
[33mcommit 4ebd998e93145b1068a964d8a61ea5d541539b48[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 15 21:54:45 2019 +0100
Add dedent token
This can be used to detect increased and decreases in indentation to
mark the end and start of code blocks.
TODO actually use token
[33mcommit e896b28750d7f8b0ce2acf2f81a111a9c55d36c3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 15 21:42:38 2019 +0100
Add debug printing of parse trace
I realise now that skipping of indentation should not be done in the
parse block. Instead, we somehow need to check the indentation at the
start of every parse function. Depending on the context, the indentation
should be either 0 (an inlined expression), or 0 or greater if they
are a line.
[33mcommit ec8ea0889e357d995e02528f55e7410307882bd9[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 15 19:11:12 2019 +0100
Fix indentation logic of code blocks
The fix was found by cloning the iterator and looking ahead at the next
line.
* If the next line is only indentations followed by a newline, skip
empty line.
* If next line is 0 or some indentations followed by a token that is not
newline, check that indentation on next line is equal to indentation
of do block. If less, end of do block. If more, return error.
In both cases, first move the iterator forward by one to skip the
newline token on the current line. We always want to do this, whether we
exit the block or stay in it.
[33mcommit e036be4ac5f2fb66f4b3d687aebecca329436927[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 15 12:15:26 2019 +0100
Fix order of operations
Can now also handle an uneven number of operations.
[33mcommit 95b04ab066c23afe3c77752370cade5ac27027b3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 15 12:02:53 2019 +0100
Modify order of operations
Fix order of operations (though it still can't handle an uneven chain
of operations of the same level).
from weakest to strongest:
* binary-logic and equality
* comparision
* addition and subtraction
* multiplication and division
* power and modulus
* unary operators, constants, and expressions
[33mcommit fc784d4cff2f3b3df1b752c83e00ede70d1d272f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 21:59:21 2019 +0100
Separate relation from other binary analysis
This is because this operation is not reflective. Furthermore, this
allows us to change relational operations as such:
if (a < b < c) {
// code here
}
The smallest should always be on the left in chained comparisons,
so we may not have:
if (a > b > c) {
// code here
}
This is to prevent confusion. The type checker should ensure this.
As such, the desugarer will only only check if the right side of the
comparison is a comparison itself.
[33mcommit a23a87bfb36bc367a7fd0daabd884f92365157cd[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 21:14:18 2019 +0100
Update grammar of anonymous functions
[33mcommit 3bfeb16cb323b6729cc418261330234a2cc843e8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 21:07:06 2019 +0100
Add type declaration to grammar, and type rule
A type is now either an id, a tuple of types, or a mapping.
[33mcommit 0a6964d1ad1ae678367a36a0b6207323b438e781[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 20:36:38 2019 +0100
Add some basic desugar rules
Type checking should take place before the desugar stage. This:
* Improves the quality of type error messages
* Prevents information loss, which happens during the desugar phase,
from taking place before the type checking has taken place.
As a sidenote, Haskell also has the type checking stage take place
before the desugar phase.
[33mcommit 9c639550fe7cfdb4ad685d613189726ebe2aff4f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 18:40:00 2019 +0100
Create basic front-end framework
[33mcommit 9bf1418022a5b73e2ffce36271e37584e70c050d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 18:19:29 2019 +0100
Create core language
[33mcommit 6e6e45f30221c5fa966bfe4795c971a96edf010b[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 16:47:04 2019 +0100
Remove unused imports
[33mcommit eeece8e9327c3244c73bad9c0ba28202d0267606[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 16:45:22 2019 +0100
Fix
[33mcommit f06e67c8288cd4b977d07a193be9a8d1e7512f21[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 14 16:38:09 2019 +0100
Only a decrease in indentation marks the end of a block
* blocks can have as many newlines. An indentation decrease marks the
end of a block
* Fix order post operator
* Remove module imports, this will be re-added later
* Remove unnecessary ind parameter from check_next_is! macro
[33mcommit b07fe84c7a71e5b5c8d12c89046cf41ed0e1e3de[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 13 12:40:01 2019 +0100
Store current token upon next_or_err macro invocation
This means that the error message will show a stack trace with positions
that reflect the call trace of the parser.
[33mcommit 0e774f0450caf42a46767f571273d9aa677717ac[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 12 20:55:47 2019 +0100
Add custom error messages
This is more informative than just stating that expected the first of
the possible set of tokens.
[33mcommit 81e18c0594d21187aad2999f6588a1f68b1e5cf9[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 12 20:38:23 2019 +0100
Add current position at each position it stack trace
[33mcommit 1f75516611f8589abafafda3e58df1652fc23588[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 12 18:05:34 2019 +0100
Use get_or_err macro in remainder of parser
* Create get_or_err_direct macro for situations where we don't want to
box the Node
* Integrate indentation direct into result, so was pass OK with a tuple
with an Node and an indentation. We don't pass an indentation when
we return an error as this doesn't matter. As an added bonus, these
greatly reduces the verbosity of the parser.
[33mcommit 442b3f39225ee9e027020c5c3649f6d0bb875324[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 12 12:20:32 2019 +0100
Create get_or_err macro and start implementing macro
This prevents deep nesting of match statements. Every element is
evaluated and the Result is matched directly in the macro, preventing
nesting.
[33mcommit e91cb570f6152cc1f026c46661658970dfa4c042[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 11 18:50:28 2019 +0100
Fix long lines in source code
[33mcommit 81120258915a92836db5d73fc7b00d6c75fa7ae9[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 11 18:35:07 2019 +0100
Successfully implement error messages
[33mcommit 63b4c9efce9a5dad5b8d92f1c14f0975fc5d36bc[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 11 17:02:17 2019 +0100
Create check next is token macro
[33mcommit e05d3ad1e69bf79b2cb966394df012bb2d959239[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 10 18:59:48 2019 +0100
Use ParseResult in parser
Some type errors still present.
[33mcommit 116b793e1a69d8bbe03f8639e0d4380465dac8e9[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 9 22:20:13 2019 +0100
Continue using TokenPos
Still need to add it to a few locations.
[33mcommit 9b0f82dcebffcf03eebc2d8d383ac2e3bf041b2a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 9 21:32:19 2019 +0100
Create ParseError and use it in Assignment
[33mcommit e40939a8f3cfbc9fd5fa171f6032d3963daae29d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 9 19:43:03 2019 +0100
Implement anonymous function parsing
* Remove loop test
[33mcommit 884d768a923d59363a555bcde381e548ad9e3d4c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 9 19:26:40 2019 +0100
Use if instead of debug assert equals
Most debug assert equals changed the state of the code, meaning that
production code would behave differently.
[33mcommit cd0366ce7e10ee23e4615c03b3572338ea3d8f4f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 9 17:24:25 2019 +0100
Add anonymous function to grammar
The idea is that the type checker only checks the general structure of
these functions. Therefore, we need dynamic typing as well.
Also convert panic messages to error messages
[33mcommit 72c7272e4e9ff1e8c1c9df7d70c9d2e87cdfbdb1[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 9 17:14:53 2019 +0100
Simplify structure of parser
No more nested modules.
[33mcommit a740b1259652b383f28d90aab72ce506d348eeb1[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Wed Jan 9 11:28:30 2019 +0100
Add `from` to grammar
This may take anonymous functions.
We should, however, consider that functions also may, in the current grammar, also return anonymous functions. This means that it is impossible in certain to type check functions and their return types (we want static type checking). This should be looked at.
[33mcommit 36472e9cf6780f3e593f3c22ca24cdf924b3644f[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 22:32:49 2019 +0100
Remove capitalisation of true and false in grammar
[33mcommit 9aa723703a6e3b9b098d85aa2b9bf1344da15617[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 22:16:21 2019 +0100
Make expression after return optional in grammar
[33mcommit a33ac03188a608cdf3c0f9eef86ddf772c1463d0[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 21:48:33 2019 +0100
Change assignments to assignment
[33mcommit 283be196eea7366ea86eaa2fbdeaadf5dd7e0a7a[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 21:47:56 2019 +0100
Improve readability of grammar document
* Remove `loop` keyword, as it doesn't fit the mathematical theme of the language.
* Remove useless distinction between expression and maybe-expression. Nothing can be guaranteed to be an expression till type checking.
[33mcommit 108642da3d3780717e6060135ab43b58a40f5572[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 21:13:38 2019 +0100
Fix e-notation in grammar
[33mcommit baf654ced0dd5d82fb9ddc3a87b4d56c3d901456[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 21:11:58 2019 +0100
Fix order of operations
Operations that result in a boolean are done last now.
[33mcommit 39e5ce51841de697047482fb48f495cba52fbaa9[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 20:59:11 2019 +0100
Change usage of `util` and `private`
* `util` means static inside class
* `private` means only visible within class
Global mutability is not possible in the current model, which is what we want. In future more extensive documentation should be written to distinguish between the four module types.
[33mcommit 82bcb4af96bfaa5b5103d2cfa52aabb5eb0e85f6[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 20:59:04 2019 +0100
Change usage of `util` and `private`
* `util` means static inside class
* `private` means only visible within class
Global mutability is not possible in the current model, which is what we want. In future more extensive documentation should be written to distinguish between the four module types.
[33mcommit e7fd8d5831b6189e2e902d5c3f8774ed4a1081b6[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Tue Jan 8 20:16:10 2019 +0100
Fix indentation in grammar.md
[33mcommit 47082a7e90f1272b7cb466e0c7ff77aa2b576045[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 8 20:14:04 2019 +0100
Add type and util to grammar
[33mcommit 6a47d3575a3f2925844811ffe8c42a735446d378[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 8 18:02:35 2019 +0100
Attempt to fix logic of do block
There still seems to be something wrong, can't figure out what exactly.
[33mcommit 94ab110aff7075e20e0267871a80be5e0b13a29a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 8 16:53:52 2019 +0100
Fix logic of do blocks and when statements
See the changes in the grammar
Function definitions still seem to be buggy however. If a function body
is a do block all functions definitions that follow seem to be ignored.
[33mcommit 0a577b90019b30558459954ed0c75813c63cea4a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 8 15:45:42 2019 +0100
Add classes
Classes can be instantiated as objects. If a module does not contain
a class, it means that its functions can only be called statically.
[33mcommit bba47ef16ad4cf55a7b7ac0c44dfe3b855dbaefb[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 20:30:37 2019 +0100
Use tuple or double pattern matching instead of nesting
This can be done in more locations
[33mcommit a9c23de40c9ed907e352f2cad94674cbe5dbd930[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 20:00:24 2019 +0100
If if let to check for double newlines
[33mcommit dc806f54f32398c7b3e567b8b48e6d9ea806730a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 19:53:24 2019 +0100
Use if let where possible instead of match
* Remove distinction between unrecognized token and none in error
messages. Later down the line it would be nice to append to error
messages, much like a stack trace. Therefore, error messages should
be short and to the point.
[33mcommit fa9eaeaf07b50955f2c1deb8eb20cb5f7a5ffc2f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 19:02:17 2019 +0100
Use wrap macro for boxing
[33mcommit ff745635f8158cae2682165f54b478f8d6e277a5[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 17:52:57 2019 +0100
Clean up tokenizer
[33mcommit e8630a5d54fdac7bd64aef64a5624e2a78c7655d[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 16:53:50 2019 +0100
Add module imports
[33mcommit 7f8246f273a99328d89d5121afbf402967ad6fed[m
Merge: 6c2d086 d5f07f4
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Mon Jan 7 16:36:42 2019 +0100
Merge pull request #1 from JSAbrahams/functions
Add functions to parser
[33mcommit d5f07f473d9cde52da8c67a7d883362f05c8d61b[m[33m ([m[1;32mfunctions[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 16:35:27 2019 +0100
Add newlines to end of files that lacked newline at end of file
[33mcommit acf2ffaca1b62069a89f0250a30afca4dbdb1d91[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 16:33:49 2019 +0100
Remove required 'is' after 'when' expression item
The parser thinks it is an equality expression if there is an `is` after
an expression, causing the `when` to break.
[33mcommit aafd2445350539c448610e3f551426751c7a5ce4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 16:07:59 2019 +0100
Add direct function calling
[33mcommit 4ccbced289bb60c2de7667986cd27e23249062f6[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 15:36:29 2019 +0100
Complete parsing of function definitions
[33mcommit 88acec9c74632860d2587b39415ce82991e20cff[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 01:27:13 2019 +0100
Fix tuples test
[33mcommit 4bbc89fdc04ed921a518f256bab3e11c989c3cd7[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Jan 7 01:26:42 2019 +0100
Further expand function definition
* Still flawed, need to fix recursive implementation of static-tuple.
[33mcommit fb05a7f546cfabf0b76978c6756eca8ae9fa38d0[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 21:32:50 2019 +0100
Add parsing of function calls
* Added scaffolding for function definitions, not yet complete
[33mcommit 53a8bbe2c7fd5c274a832080e03e51f47a571b74[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 21:01:14 2019 +0100
Add function definition to program
[33mcommit 6f366ee5dd5c408325ec8393137df22461e34f78[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 20:42:08 2019 +0100
Add parsing of function calls
[33mcommit 4c98f5153b20bb9b22c3cad254748b9404632709[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 20:20:56 2019 +0100
Add Fun def and call ast node types
[33mcommit 42b90ae212750062e72034abd35d4b149ba6b69a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 19:49:09 2019 +0100
Add function and tuple to grammar
* Implement tuple in language
* Add maybe-expr to distinguish between cases where we want an
expression and a statement.
A maybe-expr is used in a situation where an expression is required,
but we cannot know in advance whether it will be an expression or
statement without type checking the program.
expr-or-stmt may be used when it does not matter whether it is an
expression or statement.
[33mcommit 043fdf90567e7ca02ddf8d5e5d919ab964b04f37[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 17:33:31 2019 +0100
Add tuples and functions to grammar
[33mcommit 6c2d0869059094b4eea2458d7f5655201642991d[m[33m ([m[1;32mlexer-pos[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 16:36:32 2019 +0100
Add indentation rules to grammar description
[33mcommit 82e6b3a0724b5660f2f456795e1ddf615bc9b173[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 16:28:24 2019 +0100
Duplicate logic of do block in when statement
[33mcommit cc60394d5e1280f15595aeb6f57885e15bf3e18f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 16:22:54 2019 +0100
Add unless to control flow expression
[33mcommit 6f342b52e543828804e0354193234cf4db36e707[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 16:20:44 2019 +0100
Add statement-or-expression-or-do to grammar
This is useful for control flow statements.
[33mcommit e2ffc919632cd4c173000797377ab3e0ac9ed216[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 15:30:09 2019 +0100
Reorganise project
* Move expressions and statements to own modules
* Move integration tests to tests directory, including required
resources
* Move unit tests to test module within respective modules
[33mcommit 082e00d55bf0a3311b7654bd27389afd71baa422[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 14:38:59 2019 +0100
Use debug assert equals in production code
[33mcommit d9e960d822d0075ef6b523cceaa5bb530a4c5207[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 14:26:11 2019 +0100
Double newline causes exit of do-block, not error
[33mcommit 4bf72bab196faf5a1c252c10e9890a19286fa1b4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Jan 6 14:13:54 2019 +0100
Implement new grammar
* Postfix if and unless statements
* Implement distinction between control flow expressions and statements
[33mcommit 0604a0cadaf0f952c784c134a48ee7b578b06792[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 5 19:02:53 2019 +0100
Add source files and tests for parser
Need to fix ambiguity in if statement, and should implement new grammar.
This includes the new distinction between statements, expressions, and
the postfix if statements. Source could should closely map to grammar
documentation.
[33mcommit aa5a01083f5abaf018f51bcdeca68c184e8c1aa4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 5 19:01:22 2019 +0100
Don't assume e in lexer means enum, may be identifier
[33mcommit 498427a95e05c43bd5c6dd03239432e01a3e4620[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Jan 5 18:59:39 2019 +0100
Change grammar to add postfix if
* Make clear distinction between control flow expressions and statements
However, control flow expressions may still be statements, so the
type checker should verify this.
* Assignment to expression is now more explicitly a statement (this was
already the case however).
* postfix if (and unless) are statements.
[33mcommit a635bbdb64ddb40e0688429618dde99665f77ed5[m[33m ([m[1;32mparser-lexer-integration[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 18:36:43 2019 +0100
Use macros in section that parses arithmetic expressions
This significantly reduces the amount of lines.
[33mcommit 79caf1649665e9550bc026fb374dc2db0b35e3ae[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 18:14:46 2019 +0100
Add assigning to expressions (without let)
This could allow us to add tuples later. The type checker should
check that the assignment is valid either way.
* Add simple correct program and test case.
* Add parse of while (which was not accounted for).
* Fix logic of checking newlines in do blocks (logic copied to when but
not tested). Now:
- A boolean is used to denote empty lines instead of newlines, which
is more indicative of what we are looking for. Previously we look for
newlines, but this is confusing as every statement and expression
should end with a newline.
- Again, after every statement or expression is evaluated, a check
is done to verify that it is indeed followed by a newline (which is
then discarded).
- If at the end of a file, no check is done for a newline or
proper indentation.
[33mcommit 2d7aec11e152c19978061d5c8517d43f330eaedd[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 15:16:31 2019 +0100
Allow capital E in e-number
[33mcommit d3a602a26ca22d67ab390c75ce014075d529dbc4[m[33m ([m[1;32mparser[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 14:23:12 2019 +0100
Update rules of a do block and when
The rues are as follows, in do (and in when expression):
- Each statement or expression must be followed by a newline, unless
there are no tokens left, signalling the end of the file.
- Indentation may not be increased.
- A double newline may not be used (to avoid confusion about
indentation levels)
- Indentation may only be decreased after a newline, signaling the end
of the do block.
* Improve code readability and quality
* Use shorter identifiers
[33mcommit 04846f3a4af73c7cfa044a938c9073a0b02504bb[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 13:22:43 2019 +0100
Add indentation checking to do blocks
[33mcommit fffa133f4589c613c50c4fc70896e367234632a3[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 12:42:29 2019 +0100
Decrease indentation after do block
* Fix parse_bracket function in expression
[33mcommit c3c2cd0ecdfebb793b5a85bdeef0c3c82882271f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 12:14:28 2019 +0100
Allow do block after newline in brackets
* Add some more comments with the grammar to the source for clarity
[33mcommit d77b4186895a1971a846ae8e3e987ada9cc10871[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 12:02:16 2019 +0100
Add 'donothing' keyword
[33mcommit 3e442dc8f7ee8d82b8401fa83abcccf31f1e3b55[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 12:00:53 2019 +0100
Move expression and statement functions to separate files
* allow expression to reduce to do block if newline in brackets
[33mcommit 7c3ced826c2b4cbe056dd0e77ea3d5337b7e7e7f[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Jan 4 11:23:58 2019 +0100
Change number system in actual lexer and parser
* Num split up into real, int and enum
* Strings now stored instead of float, in anticipation of
arbitrary precision
* e-nums added to language
* lexer structure simplified, no need for errors in most situations
[33mcommit 549ad67d9a7c4033cb636533f4cc51287d92a8aa[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Jan 3 20:48:51 2019 +0100
Make number explicit in grammar
[33mcommit 6f5a153786b7c3f6373651455a072e81687ac176[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Jan 3 20:44:11 2019 +0100
Add possible digit to e-notation
[33mcommit 0bab84ee8466d19eb64d4d54cbfdf590e93f4993[m
Author: Joël Abrahams <JSAbrahams@users.noreply.github.com>
Date: Thu Jan 3 20:43:22 2019 +0100
Update grammar and add e-notation
* Simplify certain names
[33mcommit 33dd0ae174d36f4fff37aecf59edbf9f53e8ed88[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 3 17:07:46 2019 +0100
Add when and loops to control flow
[33mcommit 791e37945dbb5c781c73a0dcba3b769d56ae48d4[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 3 16:32:15 2019 +0100
Split parser into multiple files
[33mcommit fd5d0bcb3c202d22f1c7107cf1ec3e670077863e[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 3 15:44:17 2019 +0100
Simplify grammar
[33mcommit 165278a27e77585e4f1b3143a2fdfabc3d5ba740[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 3 15:10:16 2019 +0100
Make more explicit control flow expression
[33mcommit 77b9fc21c25ca2a77e2471c011a1922e9f8f249a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 3 15:05:10 2019 +0100
Add assignment to language
[33mcommit a8da6a506fc35eb8746220961858dbfeec3bde35[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 3 14:37:20 2019 +0100
Add if statements
[33mcommit 16d41d1caad4282912e7048fd4f6ad65c11f00cc[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Thu Jan 3 14:26:29 2019 +0100
Add parsing of arithmetic expressions
[33mcommit 63924b776e5fe6fc90ecd47e0a7b33bc31c609c9[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 2 18:57:29 2019 +0100
Mimic grammar documentation in parser source code
[33mcommit 7a15d727b0515dc43df604f378638c2f1ea4b0f8[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Wed Jan 2 16:33:17 2019 +0100
Add indentation to parser
[33mcommit 3db63fe8e930d0587244cbdf62d0452f8e756bff[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Tue Jan 1 16:57:04 2019 +0100
Create skeleton for recursive parser
[33mcommit 102e8b49bd1782a6f2839bbe601c2fc7b5404b1c[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Dec 31 19:26:35 2018 +0100
Create parser skeleton
[33mcommit 5aa0ae3647a67ed61fa3f2ebae57a5a912071b3c[m[33m ([m[1;32mlexer[m[33m)[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Dec 31 18:43:12 2018 +0100
Only peek when iterating so characters aren't skipped
[33mcommit 22e8b7bc36f8560e1763f7688260718dcf645d42[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Mon Dec 31 17:21:43 2018 +0100
Add test for multiple operations
[33mcommit 5c6ad63383b41a9fe7fe7cc7ca13826058e8b186[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Dec 28 16:05:12 2018 +0100
Simplify number lexing
[33mcommit 5bb4253b195fcfb852fe07c484df654a1ca4e66a[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Dec 28 15:39:46 2018 +0100
Add tests
[33mcommit 12fbba59f2aec93989cb456e9f58559604e7dbb6[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Fri Dec 28 13:55:07 2018 +0100
Return an id not string in get_id_or_op
[33mcommit 941c1c75f40a2983a2510ede5ef761d4e3afbefd[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Dec 23 21:11:29 2018 +0100
change project name to my_lang
[33mcommit f166e6834bf67a4ce5bfb879fba6f5d61fd19358[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Dec 23 21:11:19 2018 +0100
add loop keyword to grammar and remaining keywords to lexer
[33mcommit f50b1a9eeb89f756089a2f504aea77cfba4b473b[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sun Dec 23 20:52:16 2018 +0100
Add error messages to lexer
[33mcommit 0c88e689305e61d0e332d5429bfdf986ca350f85[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Dec 22 22:16:59 2018 +0100
Create basic lexer
[33mcommit 4a18f15e05597ec2717788b6265d6cf59f946b57[m
Author: Joel Abrahams <abrahamsjo@gmail.com>
Date: Sat Dec 22 09:45:42 2018 +0100
Initial commit