Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lel interpreter in Python 3 #30

Open
osaatcioglu opened this issue Aug 18, 2017 · 10 comments
Open

Lel interpreter in Python 3 #30

osaatcioglu opened this issue Aug 18, 2017 · 10 comments

Comments

@osaatcioglu
Copy link
Contributor

This is a great project to learn the basics of a compiler. I checked the code and it looks pretty clean and neat. But, it is Node.js. :) So, I think writing an interpreter in Python will help more students/beginners to dive in to the details and learn the basics by reading the code.

If you don't mind, I would like to volunteer to this task. :)

I forked the repo already and started with the baby steps. I hope I can have something tangible within couple of weeks.

@francisrstokes
Copy link
Collaborator

Hi Omer,

That's a cool idea - python 3 is a nice language. I don't think that python vs javascript is a debate worth getting into, but I would like to think that the conventions and patterns used in this project are such that a beginner or student could quite easily follow the code.

That said, I would love to see a python version of the Lel language - please don't hesitate to contact me if your curious about anything or would like input 😄

@osaatcioglu
Copy link
Contributor Author

Haha! I didn't mean to get in to a debate really! I like both equally. :)

Thank you for the encouragement. I am planning to align as much as possible to your conventions and patterns also feature issues to follow the more or less the same development cycle.

If I need help, I will get in touch with you by referring you on my issues. Thanks!

@ProSpartan
Copy link
Contributor

I would like to see this in python, and perhaps other kinds of languages as well.

I myself am currently copying by hand to a closed network that does not have Node.js, yet, but has python and java support.

I look forward to seeing your progress.

@francisrstokes
Copy link
Collaborator

@ProSpartan yes, python is more ubiquitous in environments. by the way, thanks for the fixes in your fork! I merged those into the mainline today. If you have more, please make pull requests - because you didn't make the PR it doesn't put you into the list of contributors (I don't know why, they are still merged from your fork 🤷‍♂️ ), but it deserves to be there.

@ProSpartan
Copy link
Contributor

Thanks. I was planning to merge them into my master branch after I had gone through all the files. After that I was going to make a PR to yours. Just wanted to get an initial pass through and add all the minor fixes at one time.

@osaatcioglu
Copy link
Contributor Author

Hi @ProSpartan and @francisrstokes

I finally feel confident to say the first version of LEL Interpreter in Python is ready. Please check in my repo.
https://github.com/osaatcioglu/Lisp-esque-language

I made it working with Python2 as well as I found it is not that hard to do during the packaging.
I also push to PyPI. You can install it using

pip install lel-lang

and run it by

pylel

Except the extensions (read file sync), I think it should work as it should be. Moreover; I did some extra features in REPL like:

  • automatic encapsulating with parentheses if there is no parentheses in the beginning of the expression.
  • keeping the scope between enters

@francisrstokes I have created a folder named python and put all of my source code underneath. But, I wonder what is the best way to continue. Should we merge it back it in your repo which might require some folder update in node project Or should we keep them separate.

I am equally OK for both options. :)

@francisrstokes
Copy link
Collaborator

Awesome news! Congratulations 😄 I think it makes most sense for these to be under two different repositories. But it would be cool to have them under a single organisation (I've already created https://github.com/Lel-Language and transferred this repo there). If you're interested we can set it up so that you administer the python Lel implementation through the organisation?

@osaatcioglu
Copy link
Contributor Author

Great idea. I will update my repository to have only the Python implementation and also I will rename it to pylel and then I will move it to the organization.

Also, I am thinking that, by having an organization, we could also move the examples and the syntax to a different repository to have a better structure.

@francisrstokes
Copy link
Collaborator

Great idea. Makes sense since they should work uniformly for whichever version of Lel you're running

@osaatcioglu
Copy link
Contributor Author

Cool, we can work on this together. We can even convert the docs to a gh-pages.

Btw, I got the following error when doing the transfer even though I renamed the repo to pylel. I guess, the original name is retained to redirect even when it is tranferred.

Lel-Language already has a repository in the Lel-Language/Lisp-esque-language network

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants