-
Notifications
You must be signed in to change notification settings - Fork 32
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
Separate imports of the same file result in multiple "instances" #151
Comments
I created a pull request with a small, somewhat untested simple fix at #152 for a starting point. If you approve of the base concept, I will add tests and update anything else as necessary. |
@Tiger-Tom Thanks for the contributions! I expect to find time for the review during the next week. |
Looks good as a starting point. Watch out for |
Description
When two grammar files import the same file (lets say
root
importsa
andb
, anda
importsb
), one file (root
) will have a different "version" (root.b
) of the imported file (b
) from the other file (a
,root.a.b
)When the first file overrides a terminal in the imported file, the second terminal should, in theory, use that override (
a.b.B
), however it does not (b.B
)What I Did
root.pg
a.pg
b.pg
Given the above examples, upon constructing the grammar (
parglare.Grammar.from_file('./root.pg')
), the terminals are as such:b.B
a.b.B
I would expect there to be only one,
a.b.B
, as having each import potentially separate makes overriding complex multi-file grammars much more difficult.The text was updated successfully, but these errors were encountered: