Ë
    Ç[;j`  ã                   óJ   — d Z ddlmZ ddlmZ  G d„ d«      Z e«       Zdd„Zy)	z±
This module deals with interpreting the parse tree as Python
would have done, in the compiler.

For now this only covers parse tree to value conversion of
compile-time values.
é   )ÚDictNode)ÚCompileErrorc                   ó   — e Zd Zd„ Zy)Ú
EmptyScopec                  ó   — y )N© )ÚselfÚnames     údG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Compiler/Interpreter.pyÚlookupzEmptyScope.lookup   s   € Øó    N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   „ ór   r   Nc                 óD  ‡‡— ˆˆfd„}| r$t        | «      D ��cg c]  \  }} |||«      ‘Œ } }}|rgt        |t        «      sJ ‚i }|j                  D ]B  } ||j                  d«      \  }	}
 ||j
                  |j                  j
                  «      ||	<   ŒD |}| fS c c}}w )a,  
    Tries to interpret a list of compile time option nodes.
    The result will be a tuple (optlist, optdict) but where
    all expression nodes have been interpreted. The result is
    in the form of tuples (value, pos).

    optlist is a list of nodes, while optdict is a DictNode (the
    result optdict is a dict)

    If type_env is set, all type nodes will be analysed and the resulting
    type set. Otherwise only interpretateable ExprNodes
    are allowed, other nodes raises errors.

    A CompileError will be raised if there are problems.
    c                 óì   •— |‰v rO‰r7| j                  ‰«      }|st        | j                  d«      ‚|| j                  fS t        | j                  d«      ‚| j                  t        «      | j                  fS )NzInvalid type.zType not allowed here.)Úanalyse_as_typer   ÚposÚcompile_time_valueÚempty_scope)ÚnodeÚixÚtypeÚ	type_argsÚtype_envs      €€r   Ú	interpretz0interpret_compiletime_options.<locals>.interpret%   sl   ø€ Ø�‰?ÙØ×+Ñ+¨HÓ5�ÙÜ& t§x¡x°ÓAÐAØ˜dŸh™hÐ'Ð'ä" 4§8¡8Ð-EÓFÐFØ×'Ñ'¬Ó4°d·h±hÐ?Ð?r   N)Ú	enumerateÚ
isinstancer   Úkey_value_pairsÚkeyÚvalue)ÚoptlistÚoptdictr   r   r   r   ÚxÚnew_optdictÚitemÚnew_keyÚdummys     ``       r   Úinterpret_compiletime_optionsr)      s¥   ù€ õ"	@ñ Ü1:¸7Ô1CÔDÑ1C©¨¨A‘9˜Q Õ#Ð1CˆÑDÙÜ˜'¤8Ô,Ð,Ð,ØˆØ×+Ô+ˆDÙ& t§x¡x°Ó6‰NˆG�UÙ#,¨T¯Z©Z¸¿¹¿¹Ó#HˆK˜Ò ð ,ð ˆØ�[Ð!Ð!ùó Es   ™B)Nr   )Ú__doc__Ú	ExprNodesr   ÚErrorsr   r   r   r)   r   r   r   Ú<module>r-      s*   ðñõ  Ý  ÷ñ ñ ‹l€ô%"r   