class AdLint::Exam::CBuiltin::FN_PARA
Public Class Methods
new(phase_ctxt)
click to toggle source
Calls superclass method
AdLint::Examination::new
# File lib/adlint/exam/c_builtin/cc1_metric.rb, line 248 def initialize(phase_ctxt) super @fpath = phase_ctxt[:sources].first.fpath trav = phase_ctxt[:cc1_ast_traversal] trav.enter_ansi_function_definition += T(:measure_ansi_function) trav.enter_kandr_function_definition += T(:measure_kandr_function) end
Private Instance Methods
do_execute(*)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_metric.rb, line 258 def do_execute(*) end
do_prepare(*)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_metric.rb, line 257 def do_prepare(*) end
measure_ansi_function(fun_def)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_metric.rb, line 260 def measure_ansi_function(fun_def) # TODO: Determine how many parameters if function has va_list. if fun_def.parameter_type_list params = fun_def.parameter_definitions FN_PARA(FunctionId.new(fun_def.identifier.value, fun_def.signature.to_s), fun_def.location, params.count { |param| !param.type.void? }) else # TODO: Determine how many parameters if signature is abbreviated. FN_PARA(FunctionId.new(fun_def.identifier.value, fun_def.signature.to_s), fun_def.location, 0) end end
measure_kandr_function(fun_def)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_metric.rb, line 275 def measure_kandr_function(fun_def) FN_PARA(FunctionId.new(fun_def.identifier.value, fun_def.signature.to_s), fun_def.location, fun_def.identifier_list.size) end