diff options
author | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
---|---|---|
committer | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
commit | 66765100f4257159622cefe57bed50125a5ad017 (patch) | |
tree | a88ee23bb194eb91f0ebb2d9b23ff423e3ea8e37 /java/common/templating.py | |
parent | 1aeaa7b16e5ce54f10c901d75c4d40f9f88b9db6 (diff) | |
parent | 88b98b2f4152ef59a671fad55a0d08338b6b78ca (diff) | |
download | qpid-python-rajith_jms_client.tar.gz |
Creating a branch for experimenting with some ideas for JMS client.rajith_jms_client
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/rajith_jms_client@1128369 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/templating.py')
-rw-r--r-- | java/common/templating.py | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/java/common/templating.py b/java/common/templating.py deleted file mode 100644 index 732e96fa60..0000000000 --- a/java/common/templating.py +++ /dev/null @@ -1,119 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -class Parser: - - def __init__(self, **kwargs): - self.output = "" - self.environ = {"out": self.parse} - for k, v in kwargs.items(): - self.environ[k] = v - self.text = "" - self.level = 0 - self.line = None - - def action(self, actor): - text = self.text - self.text = "" - actor(text) - - def out(self, text): - self.output += text - - def prefix_lines(self, text): - return "%s%s" % ("\n"*(self.line - 1 - text.count("\n")), text) - - def evaluate(self, text): - self.out(str(eval(self.prefix_lines(text), self.environ, self.environ))) - - def execute(self, text): - exec self.prefix_lines(text) in self.environ, self.environ - - def parse(self, input): - old_line = self.line - try: - state = self.start - self.line = 1 - for ch in input: - state = state(ch) - if ch == "\n": - self.line += 1 - if state == self.start: - self.action(self.out) - elif state == self.alnum: - self.action(self.evaluate) - else: - raise ParseError() - finally: - self.line = old_line - - def start(self, ch): - if ch == "$": - return self.dollar - else: - self.text += ch - return self.start - - def dollar(self, ch): - if ch == "$": - self.text += "$" - return self.start - elif ch == "(": - self.action(self.out) - return self.expression - elif ch == "{": - self.action(self.out) - return self.block - else: - self.action(self.out) - self.text += ch - return self.alnum - - def alnum(self, ch): - if ch.isalnum(): - self.text += ch - return self.alnum - else: - self.action(self.evaluate) - self.text += ch - return self.start - - def match(self, ch, start, end): - if ch == start: - self.level += 1 - if ch == end: - self.level -= 1 - - def block(self, ch): - if not self.level and ch == "}": - self.action(self.execute) - return self.start - else: - self.match(ch, "{", "}") - self.text += ch - return self.block - - def expression(self, ch): - if not self.level and ch == ")": - self.action(self.evaluate) - return self.start - else: - self.match(ch, "(", ")") - self.text += ch - return self.expression |