mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-11-16 21:32:27 +02:00
b2/: make the match name after "break" and "continue" optional
If the name is omitted, we jump back / out of the current block.
This commit is contained in:
parent
107280b6d5
commit
694d48b56a
2
b2/SUBST
2
b2/SUBST
@ -8,7 +8,7 @@ BAR=x /* BAR= wouldn't be syntactically correct. We need a non-empty value */
|
|||||||
FOO=(*)(?) {
|
FOO=(*)(?) {
|
||||||
BAR=$BAR$2
|
BAR=$BAR$2
|
||||||
FOO=$1
|
FOO=$1
|
||||||
continue FOO
|
continue
|
||||||
}
|
}
|
||||||
BAR=x(*) { $=$1 } /* remove the "x" */
|
BAR=x(*) { $=$1 } /* remove the "x" */
|
||||||
|
|
||||||
|
@ -620,6 +620,10 @@ block:
|
|||||||
$$ = subst_end();
|
$$ = subst_end();
|
||||||
else if (!strcmp($1, "ignore"))
|
else if (!strcmp($1, "ignore"))
|
||||||
$$ = subst_ignore();
|
$$ = subst_ignore();
|
||||||
|
else if (!strcmp($1, "break"))
|
||||||
|
$$ = subst_break(NULL);
|
||||||
|
else if (!strcmp($1, "continue"))
|
||||||
|
$$ = subst_continue(NULL);
|
||||||
else
|
else
|
||||||
yyerrorf("unknown keyword \"%s\"", $1);
|
yyerrorf("unknown keyword \"%s\"", $1);
|
||||||
}
|
}
|
||||||
|
@ -284,6 +284,8 @@ struct parent {
|
|||||||
static const struct subst *resolve_jump(const char *name,
|
static const struct subst *resolve_jump(const char *name,
|
||||||
const struct parent *parent)
|
const struct parent *parent)
|
||||||
{
|
{
|
||||||
|
if (!name)
|
||||||
|
return parent->sub;
|
||||||
while (parent) {
|
while (parent) {
|
||||||
assert(parent->sub->type == st_match);
|
assert(parent->sub->type == st_match);
|
||||||
if (name == parent->sub->u.match.src)
|
if (name == parent->sub->u.match.src)
|
||||||
|
Loading…
Reference in New Issue
Block a user