diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f1b0da5..7662f128 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## [0.1.4] Next release ### Added +- Improved information shown on completion [#336](https://github.com/OCamlPro/superbol-studio-oss/pull/336) - Configuration flag for caching in storage provided by Visual Studio Code [#167](https://github.com/OCamlPro/superbol-studio-oss/pull/167) - Configuration setting for copybook filename extensions [#332](https://github.com/OCamlPro/superbol-studio-oss/pull/332), with updated JSON schema [#333](https://github.com/OCamlPro/superbol-studio-oss/pull/333) - COBOL language configuration for highlighting matching brackets and auto-insertion of line numbers in fixed-format code [#330](https://github.com/OCamlPro/superbol-studio-oss/pull/330) diff --git a/src/lsp/cobol_lsp/lsp_completion.ml b/src/lsp/cobol_lsp/lsp_completion.ml index 38a358cd..8449f2f5 100644 --- a/src/lsp/cobol_lsp/lsp_completion.ml +++ b/src/lsp/cobol_lsp/lsp_completion.ml @@ -162,16 +162,23 @@ let procedures_proposal ~filename pos group = match Lsp_lookup.last_cobol_unit_before_pos ~filename pos group with | None -> [] | Some cu -> - let paragraph_name (paragraph:Cobol_unit.Types.procedure_paragraph with_loc) = - Option.map Cobol_common.Srcloc.payload ~¶graph.paragraph_name + let to_string_with_type typ paragraph = + match ~¶graph with + | Cobol_unit.Types.{ paragraph_name = Some { payload = qn; _ }; _ } -> + List.map (fun s -> typ, s) @@ to_string qn + | _ -> [] in - List.flatten @@ List.rev_map (function - | Cobol_unit.Types.Paragraph paragraph -> - Option.to_list @@ paragraph_name paragraph - | Section section -> - List.filter_map paragraph_name ~§ion.section_paragraphs.list) - cu.unit_procedure.list - |> List.rev_map to_string + cu.unit_procedure.list + |> List.rev_map begin function + | Cobol_unit.Types.Paragraph p -> + to_string_with_type "Paragraph" p + | Section section -> + List.mapi begin fun i paragraph -> + let typ = (if i == 0 then "Section" else "Paragraph") in + to_string_with_type typ paragraph end + ~§ion.section_paragraphs.list + |> List.flatten + end |> List.flatten let all_intrinsic_function_name = @@ -208,7 +215,12 @@ let range_n_case case (pos:Position.t) text = Range.create ~start:position_start ~end_:pos, actual_case case start_of_word -let completion_item_create ?(detail="") ?(priority_sort=0) ~range ~kind ~case text= +let p_highest = 3 +let p_high = 2 +let p_low = 1 +let p_none = 0 + +let completion_item_create ?(detail="") ?(priority_sort=p_none) ~range ~kind ~case text= let text = change ~case text in let textEdit =`TextEdit (TextEdit.create ~newText:text ~range) in let sortText = String.init priority_sort (Fun.const '.') ^ text in @@ -242,17 +254,22 @@ let map_completion_items ~(range:Range.t) ~case ~group ~filename comp_entries = |> List.rev_map begin fun { name; typ; is_valid } -> let typ = approx_type_to_string typ in completion_item_create - ~priority_sort:(if is_valid then 2 else 1) - ~kind:Variable ~range ~case name + ~priority_sort:(if is_valid then p_high else p_low) ~detail:(if is_valid then typ else typ ^ " (unexpected here)") + ~kind:Variable ~range ~case name end | ProcedureRef -> procedures_proposal ~filename pos group - |> List.rev_map (completion_item_create - ~priority_sort:3 ~kind:Function ~range ~case) + |> List.rev_map begin fun (typ, name) -> + completion_item_create + ~detail:typ + ~priority_sort:p_highest + ~kind:Function ~range ~case name + end | FunctionName -> all_intrinsic_function_name |> List.rev_map (completion_item_create + ~detail:"Intrinsic" ~kind:Function ~range ~case) | K tokens -> begin try [ completion_item_create ~kind:Keyword ~range ~case @@ diff --git a/test/lsp/lsp_completion.ml b/test/lsp/lsp_completion.ml index 0ad1aa14..d387ea41 100644 --- a/test/lsp/lsp_completion.ml +++ b/test/lsp/lsp_completion.ml @@ -1875,10 +1875,10 @@ let%expect_test "procedure-paragraph-completion" = 16 (line 13, character 22): Basic (78 entries): - SECOND-SECTION - FIRST-SECTION - FIRST-PARAGRAPH IN FIRST-SECTION - FIRST-PARAGRAPH + FIRST-PARAGRAPH IN FIRST-SECTION Paragraph + FIRST-PARAGRAPH Paragraph + FIRST-SECTION Section + SECOND-SECTION Section DATA-NAME Alphanum VAR Alphanum ACCEPT @@ -1954,10 +1954,10 @@ let%expect_test "procedure-paragraph-completion" = WRITE ZEROS Eager (78 entries): - SECOND-SECTION - FIRST-SECTION - FIRST-PARAGRAPH IN FIRST-SECTION - FIRST-PARAGRAPH + FIRST-PARAGRAPH IN FIRST-SECTION Paragraph + FIRST-PARAGRAPH Paragraph + FIRST-SECTION Section + SECOND-SECTION Section DATA-NAME Alphanum VAR Alphanum ACCEPT @@ -4279,240 +4279,240 @@ let%expect_test "intrinsic-completion" = 9 DISPLAY FUNCTION ABS (1) (line 6, character 17): Basic (117 entries): - BYTE-LENGTH - CHAR - CONTENT-OF - CONVERT - CURRENT-DATE - FORMATTED-DATETIME - FORMATTED-TIME - LENGTH - LOCALE-DATE - LOCALE-TIME-FROM-SECONDS - LOCALE-TIME - NUMVAL-C - RANDOM - RANGE - REVERSE - SIGN - SUM - TRIM - WHEN-COMPILED - YEAR-TO-YYYY - VARIANCE - UPPER-CASE - TEST-NUMVAL-F - TEST-NUMVAL-C - TEST-NUMVAL - TEST-FORMATTED-DATETIME - TEST-DAY-YYYYDDD - TEST-DATE-YYYYMMDD - TAN - SUBSTITUTE-CASE - SUBSTITUTE - STORED-CHAR-LENGTH - STANDARD-DEVIATION - STANDARD-COMPARE - SQRT - SIN - SECONDS-PAST-MIDNIGHT - SECONDS-FROM-FORMATTED-TIME - REM - PRESENT-VALUE - PI - ORD-MIN - ORD-MAX - ORD - NUMVAL-F - NUMVAL - NUMERIC-THOUSANDS-SEPARATOR - NUMERIC-DECIMAL-POINT - NATIONAL-OF - MONETARY-THOUSANDS-SEPARATOR - MONETARY-DECIMAL-POINT - MODULE-TIME - MODULE-SOURCE - MODULE-PATH - MODULE-NAME - MODULE-ID - MODULE-FORMATTED-DATE - MODULE-DATE - MODULE-CALLER-ID - MOD - MIN - MIDRANGE - MEDIAN - MEAN - MAX - LOWEST-ALGEBRAIC - LOWER-CASE - LOG10 - LOG - LOCALE-COMPARE - LENGTH-AN - INTEGER-PART - INTEGER-OF-FORMATTED-DATE - INTEGER-OF-DAY - INTEGER-OF-DATE - INTEGER-OF-BOOLEAN - INTEGER - HIGHEST-ALGEBRAIC - HEX-TO-CHAR - HEX-OF - FRACTION-PART - FORMATTED-DATE - FORMATTED-CURRENT-DATE - FIND-STRING - FACTORIAL - EXP10 - EXP - EXCEPTION-STATUS - EXCEPTION-STATEMENT - EXCEPTION-LOCATION-N - EXCEPTION-LOCATION - EXCEPTION-FILE-N - EXCEPTION-FILE - E - DISPLAY-OF - DAY-TO-YYYYDDD - DAY-OF-INTEGER - DATE-TO-YYYYMMDD - DATE-OF-INTEGER - CURRENCY-SYMBOL - COS - CONTENT-LENGTH - CONCATENATE - CONCAT - COMBINED-DATETIME - CHAR-NATIONAL - BOOLEAN-OF-INTEGER - BIT-TO-CHAR - BIT-OF - BASECONVERT - ATAN - ASIN - ANNUITY - ACOS - ABSOLUTE-VALUE - ABS + BYTE-LENGTH Intrinsic + CHAR Intrinsic + CONTENT-OF Intrinsic + CONVERT Intrinsic + CURRENT-DATE Intrinsic + FORMATTED-DATETIME Intrinsic + FORMATTED-TIME Intrinsic + LENGTH Intrinsic + LOCALE-DATE Intrinsic + LOCALE-TIME-FROM-SECONDS Intrinsic + LOCALE-TIME Intrinsic + NUMVAL-C Intrinsic + RANDOM Intrinsic + RANGE Intrinsic + REVERSE Intrinsic + SIGN Intrinsic + SUM Intrinsic + TRIM Intrinsic + WHEN-COMPILED Intrinsic + YEAR-TO-YYYY Intrinsic + VARIANCE Intrinsic + UPPER-CASE Intrinsic + TEST-NUMVAL-F Intrinsic + TEST-NUMVAL-C Intrinsic + TEST-NUMVAL Intrinsic + TEST-FORMATTED-DATETIME Intrinsic + TEST-DAY-YYYYDDD Intrinsic + TEST-DATE-YYYYMMDD Intrinsic + TAN Intrinsic + SUBSTITUTE-CASE Intrinsic + SUBSTITUTE Intrinsic + STORED-CHAR-LENGTH Intrinsic + STANDARD-DEVIATION Intrinsic + STANDARD-COMPARE Intrinsic + SQRT Intrinsic + SIN Intrinsic + SECONDS-PAST-MIDNIGHT Intrinsic + SECONDS-FROM-FORMATTED-TIME Intrinsic + REM Intrinsic + PRESENT-VALUE Intrinsic + PI Intrinsic + ORD-MIN Intrinsic + ORD-MAX Intrinsic + ORD Intrinsic + NUMVAL-F Intrinsic + NUMVAL Intrinsic + NUMERIC-THOUSANDS-SEPARATOR Intrinsic + NUMERIC-DECIMAL-POINT Intrinsic + NATIONAL-OF Intrinsic + MONETARY-THOUSANDS-SEPARATOR Intrinsic + MONETARY-DECIMAL-POINT Intrinsic + MODULE-TIME Intrinsic + MODULE-SOURCE Intrinsic + MODULE-PATH Intrinsic + MODULE-NAME Intrinsic + MODULE-ID Intrinsic + MODULE-FORMATTED-DATE Intrinsic + MODULE-DATE Intrinsic + MODULE-CALLER-ID Intrinsic + MOD Intrinsic + MIN Intrinsic + MIDRANGE Intrinsic + MEDIAN Intrinsic + MEAN Intrinsic + MAX Intrinsic + LOWEST-ALGEBRAIC Intrinsic + LOWER-CASE Intrinsic + LOG10 Intrinsic + LOG Intrinsic + LOCALE-COMPARE Intrinsic + LENGTH-AN Intrinsic + INTEGER-PART Intrinsic + INTEGER-OF-FORMATTED-DATE Intrinsic + INTEGER-OF-DAY Intrinsic + INTEGER-OF-DATE Intrinsic + INTEGER-OF-BOOLEAN Intrinsic + INTEGER Intrinsic + HIGHEST-ALGEBRAIC Intrinsic + HEX-TO-CHAR Intrinsic + HEX-OF Intrinsic + FRACTION-PART Intrinsic + FORMATTED-DATE Intrinsic + FORMATTED-CURRENT-DATE Intrinsic + FIND-STRING Intrinsic + FACTORIAL Intrinsic + EXP10 Intrinsic + EXP Intrinsic + EXCEPTION-STATUS Intrinsic + EXCEPTION-STATEMENT Intrinsic + EXCEPTION-LOCATION-N Intrinsic + EXCEPTION-LOCATION Intrinsic + EXCEPTION-FILE-N Intrinsic + EXCEPTION-FILE Intrinsic + E Intrinsic + DISPLAY-OF Intrinsic + DAY-TO-YYYYDDD Intrinsic + DAY-OF-INTEGER Intrinsic + DATE-TO-YYYYMMDD Intrinsic + DATE-OF-INTEGER Intrinsic + CURRENCY-SYMBOL Intrinsic + COS Intrinsic + CONTENT-LENGTH Intrinsic + CONCATENATE Intrinsic + CONCAT Intrinsic + COMBINED-DATETIME Intrinsic + CHAR-NATIONAL Intrinsic + BOOLEAN-OF-INTEGER Intrinsic + BIT-TO-CHAR Intrinsic + BIT-OF Intrinsic + BASECONVERT Intrinsic + ATAN Intrinsic + ASIN Intrinsic + ANNUITY Intrinsic + ACOS Intrinsic + ABSOLUTE-VALUE Intrinsic + ABS Intrinsic ALL INTRINSIC Eager (117 entries): - BYTE-LENGTH - CHAR - CONTENT-OF - CONVERT - CURRENT-DATE - FORMATTED-DATETIME - FORMATTED-TIME - LENGTH - LOCALE-DATE - LOCALE-TIME-FROM-SECONDS - LOCALE-TIME - NUMVAL-C - RANDOM - RANGE - REVERSE - SIGN - SUM - TRIM - WHEN-COMPILED - YEAR-TO-YYYY - VARIANCE - UPPER-CASE - TEST-NUMVAL-F - TEST-NUMVAL-C - TEST-NUMVAL - TEST-FORMATTED-DATETIME - TEST-DAY-YYYYDDD - TEST-DATE-YYYYMMDD - TAN - SUBSTITUTE-CASE - SUBSTITUTE - STORED-CHAR-LENGTH - STANDARD-DEVIATION - STANDARD-COMPARE - SQRT - SIN - SECONDS-PAST-MIDNIGHT - SECONDS-FROM-FORMATTED-TIME - REM - PRESENT-VALUE - PI - ORD-MIN - ORD-MAX - ORD - NUMVAL-F - NUMVAL - NUMERIC-THOUSANDS-SEPARATOR - NUMERIC-DECIMAL-POINT - NATIONAL-OF - MONETARY-THOUSANDS-SEPARATOR - MONETARY-DECIMAL-POINT - MODULE-TIME - MODULE-SOURCE - MODULE-PATH - MODULE-NAME - MODULE-ID - MODULE-FORMATTED-DATE - MODULE-DATE - MODULE-CALLER-ID - MOD - MIN - MIDRANGE - MEDIAN - MEAN - MAX - LOWEST-ALGEBRAIC - LOWER-CASE - LOG10 - LOG - LOCALE-COMPARE - LENGTH-AN - INTEGER-PART - INTEGER-OF-FORMATTED-DATE - INTEGER-OF-DAY - INTEGER-OF-DATE - INTEGER-OF-BOOLEAN - INTEGER - HIGHEST-ALGEBRAIC - HEX-TO-CHAR - HEX-OF - FRACTION-PART - FORMATTED-DATE - FORMATTED-CURRENT-DATE - FIND-STRING - FACTORIAL - EXP10 - EXP - EXCEPTION-STATUS - EXCEPTION-STATEMENT - EXCEPTION-LOCATION-N - EXCEPTION-LOCATION - EXCEPTION-FILE-N - EXCEPTION-FILE - E - DISPLAY-OF - DAY-TO-YYYYDDD - DAY-OF-INTEGER - DATE-TO-YYYYMMDD - DATE-OF-INTEGER - CURRENCY-SYMBOL - COS - CONTENT-LENGTH - CONCATENATE - CONCAT - COMBINED-DATETIME - CHAR-NATIONAL - BOOLEAN-OF-INTEGER - BIT-TO-CHAR - BIT-OF - BASECONVERT - ATAN - ASIN - ANNUITY - ACOS - ABSOLUTE-VALUE - ABS + BYTE-LENGTH Intrinsic + CHAR Intrinsic + CONTENT-OF Intrinsic + CONVERT Intrinsic + CURRENT-DATE Intrinsic + FORMATTED-DATETIME Intrinsic + FORMATTED-TIME Intrinsic + LENGTH Intrinsic + LOCALE-DATE Intrinsic + LOCALE-TIME-FROM-SECONDS Intrinsic + LOCALE-TIME Intrinsic + NUMVAL-C Intrinsic + RANDOM Intrinsic + RANGE Intrinsic + REVERSE Intrinsic + SIGN Intrinsic + SUM Intrinsic + TRIM Intrinsic + WHEN-COMPILED Intrinsic + YEAR-TO-YYYY Intrinsic + VARIANCE Intrinsic + UPPER-CASE Intrinsic + TEST-NUMVAL-F Intrinsic + TEST-NUMVAL-C Intrinsic + TEST-NUMVAL Intrinsic + TEST-FORMATTED-DATETIME Intrinsic + TEST-DAY-YYYYDDD Intrinsic + TEST-DATE-YYYYMMDD Intrinsic + TAN Intrinsic + SUBSTITUTE-CASE Intrinsic + SUBSTITUTE Intrinsic + STORED-CHAR-LENGTH Intrinsic + STANDARD-DEVIATION Intrinsic + STANDARD-COMPARE Intrinsic + SQRT Intrinsic + SIN Intrinsic + SECONDS-PAST-MIDNIGHT Intrinsic + SECONDS-FROM-FORMATTED-TIME Intrinsic + REM Intrinsic + PRESENT-VALUE Intrinsic + PI Intrinsic + ORD-MIN Intrinsic + ORD-MAX Intrinsic + ORD Intrinsic + NUMVAL-F Intrinsic + NUMVAL Intrinsic + NUMERIC-THOUSANDS-SEPARATOR Intrinsic + NUMERIC-DECIMAL-POINT Intrinsic + NATIONAL-OF Intrinsic + MONETARY-THOUSANDS-SEPARATOR Intrinsic + MONETARY-DECIMAL-POINT Intrinsic + MODULE-TIME Intrinsic + MODULE-SOURCE Intrinsic + MODULE-PATH Intrinsic + MODULE-NAME Intrinsic + MODULE-ID Intrinsic + MODULE-FORMATTED-DATE Intrinsic + MODULE-DATE Intrinsic + MODULE-CALLER-ID Intrinsic + MOD Intrinsic + MIN Intrinsic + MIDRANGE Intrinsic + MEDIAN Intrinsic + MEAN Intrinsic + MAX Intrinsic + LOWEST-ALGEBRAIC Intrinsic + LOWER-CASE Intrinsic + LOG10 Intrinsic + LOG Intrinsic + LOCALE-COMPARE Intrinsic + LENGTH-AN Intrinsic + INTEGER-PART Intrinsic + INTEGER-OF-FORMATTED-DATE Intrinsic + INTEGER-OF-DAY Intrinsic + INTEGER-OF-DATE Intrinsic + INTEGER-OF-BOOLEAN Intrinsic + INTEGER Intrinsic + HIGHEST-ALGEBRAIC Intrinsic + HEX-TO-CHAR Intrinsic + HEX-OF Intrinsic + FRACTION-PART Intrinsic + FORMATTED-DATE Intrinsic + FORMATTED-CURRENT-DATE Intrinsic + FIND-STRING Intrinsic + FACTORIAL Intrinsic + EXP10 Intrinsic + EXP Intrinsic + EXCEPTION-STATUS Intrinsic + EXCEPTION-STATEMENT Intrinsic + EXCEPTION-LOCATION-N Intrinsic + EXCEPTION-LOCATION Intrinsic + EXCEPTION-FILE-N Intrinsic + EXCEPTION-FILE Intrinsic + E Intrinsic + DISPLAY-OF Intrinsic + DAY-TO-YYYYDDD Intrinsic + DAY-OF-INTEGER Intrinsic + DATE-TO-YYYYMMDD Intrinsic + DATE-OF-INTEGER Intrinsic + CURRENCY-SYMBOL Intrinsic + COS Intrinsic + CONTENT-LENGTH Intrinsic + CONCATENATE Intrinsic + CONCAT Intrinsic + COMBINED-DATETIME Intrinsic + CHAR-NATIONAL Intrinsic + BOOLEAN-OF-INTEGER Intrinsic + BIT-TO-CHAR Intrinsic + BIT-OF Intrinsic + BASECONVERT Intrinsic + ATAN Intrinsic + ASIN Intrinsic + ANNUITY Intrinsic + ACOS Intrinsic + ABSOLUTE-VALUE Intrinsic + ABS Intrinsic ALL INTRINSIC __rootdir__/prog.cob:7.21: 4 ENVIRONMENT DIVISION. @@ -4524,122 +4524,122 @@ let%expect_test "intrinsic-completion" = 9 DISPLAY FUNCTION ABS (1) (line 6, character 21): Basic (124 entries): - BYTE-LENGTH - CHAR - CONTENT-OF - CONVERT - CURRENT-DATE - FORMATTED-DATETIME - FORMATTED-TIME - LENGTH - LOCALE-DATE - LOCALE-TIME-FROM-SECONDS - LOCALE-TIME - NUMVAL-C - RANDOM - RANGE - REVERSE - SIGN - SUM - TRIM - WHEN-COMPILED - YEAR-TO-YYYY - VARIANCE - UPPER-CASE - TEST-NUMVAL-F - TEST-NUMVAL-C - TEST-NUMVAL - TEST-FORMATTED-DATETIME - TEST-DAY-YYYYDDD - TEST-DATE-YYYYMMDD - TAN - SUBSTITUTE-CASE - SUBSTITUTE - STORED-CHAR-LENGTH - STANDARD-DEVIATION - STANDARD-COMPARE - SQRT - SIN - SECONDS-PAST-MIDNIGHT - SECONDS-FROM-FORMATTED-TIME - REM - PRESENT-VALUE - PI - ORD-MIN - ORD-MAX - ORD - NUMVAL-F - NUMVAL - NUMERIC-THOUSANDS-SEPARATOR - NUMERIC-DECIMAL-POINT - NATIONAL-OF - MONETARY-THOUSANDS-SEPARATOR - MONETARY-DECIMAL-POINT - MODULE-TIME - MODULE-SOURCE - MODULE-PATH - MODULE-NAME - MODULE-ID - MODULE-FORMATTED-DATE - MODULE-DATE - MODULE-CALLER-ID - MOD - MIN - MIDRANGE - MEDIAN - MEAN - MAX - LOWEST-ALGEBRAIC - LOWER-CASE - LOG10 - LOG - LOCALE-COMPARE - LENGTH-AN - INTEGER-PART - INTEGER-OF-FORMATTED-DATE - INTEGER-OF-DAY - INTEGER-OF-DATE - INTEGER-OF-BOOLEAN - INTEGER - HIGHEST-ALGEBRAIC - HEX-TO-CHAR - HEX-OF - FRACTION-PART - FORMATTED-DATE - FORMATTED-CURRENT-DATE - FIND-STRING - FACTORIAL - EXP10 - EXP - EXCEPTION-STATUS - EXCEPTION-STATEMENT - EXCEPTION-LOCATION-N - EXCEPTION-LOCATION - EXCEPTION-FILE-N - EXCEPTION-FILE - E - DISPLAY-OF - DAY-TO-YYYYDDD - DAY-OF-INTEGER - DATE-TO-YYYYMMDD - DATE-OF-INTEGER - CURRENCY-SYMBOL - COS - CONTENT-LENGTH - CONCATENATE - CONCAT - COMBINED-DATETIME - CHAR-NATIONAL - BOOLEAN-OF-INTEGER - BIT-TO-CHAR - BIT-OF - BASECONVERT - ATAN - ASIN - ANNUITY - ACOS - ABSOLUTE-VALUE - ABS + BYTE-LENGTH Intrinsic + CHAR Intrinsic + CONTENT-OF Intrinsic + CONVERT Intrinsic + CURRENT-DATE Intrinsic + FORMATTED-DATETIME Intrinsic + FORMATTED-TIME Intrinsic + LENGTH Intrinsic + LOCALE-DATE Intrinsic + LOCALE-TIME-FROM-SECONDS Intrinsic + LOCALE-TIME Intrinsic + NUMVAL-C Intrinsic + RANDOM Intrinsic + RANGE Intrinsic + REVERSE Intrinsic + SIGN Intrinsic + SUM Intrinsic + TRIM Intrinsic + WHEN-COMPILED Intrinsic + YEAR-TO-YYYY Intrinsic + VARIANCE Intrinsic + UPPER-CASE Intrinsic + TEST-NUMVAL-F Intrinsic + TEST-NUMVAL-C Intrinsic + TEST-NUMVAL Intrinsic + TEST-FORMATTED-DATETIME Intrinsic + TEST-DAY-YYYYDDD Intrinsic + TEST-DATE-YYYYMMDD Intrinsic + TAN Intrinsic + SUBSTITUTE-CASE Intrinsic + SUBSTITUTE Intrinsic + STORED-CHAR-LENGTH Intrinsic + STANDARD-DEVIATION Intrinsic + STANDARD-COMPARE Intrinsic + SQRT Intrinsic + SIN Intrinsic + SECONDS-PAST-MIDNIGHT Intrinsic + SECONDS-FROM-FORMATTED-TIME Intrinsic + REM Intrinsic + PRESENT-VALUE Intrinsic + PI Intrinsic + ORD-MIN Intrinsic + ORD-MAX Intrinsic + ORD Intrinsic + NUMVAL-F Intrinsic + NUMVAL Intrinsic + NUMERIC-THOUSANDS-SEPARATOR Intrinsic + NUMERIC-DECIMAL-POINT Intrinsic + NATIONAL-OF Intrinsic + MONETARY-THOUSANDS-SEPARATOR Intrinsic + MONETARY-DECIMAL-POINT Intrinsic + MODULE-TIME Intrinsic + MODULE-SOURCE Intrinsic + MODULE-PATH Intrinsic + MODULE-NAME Intrinsic + MODULE-ID Intrinsic + MODULE-FORMATTED-DATE Intrinsic + MODULE-DATE Intrinsic + MODULE-CALLER-ID Intrinsic + MOD Intrinsic + MIN Intrinsic + MIDRANGE Intrinsic + MEDIAN Intrinsic + MEAN Intrinsic + MAX Intrinsic + LOWEST-ALGEBRAIC Intrinsic + LOWER-CASE Intrinsic + LOG10 Intrinsic + LOG Intrinsic + LOCALE-COMPARE Intrinsic + LENGTH-AN Intrinsic + INTEGER-PART Intrinsic + INTEGER-OF-FORMATTED-DATE Intrinsic + INTEGER-OF-DAY Intrinsic + INTEGER-OF-DATE Intrinsic + INTEGER-OF-BOOLEAN Intrinsic + INTEGER Intrinsic + HIGHEST-ALGEBRAIC Intrinsic + HEX-TO-CHAR Intrinsic + HEX-OF Intrinsic + FRACTION-PART Intrinsic + FORMATTED-DATE Intrinsic + FORMATTED-CURRENT-DATE Intrinsic + FIND-STRING Intrinsic + FACTORIAL Intrinsic + EXP10 Intrinsic + EXP Intrinsic + EXCEPTION-STATUS Intrinsic + EXCEPTION-STATEMENT Intrinsic + EXCEPTION-LOCATION-N Intrinsic + EXCEPTION-LOCATION Intrinsic + EXCEPTION-FILE-N Intrinsic + EXCEPTION-FILE Intrinsic + E Intrinsic + DISPLAY-OF Intrinsic + DAY-TO-YYYYDDD Intrinsic + DAY-OF-INTEGER Intrinsic + DATE-TO-YYYYMMDD Intrinsic + DATE-OF-INTEGER Intrinsic + CURRENCY-SYMBOL Intrinsic + COS Intrinsic + CONTENT-LENGTH Intrinsic + CONCATENATE Intrinsic + CONCAT Intrinsic + COMBINED-DATETIME Intrinsic + CHAR-NATIONAL Intrinsic + BOOLEAN-OF-INTEGER Intrinsic + BIT-TO-CHAR Intrinsic + BIT-OF Intrinsic + BASECONVERT Intrinsic + ATAN Intrinsic + ASIN Intrinsic + ANNUITY Intrinsic + ACOS Intrinsic + ABSOLUTE-VALUE Intrinsic + ABS Intrinsic AS CLASS FUNCTION @@ -4649,122 +4649,122 @@ let%expect_test "intrinsic-completion" = PROGRAM PROPERTY Eager (124 entries): - BYTE-LENGTH - CHAR - CONTENT-OF - CONVERT - CURRENT-DATE - FORMATTED-DATETIME - FORMATTED-TIME - LENGTH - LOCALE-DATE - LOCALE-TIME-FROM-SECONDS - LOCALE-TIME - NUMVAL-C - RANDOM - RANGE - REVERSE - SIGN - SUM - TRIM - WHEN-COMPILED - YEAR-TO-YYYY - VARIANCE - UPPER-CASE - TEST-NUMVAL-F - TEST-NUMVAL-C - TEST-NUMVAL - TEST-FORMATTED-DATETIME - TEST-DAY-YYYYDDD - TEST-DATE-YYYYMMDD - TAN - SUBSTITUTE-CASE - SUBSTITUTE - STORED-CHAR-LENGTH - STANDARD-DEVIATION - STANDARD-COMPARE - SQRT - SIN - SECONDS-PAST-MIDNIGHT - SECONDS-FROM-FORMATTED-TIME - REM - PRESENT-VALUE - PI - ORD-MIN - ORD-MAX - ORD - NUMVAL-F - NUMVAL - NUMERIC-THOUSANDS-SEPARATOR - NUMERIC-DECIMAL-POINT - NATIONAL-OF - MONETARY-THOUSANDS-SEPARATOR - MONETARY-DECIMAL-POINT - MODULE-TIME - MODULE-SOURCE - MODULE-PATH - MODULE-NAME - MODULE-ID - MODULE-FORMATTED-DATE - MODULE-DATE - MODULE-CALLER-ID - MOD - MIN - MIDRANGE - MEDIAN - MEAN - MAX - LOWEST-ALGEBRAIC - LOWER-CASE - LOG10 - LOG - LOCALE-COMPARE - LENGTH-AN - INTEGER-PART - INTEGER-OF-FORMATTED-DATE - INTEGER-OF-DAY - INTEGER-OF-DATE - INTEGER-OF-BOOLEAN - INTEGER - HIGHEST-ALGEBRAIC - HEX-TO-CHAR - HEX-OF - FRACTION-PART - FORMATTED-DATE - FORMATTED-CURRENT-DATE - FIND-STRING - FACTORIAL - EXP10 - EXP - EXCEPTION-STATUS - EXCEPTION-STATEMENT - EXCEPTION-LOCATION-N - EXCEPTION-LOCATION - EXCEPTION-FILE-N - EXCEPTION-FILE - E - DISPLAY-OF - DAY-TO-YYYYDDD - DAY-OF-INTEGER - DATE-TO-YYYYMMDD - DATE-OF-INTEGER - CURRENCY-SYMBOL - COS - CONTENT-LENGTH - CONCATENATE - CONCAT - COMBINED-DATETIME - CHAR-NATIONAL - BOOLEAN-OF-INTEGER - BIT-TO-CHAR - BIT-OF - BASECONVERT - ATAN - ASIN - ANNUITY - ACOS - ABSOLUTE-VALUE - ABS + BYTE-LENGTH Intrinsic + CHAR Intrinsic + CONTENT-OF Intrinsic + CONVERT Intrinsic + CURRENT-DATE Intrinsic + FORMATTED-DATETIME Intrinsic + FORMATTED-TIME Intrinsic + LENGTH Intrinsic + LOCALE-DATE Intrinsic + LOCALE-TIME-FROM-SECONDS Intrinsic + LOCALE-TIME Intrinsic + NUMVAL-C Intrinsic + RANDOM Intrinsic + RANGE Intrinsic + REVERSE Intrinsic + SIGN Intrinsic + SUM Intrinsic + TRIM Intrinsic + WHEN-COMPILED Intrinsic + YEAR-TO-YYYY Intrinsic + VARIANCE Intrinsic + UPPER-CASE Intrinsic + TEST-NUMVAL-F Intrinsic + TEST-NUMVAL-C Intrinsic + TEST-NUMVAL Intrinsic + TEST-FORMATTED-DATETIME Intrinsic + TEST-DAY-YYYYDDD Intrinsic + TEST-DATE-YYYYMMDD Intrinsic + TAN Intrinsic + SUBSTITUTE-CASE Intrinsic + SUBSTITUTE Intrinsic + STORED-CHAR-LENGTH Intrinsic + STANDARD-DEVIATION Intrinsic + STANDARD-COMPARE Intrinsic + SQRT Intrinsic + SIN Intrinsic + SECONDS-PAST-MIDNIGHT Intrinsic + SECONDS-FROM-FORMATTED-TIME Intrinsic + REM Intrinsic + PRESENT-VALUE Intrinsic + PI Intrinsic + ORD-MIN Intrinsic + ORD-MAX Intrinsic + ORD Intrinsic + NUMVAL-F Intrinsic + NUMVAL Intrinsic + NUMERIC-THOUSANDS-SEPARATOR Intrinsic + NUMERIC-DECIMAL-POINT Intrinsic + NATIONAL-OF Intrinsic + MONETARY-THOUSANDS-SEPARATOR Intrinsic + MONETARY-DECIMAL-POINT Intrinsic + MODULE-TIME Intrinsic + MODULE-SOURCE Intrinsic + MODULE-PATH Intrinsic + MODULE-NAME Intrinsic + MODULE-ID Intrinsic + MODULE-FORMATTED-DATE Intrinsic + MODULE-DATE Intrinsic + MODULE-CALLER-ID Intrinsic + MOD Intrinsic + MIN Intrinsic + MIDRANGE Intrinsic + MEDIAN Intrinsic + MEAN Intrinsic + MAX Intrinsic + LOWEST-ALGEBRAIC Intrinsic + LOWER-CASE Intrinsic + LOG10 Intrinsic + LOG Intrinsic + LOCALE-COMPARE Intrinsic + LENGTH-AN Intrinsic + INTEGER-PART Intrinsic + INTEGER-OF-FORMATTED-DATE Intrinsic + INTEGER-OF-DAY Intrinsic + INTEGER-OF-DATE Intrinsic + INTEGER-OF-BOOLEAN Intrinsic + INTEGER Intrinsic + HIGHEST-ALGEBRAIC Intrinsic + HEX-TO-CHAR Intrinsic + HEX-OF Intrinsic + FRACTION-PART Intrinsic + FORMATTED-DATE Intrinsic + FORMATTED-CURRENT-DATE Intrinsic + FIND-STRING Intrinsic + FACTORIAL Intrinsic + EXP10 Intrinsic + EXP Intrinsic + EXCEPTION-STATUS Intrinsic + EXCEPTION-STATEMENT Intrinsic + EXCEPTION-LOCATION-N Intrinsic + EXCEPTION-LOCATION Intrinsic + EXCEPTION-FILE-N Intrinsic + EXCEPTION-FILE Intrinsic + E Intrinsic + DISPLAY-OF Intrinsic + DAY-TO-YYYYDDD Intrinsic + DAY-OF-INTEGER Intrinsic + DATE-TO-YYYYMMDD Intrinsic + DATE-OF-INTEGER Intrinsic + CURRENCY-SYMBOL Intrinsic + COS Intrinsic + CONTENT-LENGTH Intrinsic + CONCATENATE Intrinsic + CONCAT Intrinsic + COMBINED-DATETIME Intrinsic + CHAR-NATIONAL Intrinsic + BOOLEAN-OF-INTEGER Intrinsic + BIT-TO-CHAR Intrinsic + BIT-OF Intrinsic + BASECONVERT Intrinsic + ATAN Intrinsic + ASIN Intrinsic + ANNUITY Intrinsic + ACOS Intrinsic + ABSOLUTE-VALUE Intrinsic + ABS Intrinsic AS CLASS FUNCTION @@ -4824,239 +4824,239 @@ let%expect_test "intrinsic-completion" = 11 (line 8, character 27): Basic (116 entries): - BYTE-LENGTH - CHAR - CONTENT-OF - CONVERT - CURRENT-DATE - FORMATTED-DATETIME - FORMATTED-TIME - LENGTH - LOCALE-DATE - LOCALE-TIME-FROM-SECONDS - LOCALE-TIME - NUMVAL-C - RANDOM - RANGE - REVERSE - SIGN - SUM - TRIM - WHEN-COMPILED - YEAR-TO-YYYY - VARIANCE - UPPER-CASE - TEST-NUMVAL-F - TEST-NUMVAL-C - TEST-NUMVAL - TEST-FORMATTED-DATETIME - TEST-DAY-YYYYDDD - TEST-DATE-YYYYMMDD - TAN - SUBSTITUTE-CASE - SUBSTITUTE - STORED-CHAR-LENGTH - STANDARD-DEVIATION - STANDARD-COMPARE - SQRT - SIN - SECONDS-PAST-MIDNIGHT - SECONDS-FROM-FORMATTED-TIME - REM - PRESENT-VALUE - PI - ORD-MIN - ORD-MAX - ORD - NUMVAL-F - NUMVAL - NUMERIC-THOUSANDS-SEPARATOR - NUMERIC-DECIMAL-POINT - NATIONAL-OF - MONETARY-THOUSANDS-SEPARATOR - MONETARY-DECIMAL-POINT - MODULE-TIME - MODULE-SOURCE - MODULE-PATH - MODULE-NAME - MODULE-ID - MODULE-FORMATTED-DATE - MODULE-DATE - MODULE-CALLER-ID - MOD - MIN - MIDRANGE - MEDIAN - MEAN - MAX - LOWEST-ALGEBRAIC - LOWER-CASE - LOG10 - LOG - LOCALE-COMPARE - LENGTH-AN - INTEGER-PART - INTEGER-OF-FORMATTED-DATE - INTEGER-OF-DAY - INTEGER-OF-DATE - INTEGER-OF-BOOLEAN - INTEGER - HIGHEST-ALGEBRAIC - HEX-TO-CHAR - HEX-OF - FRACTION-PART - FORMATTED-DATE - FORMATTED-CURRENT-DATE - FIND-STRING - FACTORIAL - EXP10 - EXP - EXCEPTION-STATUS - EXCEPTION-STATEMENT - EXCEPTION-LOCATION-N - EXCEPTION-LOCATION - EXCEPTION-FILE-N - EXCEPTION-FILE - E - DISPLAY-OF - DAY-TO-YYYYDDD - DAY-OF-INTEGER - DATE-TO-YYYYMMDD - DATE-OF-INTEGER - CURRENCY-SYMBOL - COS - CONTENT-LENGTH - CONCATENATE - CONCAT - COMBINED-DATETIME - CHAR-NATIONAL - BOOLEAN-OF-INTEGER - BIT-TO-CHAR - BIT-OF - BASECONVERT - ATAN - ASIN - ANNUITY - ACOS - ABSOLUTE-VALUE - ABS + BYTE-LENGTH Intrinsic + CHAR Intrinsic + CONTENT-OF Intrinsic + CONVERT Intrinsic + CURRENT-DATE Intrinsic + FORMATTED-DATETIME Intrinsic + FORMATTED-TIME Intrinsic + LENGTH Intrinsic + LOCALE-DATE Intrinsic + LOCALE-TIME-FROM-SECONDS Intrinsic + LOCALE-TIME Intrinsic + NUMVAL-C Intrinsic + RANDOM Intrinsic + RANGE Intrinsic + REVERSE Intrinsic + SIGN Intrinsic + SUM Intrinsic + TRIM Intrinsic + WHEN-COMPILED Intrinsic + YEAR-TO-YYYY Intrinsic + VARIANCE Intrinsic + UPPER-CASE Intrinsic + TEST-NUMVAL-F Intrinsic + TEST-NUMVAL-C Intrinsic + TEST-NUMVAL Intrinsic + TEST-FORMATTED-DATETIME Intrinsic + TEST-DAY-YYYYDDD Intrinsic + TEST-DATE-YYYYMMDD Intrinsic + TAN Intrinsic + SUBSTITUTE-CASE Intrinsic + SUBSTITUTE Intrinsic + STORED-CHAR-LENGTH Intrinsic + STANDARD-DEVIATION Intrinsic + STANDARD-COMPARE Intrinsic + SQRT Intrinsic + SIN Intrinsic + SECONDS-PAST-MIDNIGHT Intrinsic + SECONDS-FROM-FORMATTED-TIME Intrinsic + REM Intrinsic + PRESENT-VALUE Intrinsic + PI Intrinsic + ORD-MIN Intrinsic + ORD-MAX Intrinsic + ORD Intrinsic + NUMVAL-F Intrinsic + NUMVAL Intrinsic + NUMERIC-THOUSANDS-SEPARATOR Intrinsic + NUMERIC-DECIMAL-POINT Intrinsic + NATIONAL-OF Intrinsic + MONETARY-THOUSANDS-SEPARATOR Intrinsic + MONETARY-DECIMAL-POINT Intrinsic + MODULE-TIME Intrinsic + MODULE-SOURCE Intrinsic + MODULE-PATH Intrinsic + MODULE-NAME Intrinsic + MODULE-ID Intrinsic + MODULE-FORMATTED-DATE Intrinsic + MODULE-DATE Intrinsic + MODULE-CALLER-ID Intrinsic + MOD Intrinsic + MIN Intrinsic + MIDRANGE Intrinsic + MEDIAN Intrinsic + MEAN Intrinsic + MAX Intrinsic + LOWEST-ALGEBRAIC Intrinsic + LOWER-CASE Intrinsic + LOG10 Intrinsic + LOG Intrinsic + LOCALE-COMPARE Intrinsic + LENGTH-AN Intrinsic + INTEGER-PART Intrinsic + INTEGER-OF-FORMATTED-DATE Intrinsic + INTEGER-OF-DAY Intrinsic + INTEGER-OF-DATE Intrinsic + INTEGER-OF-BOOLEAN Intrinsic + INTEGER Intrinsic + HIGHEST-ALGEBRAIC Intrinsic + HEX-TO-CHAR Intrinsic + HEX-OF Intrinsic + FRACTION-PART Intrinsic + FORMATTED-DATE Intrinsic + FORMATTED-CURRENT-DATE Intrinsic + FIND-STRING Intrinsic + FACTORIAL Intrinsic + EXP10 Intrinsic + EXP Intrinsic + EXCEPTION-STATUS Intrinsic + EXCEPTION-STATEMENT Intrinsic + EXCEPTION-LOCATION-N Intrinsic + EXCEPTION-LOCATION Intrinsic + EXCEPTION-FILE-N Intrinsic + EXCEPTION-FILE Intrinsic + E Intrinsic + DISPLAY-OF Intrinsic + DAY-TO-YYYYDDD Intrinsic + DAY-OF-INTEGER Intrinsic + DATE-TO-YYYYMMDD Intrinsic + DATE-OF-INTEGER Intrinsic + CURRENCY-SYMBOL Intrinsic + COS Intrinsic + CONTENT-LENGTH Intrinsic + CONCATENATE Intrinsic + CONCAT Intrinsic + COMBINED-DATETIME Intrinsic + CHAR-NATIONAL Intrinsic + BOOLEAN-OF-INTEGER Intrinsic + BIT-TO-CHAR Intrinsic + BIT-OF Intrinsic + BASECONVERT Intrinsic + ATAN Intrinsic + ASIN Intrinsic + ANNUITY Intrinsic + ACOS Intrinsic + ABSOLUTE-VALUE Intrinsic + ABS Intrinsic Eager (116 entries): - BYTE-LENGTH - CHAR - CONTENT-OF - CONVERT - CURRENT-DATE - FORMATTED-DATETIME - FORMATTED-TIME - LENGTH - LOCALE-DATE - LOCALE-TIME-FROM-SECONDS - LOCALE-TIME - NUMVAL-C - RANDOM - RANGE - REVERSE - SIGN - SUM - TRIM - WHEN-COMPILED - YEAR-TO-YYYY - VARIANCE - UPPER-CASE - TEST-NUMVAL-F - TEST-NUMVAL-C - TEST-NUMVAL - TEST-FORMATTED-DATETIME - TEST-DAY-YYYYDDD - TEST-DATE-YYYYMMDD - TAN - SUBSTITUTE-CASE - SUBSTITUTE - STORED-CHAR-LENGTH - STANDARD-DEVIATION - STANDARD-COMPARE - SQRT - SIN - SECONDS-PAST-MIDNIGHT - SECONDS-FROM-FORMATTED-TIME - REM - PRESENT-VALUE - PI - ORD-MIN - ORD-MAX - ORD - NUMVAL-F - NUMVAL - NUMERIC-THOUSANDS-SEPARATOR - NUMERIC-DECIMAL-POINT - NATIONAL-OF - MONETARY-THOUSANDS-SEPARATOR - MONETARY-DECIMAL-POINT - MODULE-TIME - MODULE-SOURCE - MODULE-PATH - MODULE-NAME - MODULE-ID - MODULE-FORMATTED-DATE - MODULE-DATE - MODULE-CALLER-ID - MOD - MIN - MIDRANGE - MEDIAN - MEAN - MAX - LOWEST-ALGEBRAIC - LOWER-CASE - LOG10 - LOG - LOCALE-COMPARE - LENGTH-AN - INTEGER-PART - INTEGER-OF-FORMATTED-DATE - INTEGER-OF-DAY - INTEGER-OF-DATE - INTEGER-OF-BOOLEAN - INTEGER - HIGHEST-ALGEBRAIC - HEX-TO-CHAR - HEX-OF - FRACTION-PART - FORMATTED-DATE - FORMATTED-CURRENT-DATE - FIND-STRING - FACTORIAL - EXP10 - EXP - EXCEPTION-STATUS - EXCEPTION-STATEMENT - EXCEPTION-LOCATION-N - EXCEPTION-LOCATION - EXCEPTION-FILE-N - EXCEPTION-FILE - E - DISPLAY-OF - DAY-TO-YYYYDDD - DAY-OF-INTEGER - DATE-TO-YYYYMMDD - DATE-OF-INTEGER - CURRENCY-SYMBOL - COS - CONTENT-LENGTH - CONCATENATE - CONCAT - COMBINED-DATETIME - CHAR-NATIONAL - BOOLEAN-OF-INTEGER - BIT-TO-CHAR - BIT-OF - BASECONVERT - ATAN - ASIN - ANNUITY - ACOS - ABSOLUTE-VALUE - ABS + BYTE-LENGTH Intrinsic + CHAR Intrinsic + CONTENT-OF Intrinsic + CONVERT Intrinsic + CURRENT-DATE Intrinsic + FORMATTED-DATETIME Intrinsic + FORMATTED-TIME Intrinsic + LENGTH Intrinsic + LOCALE-DATE Intrinsic + LOCALE-TIME-FROM-SECONDS Intrinsic + LOCALE-TIME Intrinsic + NUMVAL-C Intrinsic + RANDOM Intrinsic + RANGE Intrinsic + REVERSE Intrinsic + SIGN Intrinsic + SUM Intrinsic + TRIM Intrinsic + WHEN-COMPILED Intrinsic + YEAR-TO-YYYY Intrinsic + VARIANCE Intrinsic + UPPER-CASE Intrinsic + TEST-NUMVAL-F Intrinsic + TEST-NUMVAL-C Intrinsic + TEST-NUMVAL Intrinsic + TEST-FORMATTED-DATETIME Intrinsic + TEST-DAY-YYYYDDD Intrinsic + TEST-DATE-YYYYMMDD Intrinsic + TAN Intrinsic + SUBSTITUTE-CASE Intrinsic + SUBSTITUTE Intrinsic + STORED-CHAR-LENGTH Intrinsic + STANDARD-DEVIATION Intrinsic + STANDARD-COMPARE Intrinsic + SQRT Intrinsic + SIN Intrinsic + SECONDS-PAST-MIDNIGHT Intrinsic + SECONDS-FROM-FORMATTED-TIME Intrinsic + REM Intrinsic + PRESENT-VALUE Intrinsic + PI Intrinsic + ORD-MIN Intrinsic + ORD-MAX Intrinsic + ORD Intrinsic + NUMVAL-F Intrinsic + NUMVAL Intrinsic + NUMERIC-THOUSANDS-SEPARATOR Intrinsic + NUMERIC-DECIMAL-POINT Intrinsic + NATIONAL-OF Intrinsic + MONETARY-THOUSANDS-SEPARATOR Intrinsic + MONETARY-DECIMAL-POINT Intrinsic + MODULE-TIME Intrinsic + MODULE-SOURCE Intrinsic + MODULE-PATH Intrinsic + MODULE-NAME Intrinsic + MODULE-ID Intrinsic + MODULE-FORMATTED-DATE Intrinsic + MODULE-DATE Intrinsic + MODULE-CALLER-ID Intrinsic + MOD Intrinsic + MIN Intrinsic + MIDRANGE Intrinsic + MEDIAN Intrinsic + MEAN Intrinsic + MAX Intrinsic + LOWEST-ALGEBRAIC Intrinsic + LOWER-CASE Intrinsic + LOG10 Intrinsic + LOG Intrinsic + LOCALE-COMPARE Intrinsic + LENGTH-AN Intrinsic + INTEGER-PART Intrinsic + INTEGER-OF-FORMATTED-DATE Intrinsic + INTEGER-OF-DAY Intrinsic + INTEGER-OF-DATE Intrinsic + INTEGER-OF-BOOLEAN Intrinsic + INTEGER Intrinsic + HIGHEST-ALGEBRAIC Intrinsic + HEX-TO-CHAR Intrinsic + HEX-OF Intrinsic + FRACTION-PART Intrinsic + FORMATTED-DATE Intrinsic + FORMATTED-CURRENT-DATE Intrinsic + FIND-STRING Intrinsic + FACTORIAL Intrinsic + EXP10 Intrinsic + EXP Intrinsic + EXCEPTION-STATUS Intrinsic + EXCEPTION-STATEMENT Intrinsic + EXCEPTION-LOCATION-N Intrinsic + EXCEPTION-LOCATION Intrinsic + EXCEPTION-FILE-N Intrinsic + EXCEPTION-FILE Intrinsic + E Intrinsic + DISPLAY-OF Intrinsic + DAY-TO-YYYYDDD Intrinsic + DAY-OF-INTEGER Intrinsic + DATE-TO-YYYYMMDD Intrinsic + DATE-OF-INTEGER Intrinsic + CURRENCY-SYMBOL Intrinsic + COS Intrinsic + CONTENT-LENGTH Intrinsic + CONCATENATE Intrinsic + CONCAT Intrinsic + COMBINED-DATETIME Intrinsic + CHAR-NATIONAL Intrinsic + BOOLEAN-OF-INTEGER Intrinsic + BIT-TO-CHAR Intrinsic + BIT-OF Intrinsic + BASECONVERT Intrinsic + ATAN Intrinsic + ASIN Intrinsic + ANNUITY Intrinsic + ACOS Intrinsic + ABSOLUTE-VALUE Intrinsic + ABS Intrinsic __rootdir__/prog.cob:9.31: 6 REPOSITORY. 7 FUNCTION ABS INTRINSIC.