ðQOberon10.Scn.Fnt.Oberon10i.Scn.Fnt.±4Analyzer.Analyze * Analyzer.Analyze *\inruvx full analysis Analyzer.Analyze *\inr intermediate access, count stats, redefinition ErrorElems.Mark ^ ErrorElems.LocateNext ErrorElems.Unmark Analyzer.Analyze (("*" | "@") ["\" opt] | {name ["\" opt]} "~" | "^") Options (complementing each other): i redeclaration of/use of/assignment to intermediate items n number of statements in module r redefinition of type bound procedures u used before set for different scopes v use of var parameters x use/initialization of exported items Analyzer.Analyze marks by default - all non-exported variables/constants/types/fields that are declared but never used, used before being initialized (*), never initialized, and initialized but never used. - non-exported [type-bound] procedures that are never called. - modules that are imported but never used. (*) For variables declared in a different scope, no warning is produced (see option \u, however). \i(ntermediate) additionally marks - items that are already declared in an outer scope. - the use of or assignment to intermediate items (e.g. local variables/parameters declared in an outer scope). \n(umber) reports - the number of statements (assignments, if, while, proc calls, etc.) in the module. This is convenient for determining the complexity of a program (instead of lines of code). \r(edefinition) additionally marks - the redefinition of type bound procedures. \u(sed) additionally marks - 'used before set' for variables declared in a different scope. \v(arpar) additionally marks - variables that are used as var parameters and are therefore not ensured to be initialized. \x (eXported) additionally marks - exported items that are declared but not used by the module itself, used before being initialized, never initialized, and initialized but never used.