Recognize and use "*" (or "[*]") as an abbreviation for 1*.
* src/ltlparse/ltlparse.yy: Recognize "*" as "1*". * src/ltlvisit/tostring.cc: Abbreviate "1*" as "*". * src/tgbatest/ltl2tgba.test: Use the new syntax.
This commit is contained in:
parent
4bde130d38
commit
93c042d0fa
3 changed files with 15 additions and 1 deletions
|
|
@ -283,6 +283,8 @@ rationalexp: booleanatom
|
|||
{ missing_right_binop($$, $1, @2, "fusion operator"); }
|
||||
| rationalexp OP_STAR
|
||||
{ $$ = unop::instance(unop::Star, $1); }
|
||||
| OP_STAR
|
||||
{ $$ = unop::instance(unop::Star, constant::true_instance()); }
|
||||
|
||||
bracedrationalexp: BRACE_OPEN rationalexp BRACE_CLOSE
|
||||
{ $$ = $2; }
|
||||
|
|
|
|||
|
|
@ -226,6 +226,12 @@ namespace spot
|
|||
top_level_ = true;
|
||||
break;
|
||||
case unop::Star:
|
||||
// Abbreviate "1*" as "*".
|
||||
if (uo->child() == constant::true_instance())
|
||||
{
|
||||
os_ << "*";
|
||||
return;
|
||||
}
|
||||
// 1* is OK, no need to print {1}*.
|
||||
need_parent = false;
|
||||
// Do not output anything yet, star is a postfix operator.
|
||||
|
|
@ -469,6 +475,12 @@ namespace spot
|
|||
in_ratexp_ = true;
|
||||
break;
|
||||
case unop::Star:
|
||||
// Abbreviate "1*" as "*".
|
||||
if (uo->child() == constant::true_instance())
|
||||
{
|
||||
os_ << "*";
|
||||
return;
|
||||
}
|
||||
// Do not output anything yet, star is a postfix operator.
|
||||
need_parent = false;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ check_psl '{((!c;b*) & d);e}'
|
|||
check_psl '{(a* & (c;b*) & d);e}'
|
||||
# Example from "Beyond Hardware Verification" by Glazberg, Moulin, Orni,
|
||||
# Ruah, Zarpas (2007).
|
||||
check_psl '{1[*];req;ack}|=>{start;busy[*];done}'
|
||||
check_psl '{[*];req;ack}|=>{start;busy[*];done}'
|
||||
|
||||
# Make sure 'a U (b U c)' has 3 states and 6 transitions,
|
||||
# before and after degeneralization.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue