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

Adding a lot of new language bindings #17

Merged
merged 93 commits into from
Sep 23, 2023
Merged

Adding a lot of new language bindings #17

merged 93 commits into from
Sep 23, 2023

Conversation

dabico
Copy link
Member

@dabico dabico commented Sep 22, 2023

Apart from supporting almost 50 languages in total, we also added the following features:

  • Associations between file types and Language enums through extensions
  • Added the Symbol class
  • Each Node is associated with a Symbol
  • Each Language has a collection of Symbol instances
  • Added minimum and current ABI version to Parser
  • Language validation now also checks the ABI versions

In terms of removals, the deprecated Parser methods were removed.

Note: I had to change build.py to make this work.
For some reason, the owner of that repo makes a distinction
between regular and "inline" markdown. I guess the latest version is ok?
Either way we can revert to the old one if it ends up being unusable.
Shame that this has to "ruin" the homogeneity of the build process.
Note: I had to change build.py to make this work.
Again, the source is kept in a "non-standard" directory structure.
But given that many projects seems to be doing this, I don't think
that handling the special cases is an eyesore anymore.
Turns out they don't tag, and we have to track this one by revisions.
A null value would be returned if an extension was not present in the
lookup map, violating the imposed contract.
Only edge cases returned immutable lists. The cases that returned values
from the reverse lookup map were actually mutable, which may hinder the
method's overall usability.
These two static `Parser` methods will be used to enforce language
versioning. As of right now they are not used in the rest of the code.
I think I will update the `LanguageTest` later to use these in checks.
We now also store the:
- version
- number of fields
- number of symbols
A lot of things are not properly implemented, particularly pertaining to
the versioning. Not sure if it's a good idea to offer support for it.
I have no idea how this happened
@dabico dabico merged commit feb8e17 into master Sep 23, 2023
@dabico dabico deleted the enhancement/bindings branch September 23, 2023 08:20
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

Successfully merging this pull request may close these issues.

1 participant