Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def on_directive_handle(self,directive,toks,ifpassthru,precedingtoks):
if ifpassthru:
if directive.value == 'if' or directive.value == 'elif' or directive == 'else' or directive.value == 'endif':
self.bypass_ifpassthru = len([tok for tok in toks if tok.value == '__PCPP_ALWAYS_FALSE__' or tok.value == '__PCPP_ALWAYS_TRUE__']) > 0
if not self.bypass_ifpassthru and (directive.value == 'define' or directive.value == 'undef'):
if toks[0].value != self.potential_include_guard:
raise OutputDirective(Action.IgnoreAndPassThrough) # Don't execute anything with effects when inside an #if expr with undefined macro
if (directive.value == 'define' or directive.value == 'undef') and self.args.nevers:
if toks[0].value in self.args.nevers:
raise OutputDirective(Action.IgnoreAndPassThrough)
if self.args.passthru_defines:
super(CmdPreprocessor, self).on_directive_handle(directive,toks,ifpassthru,precedingtoks)
return None # Pass through where possible
return super(CmdPreprocessor, self).on_directive_handle(directive,toks,ifpassthru,precedingtoks)
chunk = []
self.undef(args)
if handling is None:
for tok in x:
yield tok
elif name == 'ifdef':
at_front_of_file = False
ifstack.append(ifstackentry(enable,iftrigger,ifpassthru,x))
if enable:
ifpassthru = False
if not args[0].value in self.macros:
res = self.on_unknown_macro_in_defined_expr(args[0])
if res is None:
ifpassthru = True
ifstack[-1].rewritten = True
raise OutputDirective(Action.IgnoreAndPassThrough)
elif res is True:
iftrigger = True
else:
enable = False
iftrigger = False
else:
iftrigger = True
elif name == 'ifndef':
if not ifstack and at_front_of_file:
self.on_potential_include_guard(args[0].value)
include_guard = (args[0].value, 0)
at_front_of_file = False
ifstack.append(ifstackentry(enable,iftrigger,ifpassthru,x))
if enable:
ifpassthru = False
if args[0].value in self.macros: