Your IP : 216.73.216.196
I�]�! � @ s� d d l Z d d l m Z Gd d � d e � Z Gd d � d e � Z d Z d Z e d k r� d d l Z e d
� Z
e
j e d d � � d S)
� N)�Templatec @ s: e Z d Z d d d � Z d d d � Z d d � Z d S) �ASTCodeGeneratorz
_c_ast.cfgc C s, | | _ d d � | j | � D� | _ d S)zN Initialize the code generator from a configuration
file.
c S s% g | ] \ } } t | | � � q S� )�NodeCfg)�.0�name�contentsr r �M/builddir/build/BUILD/pycparser-release_v2.14/build/lib/pycparser/_ast_gen.py�
<listcomp> s z-ASTCodeGenerator.__init__.<locals>.<listcomp>N)�cfg_filename�
parse_cfgfile�node_cfg)�selfr r r r �__init__ s zASTCodeGenerator.__init__Nc C s^ t t � j d | j � } | t 7} x% | j D] } | | j � d 7} q/ W| j | � d S)z< Generates the code into file, an open file buffer.
r z
N)r �_PROLOGUE_COMMENTZ
substituter �_PROLOGUE_CODEr
�generate_source�write)r �file�srcr
r r r �generate s
zASTCodeGenerator.generatec
c s t | d � �� } x� | D]� } | j � } | s | j d � rD q | j d � } | j d � } | j d � } | d k s� | | k s� | | k r� t d | | f � � | d | � } | | d | � } | r� d d
� | j d � D� n g } | | f Vq WWd QRXd S)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 � � q Sr )�strip)r �vr r r r
7 s z2ASTCodeGenerator.parse_cfgfile.<locals>.<listcomp>�,)�openr �
startswith�find�RuntimeError�split)
r �filename�f�lineZcolon_iZ
lbracket_iZ
rbracket_ir �valZvallistr r r r &