Changes between Version 3 and Version 4 of FortranSubset


Ignore:
Timestamp:
05/21/25 14:46:29 (12 months ago)
Author:
wuwenhao
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FortranSubset

    v3 v4  
    11= Supported FORTRAN 2018 Subset =
    22[wiki:FortranOverview#a1.1.Basicgoals Back:FortranOverview]
     3
     4== WIP FORTRAN 2018 parse-rules ==
     5R868 namelist stmt
     6
     7R1404 module
     8
     9== Planned FORTRAN 2018 parse-rules for DRB (Data-Race Benchmark) ==
     10
     11
    312
    413== The coverage rate of supported FORTRAN2018 features ==
     
    2029
    2130== Status of all FORTRAN 2018 parse-rules ==
     31
    2232|| RuleID || Rule Name                          || Status      ||
    2333|||||| Chapter.5                                               ||
    24 || R501   || program                            || ||
    25 || R502   || program unit                       || ||
    26 || R503   || external subprogram                || ||
    27 || R504   || specification part                 || ||
     34|| R501   || program                            || Supported ||
     35|| R502   || program unit                       || Supported ||
     36|| R503   || external subprogram                || Supported ||
     37|| R504   || specification part                 || Supported ||
    2838|| R505   || implicit part                      ||  ||
    2939|| R506   || implicit part stmt                 ||  ||
     
    3141|| R508   || specification construct            ||  ||
    3242|| R509   || execution part                     ||  ||
    33 || R510   || execution part construct           || ||
     43|| R510   || execution part construct           || Supported ||
    3444|| R511   || internal subprogram part           ||  ||
    3545|| R512   || internal subprogram                ||  ||
     
    4959|| R609   || defined operator                   ||  ||
    5060|| R610   || extended intrinsic op              ||  ||
    51 || R611   || label                              || ||
     61|| R611   || label                              || Supported ||
    5262|||||| Chapter.7 ||
    5363|| R701   || type param value                   ||  ||
    5464|| R702   || type spec                          ||  ||
    55 || R703   || declaration type spec              || ||
    56 || R704   || intrinsictype spec                 || ||
    57 || R705   || integer type spec                  || ||
     65|| R703   || declaration type spec              || Supported ||
     66|| R704   || intrinsictype spec                 || Supported ||
     67|| R705   || integer type spec                  || Supported ||
    5868|| R706   || kind selector                      ||  ||
    5969|| R707   || signed int literal constant        ||  ||
     
    6373|| R711   || digit string                       ||  ||
    6474|| R712   || sign                               ||  ||
    65 || R713   || signed real literal constant       || ||
    66 || R714   || real literal constant              || ||
     75|| R713   || signed real literal constant       || Supported ||
     76|| R714   || real literal constant              || Supported ||
    6777|| R715   || significand                        ||  ||
    6878|| R716   || exponent letter                    ||  ||
    6979|| R717   || exponent                           ||  ||
    70 || R718   || complex literal constant           || ||
    71 || R719   || real part                          || ||
    72 || R720   || imag part                          || ||
    73 || R721   || char selector                      || ||
     80|| R718   || complex literal constant           || Supported ||
     81|| R719   || real part                          || Supported ||
     82|| R720   || imag part                          || Supported ||
     83|| R721   || char selector                      || Supported ||
    7484|| R722   || length selector                    ||  ||
    75 || R723   || char length                        || ||
    76 || R724   || char literal constant              || ||
    77 || R725   || logical literal constant           || ||
     85|| R723   || char length                        || Supported ||
     86|| R724   || char literal constant              || Supported ||
     87|| R725   || logical literal constant           || Supported ||
    7888|| R726   || derived type def                   ||  ||
    7989|| R727   || derived type stmt                  ||  ||
     
    128138|| R776   || ac do variable                     ||  ||
    129139|||||| Chapter.8 ||
    130 || R801   || type declaration stmt              || ||
    131 || R802   || attr spec                          || ||
    132 || R803   || entity decl                        || ||
     140|| R801   || type declaration stmt              || Supported ||
     141|| R802   || attr spec                          || Supported ||
     142|| R803   || entity decl                        || Supported ||
    133143|| R804   || object name                        ||  ||
    134 || R805   || initialization                     || ||
    135 || R806   || null init                          || ||
     144|| R805   || initialization                     || Supported ||
     145|| R806   || null init                          || Supported ||
    136146|| R807   || access spec                        ||  ||
    137147|| R808   || language binding spec              ||  ||
     
    142152|| R813   || upper cobound                      ||  ||
    143153|| R814   || dimension spec                     ||  ||
    144 || R815   || array spec                         || ||
     154|| R815   || array spec                         || Supported ||
    145155|| R816   || eplicit shape spec                 ||  ||
    146156|| R817   || lower bound                        ||  ||
     
    153163|| R824   || implied shape spec                 ||  ||
    154164|| R825   || assumed rank spec                  ||  ||
    155 || R826   || intent spec                        || ||
     165|| R826   || intent spec                        || Supported ||
    156166|| R827   || access stmt                        ||  ||
    157167|| R828   || access id                          ||  ||
     
    164174|| R835   || codimension decl                   ||  ||
    165175|| R836   || contiguous stmt                    ||  ||
    166 || R837   || data stmt                          || ||
    167 || R838   || data stmt set                      || ||
    168 || R839   || data stmt object                   || ||
     176|| R837   || data stmt                          || Supported ||
     177|| R838   || data stmt set                      || Supported ||
     178|| R839   || data stmt object                   || Supported ||
    169179|| R840   || data implied do                    ||  ||
    170180|| R841   || data i do object                   ||  ||
    171181|| R842   || data i do variable                 ||  ||
    172 || R843   || data stmt value                    || ||
     182|| R843   || data stmt value                    || Supported ||
    173183|| R844   || data stmt repeat                   ||  ||
    174184|| R845   || data stmt constant                 ||  ||
     
    178188|| R849   || intent stmt                        ||  ||
    179189|| R850   || optional stmt                      ||  ||
    180 || R851   || parameter stmt                     || ||
    181 || R852   || named constant def                 || ||
     190|| R851   || parameter stmt                     || Supported ||
     191|| R852   || named constant def                 || Supported ||
    182192|| R853   || pinter stmt                        ||  ||
    183193|| R854   || pointer decl                       ||  ||
    184194|| R855   || protected stmt                     ||  ||
    185 || R856   || save stmt                          || ||
    186 || R857   || saved entity                       || ||
     195|| R856   || save stmt                          || Supported ||
     196|| R857   || saved entity                       || Supported ||
    187197|| R858   || proc pointer name                  ||  ||
    188198|| R859   || target stmt                        ||  ||
     
    197207|| R868   || namelist stmt                      ||  ||
    198208|| R869   || namelist group object              ||  ||
    199 || R870   || equivalence stmt                   || ||
    200 || R871   || euivalence set                     || ||
    201 || R872   || equivalence object                 || ||
    202 || R873   || common stmt                        || ||
    203 || R874   || common block object                || ||
     209|| R870   || equivalence stmt                   || Supported ||
     210|| R871   || euivalence set                     || Supported ||
     211|| R872   || equivalence object                 || Supported ||
     212|| R873   || common stmt                        || Supported ||
     213|| R874   || common block object                || Supported ||
    204214|||||| Chapter.9                                    ||
    205 || R901   || designator                         || ||
     215|| R901   || designator                         || Supported ||
    206216|| R902   || variable                           ||  ||
    207217|| R903   || variable name                      ||  ||
     
    210220|| R906   || default char variable              ||  ||
    211221|| R907   || int variable                       ||  ||
    212 || R908   || substring                          || ||
     222|| R908   || substring                          || Supported ||
    213223|| R909   || parent string                      ||  ||
    214 || R910   || substring range                    || ||
     224|| R910   || substring range                    || Supported ||
    215225|| R911   || data ref                           ||  ||
    216226|| R912   || part ref                           ||  ||
     
    222232|| R918   || array section                      ||  ||
    223233|| R919   || subscript                          ||  ||
    224 || R920   || section subscript                  || ||
     234|| R920   || section subscript                  || Supported ||
    225235|| R921   || subscript triplet                  ||  ||
    226236|| R922   || stride                             ||  ||
     
    302312|| R1055  || forall stmt                        ||  ||
    303313|||||| Chapter.11 ||
    304 || R1101  || block                              || ||
     314|| R1101  || block                              || Supported ||
    305315|| R1102  || associate construct                ||  ||
    306316|| R1103  || associate stmt                     ||  ||
     
    320330|| R1117  || critical stmt                      ||  ||
    321331|| R1118  || end critical stmt                  ||  ||
    322 || R1119  || do construct                       || ||
    323 || R1120  || do stmt                            || ||
     332|| R1119  || do construct                       || Supported ||
     333|| R1120  || do stmt                            || Supported ||
    324334|| R1121  || label do stmt                      ||  ||
    325335|| R1122  || nonlabel do stmt                   ||  ||
     
    333343|| R1130  || locality spec                      ||  ||
    334344|| R1131  || end do                             ||  ||
    335 || R1132  || end do stmt                        || ||
     345|| R1132  || end do stmt                        || Supported ||
    336346|| R1133  || cycle stmt                         ||  ||
    337347|| R1134  || if construct                       ||  ||
     
    358368|| R1155  || end select type stmt               ||  ||
    359369|| R1156  || exit stmt                          ||  ||
    360 || R1157  || goto stmt                          || ||
    361 || R1158  || computed goto stmt                 || ||
     370|| R1157  || goto stmt                          || Supported ||
     371|| R1158  || computed goto stmt                 || Supported ||
    362372|| R1159  || continue stmt                      ||  ||
    363373|| R1160  || stop stmt                          ||  ||
     
    388398|| R1202  || file until number                  ||  ||
    389399|| R1203  || internal file variable             ||  ||
    390 || R1204  || open stmt                          || ||
    391 || R1205  || connect spec                       || ||
     400|| R1204  || open stmt                          || Supported ||
     401|| R1205  || connect spec                       || Supported ||
    392402|| R1206  || file name expr                     ||  ||
    393403|| R1207  || iomsg variable                     ||  ||
    394 || R1208  || close stmt                         || ||
    395 || R1209  || close spec                         || ||
    396 || R1210  || read stmt                          || ||
    397 || R1211  || write stmt                         || ||
     404|| R1208  || close stmt                         || Supported ||
     405|| R1209  || close spec                         || Supported ||
     406|| R1210  || read stmt                          || Supported ||
     407|| R1211  || write stmt                         || Supported ||
    398408|| R1212  || print stmt                         ||  ||
    399 || R1213  || io control spec                    || ||
     409|| R1213  || io control spec                    || Supported ||
    400410|| R1214  || id variable                        ||  ||
    401 || R1215  || format                             || ||
    402 || R1216  || input item                         || ||
     411|| R1215  || format                             || Supported ||
     412|| R1216  || input item                         || Supported ||
    403413|| R1217  || output item                        ||  ||
    404414|| R1218  || io implied do                      ||  ||
     
    417427|| R1231  || inquire spec                       ||  ||
    418428|||||| Chapter.13                                   ||
    419 || R1301  || format stmt                        || ||
    420 || R1302  || format specification               || ||
    421 || R1303  || format items                       || ||
    422 || R1304  || format item                        || ||
     429|| R1301  || format stmt                        || Supported ||
     430|| R1302  || format specification               || Supported ||
     431|| R1303  || format items                       || Supported ||
     432|| R1304  || format item                        || Supported ||
    423433|| R1305  || unlimited format item              ||  ||
    424434|| R1306  || r                                  ||  ||
     
    472482|| R1509  || defined io generic spec            ||  ||
    473483|| R1510  || generic stmt                       ||  ||
    474 || R1511  || external stmt                      || ||
     484|| R1511  || external stmt                      || Supported ||
    475485|| R1512  || procedure declaration stmt         ||  ||
    476486|| R1513  || proc interface                     ||  ||
     
    480490|| R1517  || proc pointer init                  ||  ||
    481491|| R1518  || initial proc target                ||  ||
    482 || R1519  || intrinsic stmt                     || ||
    483 || R1520  || function reference                 || ||
    484 || R1521  || call stmt                          || ||
    485 || R1522  || procedure designator               || ||
     492|| R1519  || intrinsic stmt                     || Supported ||
     493|| R1520  || function reference                 || Supported ||
     494|| R1521  || call stmt                          || Supported ||
     495|| R1522  || procedure designator               || Supported ||
    486496|| R1523  || actual arg spec                    ||  ||
    487497|| R1524  || actual arg                         ||  ||
    488498|| R1525  || alt return spec                    ||  ||
    489 || R1526  || prefix                             || ||
    490 || R1527  || prefix spec                        || ||
     499|| R1526  || prefix                             || Supported ||
     500|| R1527  || prefix spec                        || Supported ||
    491501|| R1528  || proc language binding spec         ||  ||
    492 || R1529  || function subprogram                || ||
    493 || R1530  || function stmt                      || ||
     502|| R1529  || function subprogram                || Supported ||
     503|| R1530  || function stmt                      || Supported ||
    494504|| R1531  || dummy arg stmt                     ||  ||
    495505|| R1532  || suffix                             ||  ||
    496 || R1533  || end function stmt                  || ||
     506|| R1533  || end function stmt                  || Supported ||
    497507|| R1534  || subroutine subprogram              ||  ||
    498 || R1535  || subroutine stmt                    || ||
     508|| R1535  || subroutine stmt                    || Supported ||
    499509|| R1536  || dymmy arg                          ||  ||
    500 || R1537  || end subroutine stmt                || ||
     510|| R1537  || end subroutine stmt                || Supported ||
    501511|| R1538  || separate module subprogram         ||  ||
    502512|| R1539  || mp subprogram stmt                 ||  ||
    503513|| R1540  || end mp subprogram stmt             ||  ||
    504514|| R1541  || entry stmt                         ||  ||
    505 || R1542  || return stmt                        || ||
     515|| R1542  || return stmt                        || Supported ||
    506516|| R1543  || contains stmt                      ||  ||
    507517|| R1544  || stmt fucntion stmt                 ||  ||
    508518|||||| CIVL extensions                              ||
    509 || R898  || pragma stmt                         || ||
    510 
    511 
     519|| R898  || pragma stmt                         || Supported ||
     520
     521