aboutsummaryrefslogtreecommitdiff
path: root/xkbcomp/xkbparse.y
diff options
context:
space:
mode:
Diffstat (limited to 'xkbcomp/xkbparse.y')
-rw-r--r--xkbcomp/xkbparse.y10
1 files changed, 9 insertions, 1 deletions
diff --git a/xkbcomp/xkbparse.y b/xkbcomp/xkbparse.y
index d2b23b0e3..87dd07f20 100644
--- a/xkbcomp/xkbparse.y
+++ b/xkbcomp/xkbparse.y
@@ -145,7 +145,7 @@ unsigned int parseDebug;
%type <str> KeyName MapName OptMapName KeySym
%type <sval> FieldSpec Ident Element String
%type <any> DeclList Decl
-%type <expr> OptExprList ExprList Expr Term Lhs Terminal ArrayInit
+%type <expr> OptExprList ExprList Expr Term Lhs Terminal ArrayInit KeySyms
%type <expr> OptKeySymList KeySymList Action ActionList Coord CoordList
%type <var> VarDecl VarDeclList SymbolsBody SymbolsVarDecl
%type <vmod> VModDecl VModDefList VModDef
@@ -721,8 +721,12 @@ OptKeySymList : KeySymList { $$= $1; }
KeySymList : KeySymList COMMA KeySym
{ $$= AppendKeysymList($1,$3); }
+ | KeySymList COMMA KeySyms
+ { $$= AppendKeysymList($1,strdup("NoSymbol")); }
| KeySym
{ $$= CreateKeysymList($1); }
+ | KeySyms
+ { $$= CreateKeysymList(strdup("NoSymbol")); }
;
KeySym : IDENT { $$= strdup(scanBuf); }
@@ -734,6 +738,10 @@ KeySym : IDENT { $$= strdup(scanBuf); }
}
;
+KeySyms : OBRACE KeySymList CBRACE
+ { $$= $2; }
+ ;
+
SignedNumber : MINUS Number { $$= -$2; }
| Number { $$= $1; }
;