<s> """<STR_LIT>""" <EOL> from __future__ import absolute_import <EOL> from . Nodes import * <EOL> from . ExprNodes import * <EOL> from . Errors import CompileError <EOL> class EmptyScope ( object ) : <EOL> def lookup ( self , name ) : <EOL> return None <EOL> empty_scope = EmptyScope ( ) <EOL> def interpret_compiletime_options ( optlist , optdict , type_env = None , type_args = ( ) ) : <EOL> """<STR_LIT>""" <EOL> def interpret ( node , ix ) : <EOL> if ix in type_args : <EOL> if type_env : <EOL> type = node . analyse_as_type ( type_env ) <EOL> if not type : <EOL> raise CompileError ( node . pos , "<STR_LIT>" ) <EOL> return ( type , node . pos ) <EOL> else : <EOL> raise CompileError ( node . pos , "<STR_LIT>" ) <EOL> else : <EOL> if ( sys . version_info [ <NUM_LIT:0> ] >= <NUM_LIT:3> and <EOL> isinstance ( node , StringNode ) and <EOL> node . unicode_value is not None ) : <EOL> return ( node . unicode_value , node . pos ) <EOL> return ( node . compile_time_value ( empty_scope ) , node . pos ) <EOL> if optlist : <EOL> optlist = [ interpret ( x , ix ) for ix , x in enumerate ( optlist ) ] <EOL> if optdict : <EOL> assert isinstance ( optdict , DictNode ) <EOL> new_optdict = { } <EOL> for item in optdict . key_value_pairs : <EOL> new_key , dummy = interpret ( item . key , None ) <EOL> new_optdict [ new_key ] = interpret ( item . value , item . key . value ) <EOL> optdict = new_optdict <EOL> return ( optlist , new_optdict ) </s>
