Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
i += 1
dirtokens = self.tokenstrip(x[i:])
if dirtokens:
name = dirtokens[0].value
args = self.tokenstrip(dirtokens[1:])
if self.debugout is not None:
print("%d:%d:%d %s:%d #%s %s" % (enable, iftrigger, ifpassthru, dirtokens[0].source, dirtokens[0].lineno, dirtokens[0].value, "".join([tok.value for tok in args])), file = self.debugout)
#print(ifstack)
handling = self.on_directive_handle(dirtokens[0],args,ifpassthru,precedingtoks)
assert handling == True or handling == None
else:
name = ""
args = []
raise OutputDirective(Action.IgnoreAndRemove)
if name == 'define':
at_front_of_file = False
if enable:
for tok in self.expand_macros(chunk):
yield tok
chunk = []
if include_guard and include_guard[1] == 0:
if include_guard[0] == args[0].value and len(args) == 1:
include_guard = (args[0].value, 1)
# If ifpassthru is only turned on due to this include guard, turn it off
if ifpassthru and not ifstack[-1].ifpassthru:
ifpassthru = False
self.define(args)
if self.debugout is not None:
print("%d:%d:%d %s:%d %s" % (enable, iftrigger, ifpassthru, dirtokens[0].source, dirtokens[0].lineno, repr(self.macros[args[0].value])), file = self.debugout)
skip_auto_pragma_once_possible_check = True
if oldifstackentry.rewritten:
raise OutputDirective(Action.IgnoreAndPassThrough)
else:
self.on_error(dirtokens[0].source,dirtokens[0].lineno,"Misplaced #endif")
elif name == 'pragma' and args[0].value == 'once':
if enable:
self.include_once[self.source] = None
elif enable:
# Unknown preprocessor directive
output_unexpanded_line = (self.on_directive_unknown(dirtokens[0], args, ifpassthru, precedingtoks) is None)
except OutputDirective as e:
if e.action == Action.IgnoreAndPassThrough:
output_unexpanded_line = True
elif e.action == Action.IgnoreAndRemove:
pass
else:
assert False
# If there is ever any non-whitespace output outside an include guard, auto pragma once is not possible
if not skip_auto_pragma_once_possible_check and auto_pragma_once_possible and not ifstack and not all_whitespace:
auto_pragma_once_possible = False
if self.debugout is not None:
print("%d:%d:%d %s:%d Determined that #include \"%s\" is not entirely wrapped in an include guard macro, disabling auto-applying #pragma once" % (enable, iftrigger, ifpassthru, x[0].source, x[0].lineno, self.source), file = self.debugout)
if output_and_expand_line or output_unexpanded_line:
if not all_whitespace:
at_front_of_file = False
# Normal text
if enable: