summaryrefslogtreecommitdiff
path: root/python/qpid/address.py
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2010-01-22 14:26:11 +0000
committerRafael H. Schloming <rhs@apache.org>2010-01-22 14:26:11 +0000
commit631dfd9bd1b96540ccdc5d2419f2c47a9e15253e (patch)
treede56c5158b51649270fbcc194d33cd3bbd5c606f /python/qpid/address.py
parent578ab4e8631e778bfdbb4f88b030314471394d53 (diff)
downloadqpid-python-631dfd9bd1b96540ccdc5d2419f2c47a9e15253e.tar.gz
added boolean literals to java & python address parser; added validation to python address usage
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@902095 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/address.py')
-rw-r--r--python/qpid/address.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/python/qpid/address.py b/python/qpid/address.py
index bda7157a5f..ab0fe8221a 100644
--- a/python/qpid/address.py
+++ b/python/qpid/address.py
@@ -31,6 +31,8 @@ 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')
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,6 +61,10 @@ def tok2str(tok):
def tok2obj(tok):
if tok.type in (STRING, NUMBER):
return eval(tok.value)
+ elif tok.type == TRUE:
+ return True
+ elif tok.type == FALSE:
+ return False
else:
return tok.value
@@ -127,7 +133,7 @@ class AddressParser(Parser):
return (key, val)
def value(self):
- if self.matches(NUMBER, STRING, ID):
+ if self.matches(NUMBER, STRING, ID, TRUE, FALSE):
return tok2obj(self.eat())
elif self.matches(LBRACE):
return self.map()