Metric-Halstead.Vocabulary¶
Halstead Vocabulary
Required inputs: RFG
Let
- n1 = the number of different operators
- n2 = the number of different operands
- N1 = the total number of operators
- N2 = the total number of operands
- n = n1 + n2 (vocabulary)
- N = N1 + N2 (program length)
- V = N * log2(n) (volume)
- D = (n1/2)*(N2/n2) (difficulty)
- E = D * V (effort)
For more information on what is considered an operator please refer to the documentation (Project Configuration / Language Schema / Language Representation for C / Metrics / Halstead metrics).
Possible Messages
This rule has no predefined messages.
Options¶
This rule shares the following common options: exclude_messages_in_system_headers, excludes, includes, justification_checker, post_processing, provider, severity
This rule shares the following common metric options: base_view_name, excluded_node_types, hierarchy_edge_name, hierarchy_view_name, propagate, report_all_values, report_propagated_values
The following places define options that affect this rule: HalsteadMetrics, Analysis-GlobalOptions
display_name¶
display_name : str | None = 'Halstead Vocabulary'
max_value¶
max_value : int | None = None
min_value¶
min_value : int | None = None
rfg_metric_name¶
rfg_metric_name : str = 'Metric.Halstead.Vocabulary'