Module: AdLint::Cpp::ExpressionNormalizer

Defined in:
lib/adlint/cpp/eval.rb

Class Method Summary collapse

Class Method Details

.normalize(pp_toks, pp_ctxt, preprocessor = nil) ⇒ Object



942
943
944
945
946
947
948
949
950
951
952
# File 'lib/adlint/cpp/eval.rb', line 942

def normalize(pp_toks, pp_ctxt, preprocessor = nil)
  PPTokensNormalizer.normalize(pp_toks, pp_ctxt)
  const_expr = ConstantExpression.new(pp_ctxt, pp_toks.tokens)
  if preprocessor
    const_expr.on_illformed_defined_op_found +=
      preprocessor.method(:notify_illformed_defined_op_found)
    const_expr.on_undefined_macro_referred +=
      preprocessor.method(:notify_undefined_macro_referred)
  end
  const_expr.evaluate
end