From 5583dfa5e4a25bd9b7838fab694e0e800ea80898 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Fri, 6 Nov 2009 17:26:17 +0100 Subject: [PATCH] parser: Solve last shift/reduce conflicts --- src/cfgparse.y | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/cfgparse.y b/src/cfgparse.y index f212826e..8d980ced 100644 --- a/src/cfgparse.y +++ b/src/cfgparse.y @@ -368,7 +368,7 @@ new_container: ; workspace: - TOKWORKSPACE WHITESPACE NUMBER WHITESPACE TOKSCREEN WHITESPACE screen workspace_name + TOKWORKSPACE WHITESPACE NUMBER WHITESPACE TOKSCREEN WHITESPACE screen optional_workspace_name { int ws_num = $3; if (ws_num < 1) { @@ -380,7 +380,7 @@ workspace: workspace_set_name(ws, $8); } } - | TOKWORKSPACE WHITESPACE NUMBER workspace_name + | TOKWORKSPACE WHITESPACE NUMBER WHITESPACE workspace_name { int ws_num = $3; if (ws_num < 1) { @@ -392,10 +392,14 @@ workspace: } ; +optional_workspace_name: + /* empty */ { $$ = NULL; } + | workspace_name { $$ = $1; } + ; + workspace_name: - /* NULL */ { $$ = NULL; } - | WHITESPACE QUOTEDSTRING { $$ = $2; } - | WHITESPACE STR { $$ = $2; } + QUOTEDSTRING { $$ = $1; } + | STR { $$ = $1; } ; screen: