abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/KeyValueParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/juloo.keyboard2/KeyValueParser.java')
-rw-r--r--srcs/juloo.keyboard2/KeyValueParser.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/srcs/juloo.keyboard2/KeyValueParser.java b/srcs/juloo.keyboard2/KeyValueParser.java
index 488f5d3..92d1ee5 100644
--- a/srcs/juloo.keyboard2/KeyValueParser.java
+++ b/srcs/juloo.keyboard2/KeyValueParser.java
@@ -41,15 +41,17 @@ public final class KeyValueParser
if (symbol_ends == input_len) // String key
return KeyValue.makeStringKey(input);
String symbol = input.substring(0, symbol_ends);
- ArrayList<KeyValue> keydefs = new ArrayList<KeyValue>();
init();
Matcher m = KEYDEF_TOKEN.matcher(input);
m.region(symbol_ends + 1, input_len);
+ KeyValue first_key = parse_key_def(m);
+ if (!parse_comma(m)) // Input is a single key def with a specified symbol
+ return first_key.withSymbol(symbol);
+ // Input is a macro
+ ArrayList<KeyValue> keydefs = new ArrayList<KeyValue>();
+ keydefs.add(first_key);
do { keydefs.add(parse_key_def(m)); }
while (parse_comma(m));
- for (KeyValue k : keydefs)
- if (k == null)
- parseError("Contains null key", m);
return KeyValue.makeMacro(symbol, keydefs.toArray(new KeyValue[]{}), 0);
}