summaryrefslogtreecommitdiff
path: root/qpid/python/qpid/messaging/address.py
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/python/qpid/messaging/address.py')
-rw-r--r--qpid/python/qpid/messaging/address.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/qpid/python/qpid/messaging/address.py b/qpid/python/qpid/messaging/address.py
index bcf45f6698..e423f09193 100644
--- a/qpid/python/qpid/messaging/address.py
+++ b/qpid/python/qpid/messaging/address.py
@@ -31,9 +31,6 @@ SEMI = l.define("SEMI", r";")
SLASH = l.define("SLASH", r"/")
COMMA = l.define("COMMA", r",")
NUMBER = l.define("NUMBER", r'[+-]?[0-9]*\.?[0-9]+')
-TRUE = l.define("TRUE", r'True')
-FALSE = l.define("FALSE", r'False')
-NONE = l.define("NONE", r'None')
ID = l.define("ID", r'[a-zA-Z_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?')
STRING = l.define("STRING", r""""(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'""")
ESC = l.define("ESC", r"\\[^ux]|\\x[0-9a-fA-F][0-9a-fA-F]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]")
@@ -59,15 +56,19 @@ def tok2str(tok):
else:
return tok.value
+CONSTANTS = {
+ "True": True,
+ "true": True,
+ "False": False,
+ "false": False,
+ "None": None
+ }
+
def tok2obj(tok):
- if tok.type in (STRING, NUMBER):
+ if tok.type == ID:
+ return CONSTANTS.get(tok.value, tok.value)
+ elif tok.type in (STRING, NUMBER):
return eval(tok.value)
- elif tok.type == TRUE:
- return True
- elif tok.type == FALSE:
- return False
- elif tok.type == NONE:
- return None
else:
return tok.value
@@ -136,7 +137,7 @@ class AddressParser(Parser):
return (key, val)
def value(self):
- if self.matches(NUMBER, STRING, ID, TRUE, FALSE, NONE):
+ if self.matches(NUMBER, STRING, ID):
return tok2obj(self.eat())
elif self.matches(LBRACE):
return self.map()