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

Create a log of the grammar paths take an attach as metadata to top of result #184

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

kanaka
Copy link

@kanaka kanaka commented May 11, 2018

This proposed change keeps track of all the paths take through the grammar during parsing. I'm using instaparse with this change to analyze a corpus of test cases and then use test.check to generate new tests cases that are probabilistically "similar" to the corpus. I use the path log to create a weight file for my test.check generators.

I don't necessarily consider this in final form but it's currently working for me so I'm creating this PR to get feedback/discussion.

I know that performance behavior of instaparse is critical. Do you have performance tests that I could use to test this change to characterize what impact if any it has on performance?

When a Tramp record is created by make-tramp, the grammar tree is
walked and the get-in style path is attached as metadata to each node
in the grammar tree. Also a new :path-log atom is added to the Tramp
record.

In push-result (during parsing) the current path is retrieved from the
metadata of node in the grammar tree being processed. The path is then
added to the :path-log of the tramp object.

When the final result is returned, the :path-log from the tramp object
is added to the metadata of the top of the result returned.
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