Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ java [PROGRAM-ID]
## The progress of the development

The functions in the following "implemented" list are tested using [NIST COBOL85 test suite](https://www.itl.nist.gov/div897/ctg/cobol_form.htm)
and **95%** of the test cases are passed.
and **96%** of the test cases are passed.

Implemented.

Expand All @@ -39,11 +39,11 @@ Implemented.
* Sequential files
* Indexed files
* Sort statements
* Embedded functions (ACOS, LENGTH, MAX, ...)

Not Implemented.

* Relative files
* Embedded functions (ACOS, LENGTH, MAX, ...)

Known bugs

Expand Down
4 changes: 2 additions & 2 deletions README_JP.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ java [PROGRAM-ID]

## The progress of the development

下記の実装済みリストにある機能は[NIST COBOL85 test suite](https://www.itl.nist.gov/div897/ctg/cobol_form.htm)でテストされており,**95%** のテストケースをパスしています.
下記の実装済みリストにある機能は[NIST COBOL85 test suite](https://www.itl.nist.gov/div897/ctg/cobol_form.htm)でテストされており,**96%** のテストケースをパスしています.

実装済み

Expand All @@ -37,11 +37,11 @@ java [PROGRAM-ID]
* SEQUENTIALファイルの入出力機能
* INDEXEDファイルの入出力機能
* SORT文
* 組み込み関数 (ACOS, LENGTH, MAX, ...)

実装予定

* RELATIVEファイルの入出力機能
* 組み込み関数 (ACOS, LENGTH, MAX, ...)

既知の不具合

Expand Down
2 changes: 1 addition & 1 deletion cobc/codegen.c
Original file line number Diff line number Diff line change
Expand Up @@ -1361,7 +1361,7 @@ joutput_param (cb_tree x, int id)
break;
case CB_TAG_BINARY_OP:
bp = CB_BINARY_OP (x);
joutput ("cob_intr_binop (");
joutput ("CobolIntrinsic.intrBinop (");
joutput_param (bp->x, id);
joutput (", ");
joutput ("%d", bp->op);
Expand Down
142 changes: 71 additions & 71 deletions cobc/reserved.c
Original file line number Diff line number Diff line change
Expand Up @@ -640,55 +640,55 @@ static const struct reserved reserved_words[] = {

static const struct cb_intrinsic_table function_list[] = {
{ "ABS", 1, 1, CB_INTR_ABS,
"cob_intr_abs",
"CobolIntrinsic.funcAbs",
CB_CATEGORY_NUMERIC, 0 },
{ "ACOS", 1, 1, CB_INTR_ACOS,
"cob_intr_acos",
"CobolIntrinsic.funcAcos",
CB_CATEGORY_NUMERIC, 0 },
{ "ANNUITY", 2, 1, CB_INTR_ANNUITY,
"cob_intr_annuity",
"CobolIntrinsic.funcAnnuity",
CB_CATEGORY_NUMERIC, 0 },
{ "ASIN", 1, 1, CB_INTR_ASIN,
"cob_intr_asin",
"CobolIntrinsic.funcAsin",
CB_CATEGORY_NUMERIC, 0 },
{ "ATAN", 1, 1, CB_INTR_ATAN,
"cob_intr_atan",
"CobolIntrinsic.funcAtan",
CB_CATEGORY_NUMERIC, 0 },
{ "BOOLEAN-OF-INTEGER", 2, 0, CB_INTR_BOOLEAN_OF_INTEGER,
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "BYTE-LENGTH", 1, 1, CB_INTR_BYTE_LENGTH,
"cob_intr_length",
"CobolIntrinsic.funcLength",
CB_CATEGORY_NUMERIC, 0 },
{ "CHAR", 1, 1, CB_INTR_CHAR,
"cob_intr_char",
"CobolIntrinsic.funcChar",
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "CHAR-NATIONAL", 1, 0, CB_INTR_CHAR_NATIONAL,
NULL,
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "COMBINED-DATETIME", 2, 1, CB_INTR_COMBINED_DATETIME,
"cob_intr_combined_datetime",
"CobolIntrinsic.funcCombinedDatetime",
CB_CATEGORY_NUMERIC, 0 },
{ "CONCATENATE", -1, 1, CB_INTR_CONCATENATE,
"cob_intr_concatenate",
"CobolIntrinsic.funcConcatenate",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "COS", 1, 1, CB_INTR_COS,
"cob_intr_cos",
"CobolIntrinsic.funcCos",
CB_CATEGORY_NUMERIC, 0 },
{ "CURRENT-DATE", 0, 1, CB_INTR_CURRENT_DATE,
"cob_intr_current_date",
"CobolIntrinsic.funcCurrentDate",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "DATE-OF-INTEGER", 1, 1, CB_INTR_DATE_OF_INTEGER,
"cob_intr_date_of_integer",
"CobolIntrinsic.funcDateOfInteger",
CB_CATEGORY_NUMERIC, 0 },
{ "DATE-TO-YYYYMMDD", -1, 1, CB_INTR_DATE_TO_YYYYMMDD,
"cob_intr_date_to_yyyymmdd",
"CobolIntrinsic.funcDateToYyyymmdd",
CB_CATEGORY_NUMERIC, 0 },
{ "DAY-OF-INTEGER", 1, 1, CB_INTR_DAY_OF_INTEGER,
"cob_intr_day_of_integer",
"CobolIntrinsic.funcDayOfInteger",
CB_CATEGORY_NUMERIC, 0 },
{ "DAY-TO-YYYYDDD", -1, 1, CB_INTR_DAY_TO_YYYYDDD,
"cob_intr_day_to_yyyyddd",
"CobolIntrinsic.funcDayToYyyyddd",
CB_CATEGORY_NUMERIC, 0 },
{ "DISPLAY-OF", -1, 0, CB_INTR_DISPLAY_OF,
NULL,
Expand All @@ -697,187 +697,187 @@ static const struct cb_intrinsic_table function_list[] = {
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "EXCEPTION-FILE", 0, 1, CB_INTR_EXCEPTION_FILE,
"cob_intr_exception_file",
"CobolIntrinsic.funcExceptionFile",
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "EXCEPTION-FILE-N", 0, 0, CB_INTR_EXCEPTION_FILE_N,
NULL,
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "EXCEPTION-LOCATION", 0, 1, CB_INTR_EXCEPTION_LOCATION,
"cob_intr_exception_location",
"CobolIntrinsic.funcExceptionLocation",
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "EXCEPTION-LOCATION-N", 0, 0, CB_INTR_EXCEPTION_LOCATION_N,
NULL,
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "EXCEPTION-STATEMENT", 0, 1, CB_INTR_EXCEPTION_STATEMENT,
"cob_intr_exception_statement",
"CobolIntrinsic.funcExceptionStatement",
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "EXCEPTION-STATUS", 0, 1, CB_INTR_EXCEPTION_STATUS,
"cob_intr_exception_status",
"CobolIntrinsic.funcExceptionStatus",
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "EXP", 1, 1, CB_INTR_EXP,
"cob_intr_exp",
"CobolIntrinsic.funcExp",
CB_CATEGORY_NUMERIC, 0 },
{ "EXP10", 1, 1, CB_INTR_EXP10,
"cob_intr_exp10",
"CobolIntrinsic.funcExp10",
CB_CATEGORY_NUMERIC, 0 },
{ "FACTORIAL", 1, 1, CB_INTR_FACTORIAL,
"cob_intr_factorial",
"CobolIntrinsic.funcFactorial",
CB_CATEGORY_NUMERIC, 0 },
{ "FRACTION-PART", 1, 1, CB_INTR_FRACTION_PART,
"cob_intr_fraction_part",
"CobolIntrinsic.funcFractionPart",
CB_CATEGORY_NUMERIC, 0 },
{ "HIGHEST-ALGEBRAIC", 1, 0, CB_INTR_HIGHEST_ALGEBRAIC,
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "INTEGER", 1, 1, CB_INTR_INTEGER,
"cob_intr_integer",
"CobolIntrinsic.funcInteger",
CB_CATEGORY_NUMERIC, 0 },
{ "INTEGER-OF-BOOLEAN", 1, 0, CB_INTR_INTEGER_OF_BOOLEAN,
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "INTEGER-OF-DATE", 1, 1, CB_INTR_INTEGER_OF_DATE,
"cob_intr_integer_of_date",
"CobolIntrinsic.funcIntegerOfDate",
CB_CATEGORY_NUMERIC, 0 },
{ "INTEGER-OF-DAY", 1, 1, CB_INTR_INTEGER_OF_DAY,
"cob_intr_integer_of_day",
"CobolIntrinsic.funcIntegerOfDay",
CB_CATEGORY_NUMERIC, 0 },
{ "INTEGER-PART", 1, 1, CB_INTR_INTEGER_PART,
"cob_intr_integer_part",
"CobolIntrinsic.funcIntegerPart",
CB_CATEGORY_NUMERIC, 0 },
{ "LENG", 1, 1, CB_INTR_LENG,
"cob_intr_length",
"CobolIntrinsic.funcLength",
CB_CATEGORY_NUMERIC, 0 },
{ "LENGTH", 1, 1, CB_INTR_LENGTH,
"cob_intr_length",
"CobolIntrinsic.funcLength",
CB_CATEGORY_NUMERIC, 0 },
{ "LENGTH-AN", 1, 1, CB_INTR_LENGTH_AN,
"cob_intr_length",
"CobolIntrinsic.funcLength",
CB_CATEGORY_NUMERIC, 0 },
{ "LOCALE-COMPARE", -1, 0, CB_INTR_LOCALE_COMPARE,
NULL,
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "LOCALE-DATE", 2, 1, CB_INTR_LOCALE_DATE,
"cob_intr_locale_date",
"CobolIntrinsic.funcLocaleDate",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "LOCALE-TIME", 2, 1, CB_INTR_LOCALE_TIME,
"cob_intr_locale_time",
"CobolIntrinsic.funcLocaleTime",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "LOCALE-TIME-FROM-SECONDS", 2, 1, CB_INTR_LOCALE_TIME_FROM_SECS,
"cob_intr_lcl_time_from_secs",
"CobolIntrinsic.funcLclTimeFromSecs",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "LOG", 1, 1, CB_INTR_LOG,
"cob_intr_log",
"CobolIntrinsic.funcLog",
CB_CATEGORY_NUMERIC, 0 },
{ "LOG10", 1, 1, CB_INTR_LOG10,
"cob_intr_log10",
"CobolIntrinsic.funcLog10",
CB_CATEGORY_NUMERIC, 0 },
{ "LOWER-CASE", 1, 1, CB_INTR_LOWER_CASE,
"cob_intr_lower_case",
"CobolIntrinsic.funcLowerCase",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "LOWEST-ALGEBRAIC", 1, 0, CB_INTR_LOWEST_ALGEBRAIC,
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "MAX", -1, 1, CB_INTR_MAX,
"cob_intr_max",
"CobolIntrinsic.funcMax",
CB_CATEGORY_NUMERIC, 0 },
{ "MEAN", -1, 1, CB_INTR_MEAN,
"cob_intr_mean",
"CobolIntrinsic.funcMean",
CB_CATEGORY_NUMERIC, 0 },
{ "MEDIAN", -1, 1, CB_INTR_MEDIAN,
"cob_intr_median",
"CobolIntrinsic.funcMedian",
CB_CATEGORY_NUMERIC, 0 },
{ "MIDRANGE", -1, 1, CB_INTR_MIDRANGE,
"cob_intr_midrange",
"CobolIntrinsic.funcMidrange",
CB_CATEGORY_NUMERIC, 0 },
{ "MIN", -1, 1, CB_INTR_MIN,
"cob_intr_min",
"CobolIntrinsic.funcMin",
CB_CATEGORY_NUMERIC, 0 },
{ "MOD", 2, 1, CB_INTR_MOD,
"cob_intr_mod",
"CobolIntrinsic.funcMod",
CB_CATEGORY_NUMERIC, 0 },
{ "NATIONAL", 1, 1, CB_INTR_NATIONAL,
"cob_intr_national",
"CobolIntrinsic.funcNational",
CB_CATEGORY_NATIONAL, 0 },
{ "NATIONAL-OF", -1, 0, CB_INTR_NATIONAL_OF,
NULL,
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "NUMVAL", 1, 1, CB_INTR_NUMVAL,
"cob_intr_numval",
"CobolIntrinsic.funcNumval",
CB_CATEGORY_NUMERIC, 0 },
{ "NUMVAL-C", 2, 1, CB_INTR_NUMVAL_C,
"cob_intr_numval_c",
"CobolIntrinsic.funcNumvalC",
CB_CATEGORY_NUMERIC, 0 },
{ "NUMVAL-F", 1, 0, CB_INTR_NUMVAL_F,
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "ORD", 1, 1, CB_INTR_ORD,
"cob_intr_ord",
"CobolIntrinsic.funcOrd",
CB_CATEGORY_NUMERIC, 0 },
{ "ORD-MAX", -1, 1, CB_INTR_ORD_MAX,
"cob_intr_ord_max",
"CobolIntrinsic.funcOrdMax",
CB_CATEGORY_NUMERIC, 0 },
{ "ORD-MIN", -1, 1, CB_INTR_ORD_MIN,
"cob_intr_ord_min",
"CobolIntrinsic.funcOrdMin",
CB_CATEGORY_NUMERIC, 0 },
{ "PI", 0, 1, CB_INTR_PI,
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "PRESENT-VALUE", -1, 1, CB_INTR_PRESENT_VALUE,
"cob_intr_present_value",
"CobolIntrinsic.funcPresentValue",
CB_CATEGORY_NUMERIC, 0 },
{ "RANDOM", -1, 1, CB_INTR_RANDOM,
"cob_intr_random",
"CobolIntrinsic.funcRandom",
CB_CATEGORY_NUMERIC, 0 },
{ "RANGE", -1, 1, CB_INTR_RANGE,
"cob_intr_range",
"CobolIntrinsic.funcRange",
CB_CATEGORY_NUMERIC, 0 },
{ "REM", 2, 1, CB_INTR_REM,
"cob_intr_rem",
"CobolIntrinsic.funcRem",
CB_CATEGORY_NUMERIC, 0 },
{ "REVERSE", 1, 1, CB_INTR_REVERSE,
"cob_intr_reverse",
"CobolIntrinsic.funcReverse",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "SECONDS-FROM-FORMATTED-TIME", 2, 1, CB_INTR_SECONDS_PAST_MIDNIGHT,
"cob_intr_seconds_from_formatted_time",
"CobolIntrinsic.funcSecondsFromFormattedTime",
CB_CATEGORY_NUMERIC, 0 },
{ "SECONDS-PAST-MIDNIGHT", 0, 1, CB_INTR_SECONDS_PAST_MIDNIGHT,
"cob_intr_seconds_past_midnight",
"CobolIntrinsic.funcSecondsPastMidnight",
CB_CATEGORY_NUMERIC, 0 },
{ "SIGN", 1, 1, CB_INTR_SIGN,
"cob_intr_sign",
"CobolIntrinsic.funcSign",
CB_CATEGORY_NUMERIC, 0 },
{ "SIN", 1, 1, CB_INTR_SIN,
"cob_intr_sin",
"CobolIntrinsic.funcSin",
CB_CATEGORY_NUMERIC, 0 },
{ "SQRT", 1, 1, CB_INTR_SQRT,
"cob_intr_sqrt",
"CobolIntrinsic.funcSqrt",
CB_CATEGORY_NUMERIC, 0 },
{ "STANDARD-COMPARE", -1, 0, CB_INTR_STANDARD_COMPARE,
NULL,
CB_CATEGORY_ALPHANUMERIC, 0 },
{ "STANDARD-DEVIATION", -1, 1, CB_INTR_STANDARD_DEVIATION,
"cob_intr_standard_deviation",
"CobolIntrinsic.funcStandardDeviation",
CB_CATEGORY_NUMERIC, 0 },
{ "STORED-CHAR-LENGTH", 1, 1, CB_INTR_STORED_CHAR_LENGTH,
"cob_intr_stored_char_length",
"CobolIntrinsic.funcStoredCharLength",
CB_CATEGORY_NUMERIC, 0 },
{ "SUBSTITUTE", -1, 1, CB_INTR_SUBSTITUTE,
"cob_intr_substitute",
"CobolIntrinsic.funcSubstitute",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "SUBSTITUTE-CASE", -1, 1, CB_INTR_SUBSTITUTE_CASE,
"cob_intr_substitute_case",
"CobolIntrinsic.funcSubstituteCase",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "SUM", -1, 1, CB_INTR_SUM,
"cob_intr_sum",
"CobolIntrinsic.funcSum",
CB_CATEGORY_NUMERIC, 0 },
{ "TAN", 1, 1, CB_INTR_TAN,
"cob_intr_tan",
"CobolIntrinsic.funcTan",
CB_CATEGORY_NUMERIC, 0 },
{ "TEST-DATE-YYYYMMDD", 1, 1, CB_INTR_TEST_DATE_YYYYMMDD,
"cob_intr_test_date_yyyymmdd",
"CobolIntrinsic.funcTestDateYyyymmdd",
CB_CATEGORY_NUMERIC, 0 },
{ "TEST-DAY-YYYYDDD", 1, 1, CB_INTR_TEST_DAY_YYYYDDD,
"cob_intr_test_day_yyyyddd",
"CobolIntrinsic.funcTestDayYyyyddd",
CB_CATEGORY_NUMERIC, 0 },
{ "TEST-NUMVAL", 1, 0, CB_INTR_TEST_NUMVAL,
NULL,
Expand All @@ -889,19 +889,19 @@ static const struct cb_intrinsic_table function_list[] = {
NULL,
CB_CATEGORY_NUMERIC, 0 },
{ "TRIM", 2, 1, CB_INTR_TRIM,
"cob_intr_trim",
"CobolIntrinsic.funcTrim",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "UPPER-CASE", 1, 1, CB_INTR_UPPER_CASE,
"cob_intr_upper_case",
"CobolIntrinsic.funcUpperCase",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "VARIANCE", -1, 1, CB_INTR_VARIANCE,
"cob_intr_variance",
"CobolIntrinsic.funcVariance",
CB_CATEGORY_NUMERIC, 0 },
{ "WHEN-COMPILED", 0, 1, CB_INTR_WHEN_COMPILED,
"cob_intr_when_compiled",
"CobolIntrinsic.funcWhenCompiled",
CB_CATEGORY_ALPHANUMERIC, 1 },
{ "YEAR-TO-YYYY", -1, 1, CB_INTR_YEAR_TO_YYYY,
"cob_intr_year_to_yyyy",
"CobolIntrinsic.funcYearToYyyy",
CB_CATEGORY_NUMERIC, 0 }
};

Expand Down
Loading