summaryrefslogtreecommitdiffstats
path: root/src/config-bison.y
diff options
context:
space:
mode:
authorjolsa@redhat.com <jolsa@redhat.com>2011-10-21 11:10:51 +0200
committerJiri Olsa <Jiri Olsa jolsa@redhat.com>2012-01-11 19:55:00 +0100
commit363e9f3169f985b1ab2d9b22ffca1f2458581dcd (patch)
tree54fba333a8cc362a97bfad62b0172efd1c110966 /src/config-bison.y
parentc1d9c8ab05abfb83d3ca6d1a3f7d8b6c99c5cb87 (diff)
downloadlatrace-363e9f3169f985b1ab2d9b22ffca1f2458581dcd.tar.gz
latrace-363e9f3169f985b1ab2d9b22ffca1f2458581dcd.tar.xz
latrace-363e9f3169f985b1ab2d9b22ffca1f2458581dcd.zip
error simulation: automation application part
Diffstat (limited to 'src/config-bison.y')
-rw-r--r--src/config-bison.y36
1 files changed, 28 insertions, 8 deletions
diff --git a/src/config-bison.y b/src/config-bison.y
index c9512ac..db1d6bc 100644
--- a/src/config-bison.y
+++ b/src/config-bison.y
@@ -74,7 +74,7 @@ static struct lt_list_head ln_names;
%token ERROR
%token ERR_DO ERR_DIR ERR_RUN ERR_GO ERR_RETURN ERR_N
%token ERR_PROG ERR_ARGS ERR_FILTER ERR_SEQ ERR_START
-%token ERR_SIGSEGV
+%token ERR_SIGSEGV ERR_AUTOMATED ERR_REPLAY ERR_KEEP
%union
{
@@ -347,15 +347,21 @@ error_return: ERR_RETURN NAME '{' error_return_def '}'
}
error_return_def:
-error_return_def NAME '=' VALUE
+error_return_def NAME '=' list_values_comma
{
- if (lt_error_return_ass(scfg, &error_app_return, $2, $4, 0))
+ if (lt_error_return_ass(scfg, &error_app_return, $2, &ln_names, 0, 0))
ABORT("failed to add symbol to return definition");
}
|
-error_return_def NAME '=' VALUE ERR_SIGSEGV
+error_return_def NAME '=' ERR_KEEP
{
- if (lt_error_return_ass(scfg, &error_app_return, $2, $4, 1))
+ if (lt_error_return_ass(scfg, &error_app_return, $2, NULL, 0, 1))
+ ABORT("failed to add symbol to return definition");
+}
+|
+error_return_def NAME '=' list_values_comma ERR_SIGSEGV
+{
+ if (lt_error_return_ass(scfg, &error_app_return, $2, &ln_names, 1, 0))
ABORT("failed to add symbol to return definition");
}
|
@@ -392,21 +398,35 @@ error_go:
ERR_GO NAME list_names_comma
{
if (lt_error_go(scfg, &error_app_go, &error_app,
- strdup($2), 0, 1, &ln_names))
+ strdup($2), 0, 1, 0, 0, &ln_names))
+ ABORT("failed to add go");
+}
+|
+ERR_GO NAME ERR_AUTOMATED list_names_comma
+{
+ if (lt_error_go(scfg, &error_app_go, &error_app,
+ strdup($2), 0, 1, 1, 0, &ln_names))
+ ABORT("failed to add go");
+}
+|
+ERR_GO NAME ERR_REPLAY list_names_comma
+{
+ if (lt_error_go(scfg, &error_app_go, &error_app,
+ strdup($2), 0, 1, 1, 1, &ln_names))
ABORT("failed to add go");
}
|
ERR_GO NAME ERR_N '=' VALUE list_names_comma
{
if (lt_error_go(scfg, &error_app_go, &error_app,
- strdup($2), 0, $5, &ln_names))
+ strdup($2), 0, $5, 0, 0, &ln_names))
ABORT("failed to add go");
}
|
ERR_GO NAME ERR_START '=' VALUE ERR_N '=' VALUE list_names_comma
{
if (lt_error_go(scfg, &error_app_go, &error_app,
- strdup($2), $5, $8, &ln_names))
+ strdup($2), $5, $8, 0, 0, &ln_names))
ABORT("failed to add go");
}