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

Enriched and unified syntax for reduction strategies #85

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

Conversation

herbelin
Copy link
Member

@herbelin herbelin commented Feb 9, 2024

In particular, the proposed syntax has:

  • pattern selection for all reductions
  • support for fine-tuning iota by enabling/disabling specific constructor names
  • support for referring to unfolding databases as in Added new CEP Symbol Sets #84

Rendered here.

red_expr ::= red_name pattern_opt flags_opt
red_name ::= "cbv" | "cbn" | "lazy" | "simpl"
pattern ::= CONSTR
flags ::= "with" head_flag_opt flag_list unfold_bases
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is head_flag separate? Is there something wrong with writing eg with beta head?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't remember if there was a technical reason or just because I was thinking at head as a modifier of a different nature than the flags.

flag ::= "beta" | "iota" | "zeta" | "match" | "fix" | "cofix" | "delta"
unfold_bases ::= "+" unfold_base signed_unfold_base_list | signed_unfold_base_list
signed_unfold_base ::= unfold_base | "-" unfold_base
unfold_base ::= "[" QUALID_list "]" | IDENT constraint_opt | module "(" QUALID ")"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this supposed to be

Suggested change
unfold_base ::= "[" QUALID_list "]" | IDENT constraint_opt | module "(" QUALID ")"
unfold_base ::= "[" QUALID_list "]" | IDENT constraint_opt | "module" "(" QUALID ")"

?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unrelated?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, the usual bad habit of starting a new branch on top of the previous one.

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.

2 participants