/usr/share/pyshared/guppy/gsl/Gsml.py is in python-guppy 0.1.9-2ubuntu4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | #._cv_part guppy.gsl.Gsml
class GsmlHandler:
# To be mixed in with something like HTMLParser.HTMLParser
def handle_starttag(self, tag, attrs):
# print 'starttag', tag, attrs
self.stack.append(self.out)
self.out = []
if attrs:
at = []
for k, v in attrs:
at.append(self.mod.node_of_taci(k, v))
self.out.append(self.mod.node_of_taci('with', '', at))
def handle_endtag(self, tag):
# print 'endtag', tag
node = self.mod.node_of_taci(tag, '', self.out)
self.out = self.stack.pop()
self.out.append(node)
def handle_charref(self, name):
#print 'charref', name
if name[:1] == "x":
char = int(name[1:], 16)
name = '0'+name
else:
char = int(name)
if 0 <= char < 128:
char = chr(char)
self.handle_data(char)
else:
self.out.append(self.mod.node_of_taci('char', name))
def handle_entityref(self, name):
#print 'handle entityref', name
if name not in self.mod.entitydefs:
self.unknown_entityref(name)
self.out.append(self.mod.node_of_taci('char', name))
def unknown_entityref(self, name):
raise SyntaxError, 'Unknown entity ref: %r'%name
def handle_data(self, data):
# print 'data', data
# data = data.strip()
if data.strip():
self.out.extend( self.mod.nodes_of_text(data) )
def handle_comment(self, data):
self.out.append( self.mod.node_of_taci('comment', data, (), 0))
def handle_decl(self, decl):
# print 'handle_decl', decl
self.out.append( self.mod.node_of_taci('html_declaration', decl))
def handle_pi(self, data):
self.out.append( self.mod.node_of_taci('processing_instruction', data))
class _GLUECLAMP_:
_imports_ = (
'_root.HTMLParser:HTMLParser',
'_parent.SpecNodes:node_of_taci',
'_parent.SpecNodes:nodes_of_text',
'_root.htmlentitydefs:entitydefs',
)
encoding = "iso-8859-1"
def node_of_gsml(self, text):
class Parser(GsmlHandler, self.HTMLParser):
def __init__(self, mod):
mod.HTMLParser.__init__(self)
self.mod = mod
self.out = []
self.stack = []
p = Parser(self)
p.feed(text)
p.close()
if p.stack:
raise SyntaxError, 'Missing end tag'
node = self.node_of_taci('block', '', p.out, 0)
return node
def _test_main_(self):
x = """
<!DOCTYPE html...>
This is an <em> emphasized </em> word.
See also <a href="guppy-pe.sf.net"> Guppy. </a>
Defined as <use_my_macro/>.
Handle char ref: d.
Handle char ref: <.
<!-- A comment -->
<?A processing instruction>
<namespace:tag />
"""
node = self.node_of_gsml(x)
print node
if 0 or __name__=='__main__':
from guppy import Root
Root().guppy.gsl.Gsml._test_main_()
|