-
Notifications
You must be signed in to change notification settings - Fork 15
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
QUESTION: Does everparse produce actual parsers? #84
Comments
Okay I found that it is in fact |
The general philosophy of EverParse is to minimize the number of copies done by the parser. So, usually, one runs a validator and then uses EverParse's accessors to read relevant parts of the input directly from the input buffer. Additionally, in 3d you can augment the validation code with parsing actions that build some parsed representation of the input format. https://project-everest.github.io/everparse/3d-lang.html#actions |
Great! Thanks for the reply! Okay, I see, it makes sense. And, if I understood correctly, the same apply to write data to a buffer: one has to use different functions to write different parts of the data, right? I will check the actions of 3d, that seems interesting thanks! Also, are you pushing 3d instead of quackyducky because one can do the same things (and more?) with 3d? Thanks again :) |
Not necessarily pushing 3d over qd. They have different roles. If you are trying to parse binary formatted data from an existing C application, then 3d is a good fit. If you're trying to use verified parsers within a larger F* project, then qd is likely a better fit. |
Thanks a lot for your reply :) That makes more sense now 👍 I am trying to write an example and I still have something I don't know: I made a toy an example with this spec:
I am now trying to write a simple program that serialises one of those and parses it back, just to demonstrate the capability of the tool :) How should I write the Thanks a lot for your help :) |
Hi everyone, hi @tahina-pro,
I read the papers and am interested in the parser/serialiser pair generation of everparse. In the README.md it is also mentioned that this project is about producing verified parsers from 3d message format descriptions.
However, in the documentation, and in the code I managed to generate using the
everparse.sh
script, I can only find validation code.Am I missing something?
Thanks a lot for your reply :)
The text was updated successfully, but these errors were encountered: