def p_if_line(self, p):
        if p.parser.enable_declaratives():
            type = p.slice[1].type
            if type == 'IF':
                if p[2]:
                    result = p[2].evaluate(p.parser.namespace)
                else:
                    # error
                    result = False
            elif type == 'IFDEF':
                result = p.parser.namespace.is_defined(p[2])
            elif type == 'IFNDEF':
                result = not p.parser.namespace.is_defined(p[2])
                p.parser.write((create_token('PP_IFNDEF', p[2], p),))
        else:
            result = False
        
        p.parser.condition_if(result)
if_line : IF replaced_constant_expression NEWLINE
dataset/ETHPy150Open ardekantur/pyglet/tools/wraptypes/preprocessor.py/PreprocessorGrammar.p_if_line