File: //lib/python3.6/site-packages/pycparser/__pycache__/_ast_gen.cpython-36.pyc
3
gwU! @ sh d dl Z d dlmZ G dd deZG dd deZdZdZed krdd dl Z ed
Z
e
jedd dS )
N)Templatec @ s( e Zd Zd ddZd
ddZdd ZdS )ASTCodeGenerator
_c_ast.cfgc C s || _ dd | j|D | _dS )zN Initialize the code generator from a configuration
file.
c S s g | ]\}}t ||qS )NodeCfg).0namecontentsr r /usr/lib/python3.6/_ast_gen.py
<listcomp> s z-ASTCodeGenerator.__init__.<locals>.<listcomp>N)cfg_filename
parse_cfgfilenode_cfg)selfr r r r
__init__ s zASTCodeGenerator.__init__Nc C sH t tj| jd}|t7 }x| jD ]}||j d 7 }q"W |j| dS )z< Generates the code into file, an open file buffer.
)r z
N)r _PROLOGUE_COMMENTZ
substituter _PROLOGUE_CODEr generate_sourcewrite)r filesrcr r r r
generate s
zASTCodeGenerator.generatec
c s t |d}x|D ]}|j }| s|jdr0q|jd}|jd}|jd}|dk sf||ksf||krvtd||f |d| }||d | }|rd d
|jdD ng } || fV qW W dQ R X dS )ze Parse the configuration file and yield pairs of
(name, contents) for each node.
r#:[] zInvalid line in %s:
%s
Nc S s g | ]}|j qS r )strip)r vr r r
r 7 s z2ASTCodeGenerator.parse_cfgfile.<locals>.<listcomp>,)openr
startswithfindRuntimeErrorsplit)
r filenameflineZcolon_iZ
lbracket_iZ
rbracket_ir valZvallistr r r
r
&