;ς ΛΖΗAc@s¦dZdZdZdkZdkZdkZdkZdklZ dkl Z l Z l Z l Z lZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZl Z l!Z!l"Z"l#Z#dfd„ƒYZ$de$fd „ƒYZ%d „Z&d „Z'e(e(e(d „Z)d „Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2e(a3d„Z4d„Z5dS(s(Graphviz's dot language parser. The dotparser parses graphviz files in dot and dot files and transforms them into a class representation defined by pydot. The module needs pyparsing (tested with version 1.2.2) and pydot (tested with 0.9.10) Author: Michael Krause sMichael KrausesMITN(s __version__(sLiteralsCaselessLiteralsWordsUpcases OneOrMores ZeroOrMoresForwardsNotAnys delimitedListsoneOfsGroupsOptionalsCombinesalphassnumss restOfLines cStyleCommentsnumss alphanumss printablessemptys quotedStringsParseExceptions ParseResultss CharsNotIns _noncommasdblQuotedStrings P_AttrListcBstZd„Zd„ZRS(NcCs]h|_d}xG|t|ƒjo3||}||d}||i|<|d7}qWdS(Niii(sselfsattrssislenstokssattrnames attrvalue(sselfstokssis attrvaluesattrname((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pys__init__s   cCsd|ii|ifSdS(Ns%s(%r)(sselfs __class__s__name__sattrs(sself((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pys__repr__(s(s__name__s __module__s__init__s__repr__(((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pys P_AttrLists sDefaultStatementcBstZd„Zd„ZRS(NcCs||_||_dS(N(s default_typesselfsattrs(sselfs default_typesattrs((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pys__init__-s cCs!d|ii|i|ifSdS(Ns %s(%s, %r)(sselfs __class__s__name__s default_typesattrs(sself((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pys__repr__1s(s__name__s __module__s__init__s__repr__(((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pysDefaultStatement,s cCs΅h}t}x}|D]u}t|tƒpt|tƒp t|tƒo|d}n|djot |d(4;, cCs›t|ƒdjo|di}nh}|d}t|tƒp t|tƒo%t|ƒdjo|d}qyntid|d|}|SdS(Niiis"( slenstokssattrss node_names isinstancesliststuplespydotsNodesn(sstrslocstokss node_namesnsattrs((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pyspush_node_stmtμs  cCs|didƒgSdS(Nis"(stsstrip(ssslst((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pys strip_quotesόsc.Csρt oαtdƒ}tdƒ}tdƒ}tdƒ}$tdƒ}tdƒ}tdƒ} tdƒ}td ƒ})td ƒ},td ƒ} td ƒ}td ƒ}tdƒ}"tdƒ}tdƒ}+tdƒ}tdƒ}tdƒ} tdƒ} tdƒ}tdƒ}-ttdƒidƒ}*t}ttt ƒƒ}!|*|i"t#ƒB|!Bidƒ} t%tdƒttdƒƒƒ}t%t'|+ƒttt(d ƒƒƒidƒ}|| B|Bidƒ}|| idƒ}(t,|| ƒt,||| |)| | ƒBidƒ}#t,|#t'|(ƒƒt,|(t'|#ƒƒBid ƒ}| t'|ƒ}t| t'|i0ƒ|ƒt'|)i0ƒƒƒid!ƒ}t|$i0ƒt'|ƒ|i0ƒƒid"ƒ}t,||B|-Bƒ|id#ƒ}td$ƒtd%ƒBid&ƒ} t5ƒ}t,|i0ƒt'|ƒ|i0ƒƒid'ƒ}t,t'| t'| ƒƒ|ƒt,| | ƒBidƒ}t| t,||Bƒƒ}'t,||Bƒ|'t'|ƒ}&|t'|ƒt'|"i0ƒƒid(ƒ}| |i0ƒ|id)ƒ}||&B|B|B|Bid*ƒ}|t|t'|"i0ƒƒƒ>t'|ƒt,|| Bƒt'| ƒ|i>dƒad+t?}%tiA|%ƒtiAtBƒ|i"tCƒ|i"tCƒ|&i"tDƒ|i"tEƒ|i"tFƒ|i"tGƒ|i"tHƒti"tIƒntSdS(,Ns:s{s}s[s]s(s)s=s,s.s/s\s*s;s@s-sstrictsgraphsdigraphssubgraphsnodesedges_s identifiersIDs<sedgeops graph_stmts node_stmts assignmentsstmts//(Js graphparsersLiteralscolonslbracesrbraceslbracksrbrackslparensrparensequalsscommasdotsslashsbslashsstarssemisatsminussstrict_sgraph_sdigraph_s subgraph_snode_sedge_sWords alphanumsssetNames identifiersdblQuotedStringsdouble_quoted_strings OneOrMores CharsNotIns _noncommas alphastring_ssetParseActions strip_quotessIDsCombines html_textsOptionalsnumss float_numbers righthand_ids port_anglesGroups port_locationsportsnode_idssuppresssa_lists attr_lists attr_stmtsedgeopsForwards stmt_lists graph_stmtssubgraphsedgeRHSs edge_stmts node_stmts assignmentsstmtssetResultsNames restOfLinessingleLineCommentsignores cStyleCommentspush_attr_listspush_edge_stmtspush_node_stmtspush_default_stmtspush_subgraph_stmtspush_graph_stmtspush_top_graph_stmt(.s html_texts node_stmtsrbracesrbrackscolonsatsnode_s graph_stmtsportsedgeopsIDsslashsdigraph_s subgraph_sstrict_sa_listsstars float_numberssubgraphs assignments righthand_idsequalssstmts attr_listsnode_idslparens attr_stmtsdouble_quoted_stringsgraph_sbslashs stmt_listslbracesrparens alphastring_ssemis port_locationslbrackssingleLineComments edge_stmtsedgeRHSs port_anglescommas identifiersminussdotsedge_((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pysgraph_definitionsz                       "/739/! /7)1          cCs—yV|iddƒ}tƒ}tdjo|iƒn|i|ƒ}|i}|SWn:t j o.}|i GHd|i ddGH|GHt SnXdS(Ns\ ss1.2s is^(sdatasreplacesgraph_definitions graphparserspyparsing_versions parseWithTabss parseStringstokenssgraphsParseExceptionserrslinescolumnsNone(sdataserrsgraphs graphparserstokens((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pysparse_dot_dataos   (6s__doc__s __author__s __license__ssyssglobspydotsres pyparsings __version__spyparsing_versionsLiteralsCaselessLiteralsWordsUpcases OneOrMores ZeroOrMoresForwardsNotAnys delimitedListsoneOfsGroupsOptionalsCombinesalphassnumss restOfLines cStyleComments alphanumss printablessemptys quotedStringsParseExceptions ParseResultss CharsNotIns _noncommasdblQuotedStrings P_AttrListsDefaultStatementspush_top_graph_stmts add_defaultssNones add_elementsspush_graph_stmtspush_subgraph_stmtspush_default_stmtspush_attr_listsget_ports do_node_portsspush_edge_stmtspush_node_stmts strip_quotess graphparsersgraph_definitionsparse_dot_data(1s add_elementssGroupsNotAnyspush_attr_lists P_AttrLists alphanumssLiteralsCombinesForwards ZeroOrMoresdblQuotedStringspush_subgraph_stmtspush_node_stmts strip_quotessCaselessLiteralspush_graph_stmtspyparsing_versions quotedStringsres CharsNotInsget_ports delimitedLists ParseResultssDefaultStatementsOptionalsemptysWords __license__snumssglobsparse_dot_datas __author__ssyssUpcasesParseExceptionspush_default_stmts _noncommasalphassoneOfspydotspush_top_graph_stmtsgraph_definitions OneOrMores cStyleComments do_node_portss add_defaultsspush_edge_stmts printabless restOfLine((sD/mnt/gmirror/ports/graphics/py-pydot/work/pydot-0.9.10/dot_parser.pys? s2     ©  % /        n