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

Cannot parse input, that has output actions which are followed by any other action (e.g. z<a>.c<f> or z<a>.0) #2

Closed
st22nestrel opened this issue Jun 20, 2023 · 2 comments

Comments

@st22nestrel
Copy link

st22nestrel commented Jun 20, 2023

My problem with your tool is, that it cannot parse input, that has output actions which are followed by any other action.

For example, it cannot parse something like this:

z<a>.c<f> | z(c).c<e>.P2 | a<z>.z(b).0

Outputs error:

Parse failed:
1:5 → z<a>.c<f> | z(c).c<e>.P2 | a<z>.z(b).0
          ↑

When I remove c action, parsing fails again here:

z<a> | z(c).c<e>.P2 | a<z>.z(b).0
Parse failed:
1:17 → z<a> | z(c).c<e>.P2 | a<z>.z(b).0
                       ↑

And after removal of P2, I still cannot parse, my pi calcul example contains yet another action after output action:

z<a> | z(c).c<e> | a<z>.z(b).0
Parse failed:
1:17 → z<a> | z(c).c<e> | a<z>.z(b).0
                              ↑

This error makes your tool unusable for me to reduce more complex pi calcul examples, as I showed above.
Hope you can fix it.

Also, just this is not a bug, just a suggestion to add to readme, that you have to type end of input character (ctrl+D on Linux), so it starts to parse input. This was not hard for me to figure out, but it might help some people who don't yet know how to type end of input...

@nickng
Copy link
Owner

nickng commented Jun 20, 2023

Hi,

Thanks for the report. You're absolutely right, the tool doesn't support actions followed by output actions. That is because this implements asynchronous Pi calculus (Honda, Tokoro 1991) [paper], which doesn't have actions following ouput because it's asynchronous. But you can express synchronous Pi calculus with asynchronous Pi calculus which is what the paper discusses.

that you have to type end of input character (ctrl+D on Linux), so it starts to parse input

You are welcome to contribute 🙂

@st22nestrel st22nestrel closed this as not planned Won't fix, can't repro, duplicate, stale Jun 20, 2023
@st22nestrel
Copy link
Author

st22nestrel commented Jun 20, 2023

Hi,

Thanks for justification. It's my bad, I didn't notice that your tool is specifically for asynchronous Pi calculus. I was searching through github for tool that can reduce any Pi calculus example in every possible way, in order to better understand reduction, so I can pass my university course 😄 . Thanks again for justification.

that you have to type end of input character (ctrl+D on Linux), so it starts to parse input

You are welcome to contribute 🙂

Ok, I will adjust readme.

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

2 participants