module AdLint::Cpp::ExpressionNormalizer

Public Class Methods

normalize(pp_toks, pp_ctxt, preprocessor = nil) click to toggle source
# 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

Private Instance Methods

normalize(pp_toks, pp_ctxt, preprocessor = nil) click to toggle source
# 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