print "doview::", toks[1]
	print "\t paths::", paths
	if not Debug:
		vobj = Personis_base.View(Identifier=toks[1], component_list=paths)
		themodel.mkview(curcontext, vobj)
	paths = []

#	name := ID
#	attribute := name '=' QUOTEDSTRING
#	path = [ '/' ] name [ '/' name ]
#	context := path ':' attribute [ ',' attribute ]*
#	component := name ':' attribute [ ',' attribute ]*
#	view := name ':' path [ ',' path ]

name = Word(alphanums+"_")
flaglist = Literal('[')+ quotedString.setParseAction(removeQuotes) + ZeroOrMore(Literal(',') + quotedString.setParseAction(removeQuotes)) + Literal(']')
value = quotedString.setParseAction(removeQuotes) | flaglist
keyval = name + Literal("=") + value
keyval_list = keyval + ZeroOrMore(Literal(",") + keyval)
evidence = Literal("[") + keyval_list + Literal("]")
evidencelist = evidence + ZeroOrMore(Literal(",") + evidence)
path = ZeroOrMore(Literal('/')) + name + ZeroOrMore(Literal('/') + name)
context = Literal('@@') + path + Literal(':') + keyval_list
component = Literal('--') + name + Literal(":") + keyval_list + Optional(Literal(',') + evidencelist)
view = Literal('==') + name + Literal(":") + path + ZeroOrMore(Literal(",") + path)
mdef = OneOrMore(context + ZeroOrMore(component) + ZeroOrMore(view)) + Literal('$$')

name.setParseAction(doname)
keyval.setParseAction(dokeyval)
flaglist.setParseAction(doflaglist)
keyval_list.setParseAction(dokeyval_list)
示例#2
0
	#print "donotify::", toks
	url = "".join(toks[1:])
	import urllib
	print "Notify", url
	f = urllib.urlopen(url)
	print f.readlines()
	f.close()
	return

component = Forward()
componentval = Literal("<")+Optional(Word(alphas) + Literal('!'))+component+Literal(">")
componentval.setParseAction(askval)
componentname = Word(alphas) | componentval
modelname = Literal('.') | componentname
component << modelname + ZeroOrMore(Literal('/') + componentname)
item = component | quotedString.setParseAction(removeQuotes)
cronspec = Literal('[') + quotedString.setParseAction(removeQuotes) + Literal(']')
patternmatch = item + Literal('~') + item 
patternmatch.setParseAction(domatch)
tell = Literal('TELL') + item + Literal(',') + item + Literal(':') + item
tell.setParseAction(dotell)
tellchanged = Literal('TELLCHANGED') + item + Literal(',') + item + Literal(':') + item
tellchanged.setParseAction(dotellchanged)
notify = Literal('NOTIFY') + OneOrMore(item)
notify.setParseAction(donotify)
action = tell | notify | tellchanged
subgrammar = Optional(cronspec) + patternmatch + Literal(':') + action

user = None
password = None
statement = ""
    print "\t paths::", paths
    if not Debug:
        vobj = Personis_base.View(Identifier=toks[1], component_list=paths)
        themodel.mkview(curcontext, vobj)
    paths = []


#	name := ID
#	attribute := name '=' QUOTEDSTRING
#	path = [ '/' ] name [ '/' name ]
#	context := path ':' attribute [ ',' attribute ]*
#	component := name ':' attribute [ ',' attribute ]*
#	view := name ':' path [ ',' path ]

name = Word(alphanums + "_")
flaglist = Literal('[') + quotedString.setParseAction(
    removeQuotes) + ZeroOrMore(
        Literal(',') +
        quotedString.setParseAction(removeQuotes)) + Literal(']')
value = quotedString.setParseAction(removeQuotes) | flaglist
keyval = name + Literal("=") + value
keyval_list = keyval + ZeroOrMore(Literal(",") + keyval)
evidence = Literal("[") + keyval_list + Literal("]")
evidencelist = evidence + ZeroOrMore(Literal(",") + evidence)
path = ZeroOrMore(Literal('/')) + name + ZeroOrMore(Literal('/') + name)
context = Literal('@@') + path + Literal(':') + keyval_list
component = Literal('--') + name + Literal(":") + keyval_list + Optional(
    Literal(',') + evidencelist)
view = Literal('==') + name + Literal(":") + path + ZeroOrMore(
    Literal(",") + path)
mdef = OneOrMore(context + ZeroOrMore(component) +
                 ZeroOrMore(view)) + Literal('$$')