* process custom properties and methods > if ( ! empty( InputFile.Reserved3 ) ) > ? > ? "Custom Properties and Methods:" > ? > lnCustom = memlines( InputFile.Reserved3 ) - 1 > dimension laCustom[m.lnCustom, 4] > lnLength = 0 > for i = 1 to m.lnCustom > * parse out name and comment > lcCustom = mline( InputFile.Reserved3, i ) > j = at( ' ', m.lcCustom ) > if ( j > 0 ) > laCustom[i,1] = left( m.lcCustom, j - 1 ) > laCustom[i,2] = substr( m.lcCustom, j + 1 ) > else > laCustom[i,1] = m.lcCustom > laCustom[i,2] = "" > endif > > * determine whether it's a property, method or array > c = left( laCustom[i,1], 1 ) > do case > case ( c == '*' ) > laCustom[i,3] = 'M' > case ( c == '^' ) > laCustom[i,3] = 'A' > otherwise > laCustom[i,3] = 'P' > endcase > if ( laCustom[i,3] != 'P' ) > * strip off marker character > laCustom[i,1] = substr( laCustom[i,1], 2 ) > endif > > laCustom[i,1] = CorrectCase( laCustom[i,1] ) > laCustom[i,4] = ( laCustom[i,1] $ InputFile.Protected ) > lnLength = max( m.lnLength, len( laCustom[i,1] ) ) > endfor > > * sort properties and methods and output > = asort( laCustom ) > lnLength = lnLength + 1 > for i = 1 to m.lnCustom > if ( laCustom[i,4] ) > ? " Protected " > else > ? " Public " > endif > do case > case ( laCustom[i,3] $ "PA" ) > ?? " Property " > case ( laCustom[i,3] $ "M" ) > ?? " Method " > endcase > ?? padr( laCustom[i,1], lnLength ) > ?? laCustom[i,2] > endfor > else > lnCustom = 0 > endif