diff --git a/src/main/java/org/jboss/dmr/ModelNodeParser.java b/src/main/java/org/jboss/dmr/ModelNodeParser.java index e236c5e..12bb4f1 100644 --- a/src/main/java/org/jboss/dmr/ModelNodeParser.java +++ b/src/main/java/org/jboss/dmr/ModelNodeParser.java @@ -96,9 +96,6 @@ class ModelNodeParser extends Parser { @Lex(pattern = ",", token = "COMMA"), @Lex(pattern = "=>", token = "ARROW"), - @Lex(pattern = "true", token = "TRUE"), - @Lex(pattern = "false", token = "FALSE"), - @Lex(pattern = "big", token = "BIG"), @Lex(pattern = "bytes", token = "BYTES"), @Lex(pattern = "decimal", token = "DECIMAL"), @@ -117,12 +114,22 @@ class ModelNodeParser extends Parser { @Lex(pattern = "[+-]?0x[0-9a-fA-F]+", token = "INT_HEX_VAL"), @Lex(pattern = "[+-]?(NaN|Infinity)", token = "DOUBLE_SPECIAL_VAL"), @Lex(pattern = "[+-]?([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?)", token = "DEC_VAL"), - @Lex(pattern = "BIG_DECIMAL|BIG_INTEGER|BOOLEAN|BYTES|DOUBLE|EXPRESSION|INT|LIST|LONG|OBJECT|PROPERTY|STRING|TYPE|UNDEFINED", token = "TYPE_VAL") + @Lex(pattern = "BIG_DECIMAL|BIG_INTEGER|BYTES|DOUBLE|EXPRESSION|INT|LIST|LONG|OBJECT|PROPERTY|STRING|TYPE|UNDEFINED", token = "TYPE_VAL") }) protected String parsePlainValue() { return yyText(); } + @Lex(pattern = "true", token = "TRUE") + protected String parseTrue() { + return "true"; + } + + @Lex(pattern = "false", token = "FALSE") + protected String parseFalse() { + return "false"; + } + @Lex(pattern = "\\\"([^\"\\\\]+|\\\\.)*\\\"", token = "STR_VAL") protected String parseStringValue() { final String yyText = yyText(); @@ -188,11 +195,11 @@ class ModelNodeParser extends Parser { } @Rules(rules = { - @Rule(lhs = "node", rhs = "TRUE"), - @Rule(lhs = "node", rhs = "FALSE") + @Rule(lhs = "node", rhs = "TRUE", args="1"), + @Rule(lhs = "node", rhs = "FALSE", args="1") }) - protected ModelNode parseBoolean() { - return new ModelNode().set(Boolean.parseBoolean(yyText())); + protected ModelNode parseBoolean(final String val) { + return new ModelNode().set(Boolean.parseBoolean(val)); } @Rules(rules = {