MFortranParser2018.java
// $ANTLR 3.5.2 MFortranParser2018.g 2023-02-11 20:42:12
package edu.udel.cis.vsl.abc.front.fortran.parse;
import edu.udel.cis.vsl.abc.token.IF.CivlcToken;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
public class MFortranParser2018 extends BaseMFortranParser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ABSTRACT", "ACQUIRED_LOCK", "ALL",
"ALLOCATABLE", "ALLOCATE", "AND", "ASSIGNMENT", "ASSOCIATE", "ASTERISK",
"ASYNCHRONOUS", "BACKSPACE", "BIND", "BIN_CONST", "BLOCK", "BLOCKDATA",
"CALL", "CASE", "CHANGE", "CHARACTER", "CHAR_CONST", "CIVL_PRIMITIVE",
"CLASS", "CLOSE", "CODIMENSION", "COLON", "COLON_COLON", "COMMA", "COMMON",
"COMPLEX", "CONCURRENT", "CONTAINS", "CONTIGUOUS", "CONTINUE", "CONTINUE_CHAR",
"CRITICAL", "CYCLE", "DATA", "DEALLOCATE", "DEFAULT", "DEFERRED", "DEFINED_OP",
"DIGIT_STR", "DIMENSION", "DO", "DOUBLE", "DOUBLECOMPLEX", "DOUBLEPRECISION",
"Digit", "EDIT_DESC_MISC", "ELEMENTAL", "ELSE", "ELSEIF", "ELSEWHERE",
"END", "ENTRY", "ENUM", "ENUMERATOR", "EOS", "EQ", "EQUALS", "EQUIVALENCE",
"EQV", "EQ_EQ", "EQ_GT", "ERRMSG", "ERROR", "EVENT", "EVENTWAIT", "EXIT",
"EXTENDS", "EXTERNAL", "FAIL", "FAILIMAGE", "FALSE", "FILE", "FINAL",
"FLUSH", "FORALL", "FORM", "FORMAT", "FORMATTED", "FORMTEAM", "FUNCTION",
"GE", "GENERIC", "GO", "GOTO", "GREATERTHAN", "GREATERTHAN_EQ", "GT",
"HEX_CONST", "IDENT", "IF", "IMAGE", "IMAGES", "IMPLICIT", "IMPORT", "IMPURE",
"IN", "INCLUDE", "INOUT", "INQUIRE", "INTEGER", "INTENT", "INTERFACE",
"INTRINSIC", "IS", "KIND", "LBRACKET", "LE", "LEN", "LESSTHAN", "LESSTHAN_EQ",
"LINE_COMMENT", "LOCAL", "LOCAL_INT", "LOCK", "LOGICAL", "LPAREN", "LT",
"Letter", "MEMORY", "MINUS", "MISC_CHAR", "MODULE", "MOLD", "M_ALLOCATE_STMT_1",
"M_ASSIGNMENT_STMT", "M_CSTR_EDIT_DESC", "M_CTRL_EDIT_DESC", "M_DATA_EDIT_DESC",
"M_EOF", "M_FORALL_CONSTRUCT_STMT", "M_FORALL_STMT", "M_IF_STMT", "M_INCLUDE_NAME",
"M_INQUIRE_STMT_2", "M_LBL_DO_TERMINAL", "M_PTR_ASSIGNMENT_STMT", "M_REAL_CONST",
"M_WHERE_CONSTRUCT_STMT", "M_WHERE_STMT", "NAMELIST", "NE", "NEQV", "NONE",
"NON_INTRINSIC", "NON_OVERRIDABLE", "NON_RECURSIVE", "NOPASS", "NOT",
"NO_LANG_EXT", "NULLIFY", "OCT_CONST", "ONLY", "OPEN", "OPERATOR", "OPTIONAL",
"OR", "OUT", "PARAMETER", "PASS", "PAUSE", "PERCENT", "PERIOD", "PERIOD_EXPONENT",
"PLUS", "POINTER", "POST", "POWER", "PRAGMA", "PRECISION", "PREPROCESS_LINE",
"PRINT", "PRIVATE", "PROCEDURE", "PROGRAM", "PROTECTED", "PUBLIC", "PURE",
"QUIET", "RANK", "RBRACKET", "READ", "REAL", "RECURSIVE", "RESULT", "RETURN",
"REWIND", "RPAREN", "SAVE", "SELECT", "SELECTCASE", "SELECTTYPE", "SEQUENCE",
"SHARED", "SLASH", "SLASH_EQ", "SLASH_SLASH", "SOURCE", "STAT", "STMT_FUNCTION",
"STOP", "SUBMODULE", "SUBROUTINE", "SYNC", "SYNCTEAM", "Sp_Char", "TARGET",
"TEAM", "THEN", "TO", "TRUE", "TYPE", "UNDERSCORE", "UNFORMATTED", "UNLOCK",
"USE", "VALUE", "VOLATILE", "WAIT", "WHERE", "WHILE", "WRITE", "WS", "DODOT",
"ERRORSTOP", "SELECTRANK", "TEAM_NUMBER"
};
public static final int EOF=-1;
public static final int ABSTRACT=4;
public static final int ACQUIRED_LOCK=5;
public static final int ALL=6;
public static final int ALLOCATABLE=7;
public static final int ALLOCATE=8;
public static final int AND=9;
public static final int ASSIGNMENT=10;
public static final int ASSOCIATE=11;
public static final int ASTERISK=12;
public static final int ASYNCHRONOUS=13;
public static final int BACKSPACE=14;
public static final int BIND=15;
public static final int BIN_CONST=16;
public static final int BLOCK=17;
public static final int BLOCKDATA=18;
public static final int CALL=19;
public static final int CASE=20;
public static final int CHANGE=21;
public static final int CHARACTER=22;
public static final int CHAR_CONST=23;
public static final int CIVL_PRIMITIVE=24;
public static final int CLASS=25;
public static final int CLOSE=26;
public static final int CODIMENSION=27;
public static final int COLON=28;
public static final int COLON_COLON=29;
public static final int COMMA=30;
public static final int COMMON=31;
public static final int COMPLEX=32;
public static final int CONCURRENT=33;
public static final int CONTAINS=34;
public static final int CONTIGUOUS=35;
public static final int CONTINUE=36;
public static final int CONTINUE_CHAR=37;
public static final int CRITICAL=38;
public static final int CYCLE=39;
public static final int DATA=40;
public static final int DEALLOCATE=41;
public static final int DEFAULT=42;
public static final int DEFERRED=43;
public static final int DEFINED_OP=44;
public static final int DIGIT_STR=45;
public static final int DIMENSION=46;
public static final int DO=47;
public static final int DOUBLE=48;
public static final int DOUBLECOMPLEX=49;
public static final int DOUBLEPRECISION=50;
public static final int Digit=51;
public static final int EDIT_DESC_MISC=52;
public static final int ELEMENTAL=53;
public static final int ELSE=54;
public static final int ELSEIF=55;
public static final int ELSEWHERE=56;
public static final int END=57;
public static final int ENTRY=58;
public static final int ENUM=59;
public static final int ENUMERATOR=60;
public static final int EOS=61;
public static final int EQ=62;
public static final int EQUALS=63;
public static final int EQUIVALENCE=64;
public static final int EQV=65;
public static final int EQ_EQ=66;
public static final int EQ_GT=67;
public static final int ERRMSG=68;
public static final int ERROR=69;
public static final int EVENT=70;
public static final int EVENTWAIT=71;
public static final int EXIT=72;
public static final int EXTENDS=73;
public static final int EXTERNAL=74;
public static final int FAIL=75;
public static final int FAILIMAGE=76;
public static final int FALSE=77;
public static final int FILE=78;
public static final int FINAL=79;
public static final int FLUSH=80;
public static final int FORALL=81;
public static final int FORM=82;
public static final int FORMAT=83;
public static final int FORMATTED=84;
public static final int FORMTEAM=85;
public static final int FUNCTION=86;
public static final int GE=87;
public static final int GENERIC=88;
public static final int GO=89;
public static final int GOTO=90;
public static final int GREATERTHAN=91;
public static final int GREATERTHAN_EQ=92;
public static final int GT=93;
public static final int HEX_CONST=94;
public static final int IDENT=95;
public static final int IF=96;
public static final int IMAGE=97;
public static final int IMAGES=98;
public static final int IMPLICIT=99;
public static final int IMPORT=100;
public static final int IMPURE=101;
public static final int IN=102;
public static final int INCLUDE=103;
public static final int INOUT=104;
public static final int INQUIRE=105;
public static final int INTEGER=106;
public static final int INTENT=107;
public static final int INTERFACE=108;
public static final int INTRINSIC=109;
public static final int IS=110;
public static final int KIND=111;
public static final int LBRACKET=112;
public static final int LE=113;
public static final int LEN=114;
public static final int LESSTHAN=115;
public static final int LESSTHAN_EQ=116;
public static final int LINE_COMMENT=117;
public static final int LOCAL=118;
public static final int LOCAL_INT=119;
public static final int LOCK=120;
public static final int LOGICAL=121;
public static final int LPAREN=122;
public static final int LT=123;
public static final int Letter=124;
public static final int MEMORY=125;
public static final int MINUS=126;
public static final int MISC_CHAR=127;
public static final int MODULE=128;
public static final int MOLD=129;
public static final int M_ALLOCATE_STMT_1=130;
public static final int M_ASSIGNMENT_STMT=131;
public static final int M_CSTR_EDIT_DESC=132;
public static final int M_CTRL_EDIT_DESC=133;
public static final int M_DATA_EDIT_DESC=134;
public static final int M_EOF=135;
public static final int M_FORALL_CONSTRUCT_STMT=136;
public static final int M_FORALL_STMT=137;
public static final int M_IF_STMT=138;
public static final int M_INCLUDE_NAME=139;
public static final int M_INQUIRE_STMT_2=140;
public static final int M_LBL_DO_TERMINAL=141;
public static final int M_PTR_ASSIGNMENT_STMT=142;
public static final int M_REAL_CONST=143;
public static final int M_WHERE_CONSTRUCT_STMT=144;
public static final int M_WHERE_STMT=145;
public static final int NAMELIST=146;
public static final int NE=147;
public static final int NEQV=148;
public static final int NONE=149;
public static final int NON_INTRINSIC=150;
public static final int NON_OVERRIDABLE=151;
public static final int NON_RECURSIVE=152;
public static final int NOPASS=153;
public static final int NOT=154;
public static final int NO_LANG_EXT=155;
public static final int NULLIFY=156;
public static final int OCT_CONST=157;
public static final int ONLY=158;
public static final int OPEN=159;
public static final int OPERATOR=160;
public static final int OPTIONAL=161;
public static final int OR=162;
public static final int OUT=163;
public static final int PARAMETER=164;
public static final int PASS=165;
public static final int PAUSE=166;
public static final int PERCENT=167;
public static final int PERIOD=168;
public static final int PERIOD_EXPONENT=169;
public static final int PLUS=170;
public static final int POINTER=171;
public static final int POST=172;
public static final int POWER=173;
public static final int PRAGMA=174;
public static final int PRECISION=175;
public static final int PREPROCESS_LINE=176;
public static final int PRINT=177;
public static final int PRIVATE=178;
public static final int PROCEDURE=179;
public static final int PROGRAM=180;
public static final int PROTECTED=181;
public static final int PUBLIC=182;
public static final int PURE=183;
public static final int QUIET=184;
public static final int RANK=185;
public static final int RBRACKET=186;
public static final int READ=187;
public static final int REAL=188;
public static final int RECURSIVE=189;
public static final int RESULT=190;
public static final int RETURN=191;
public static final int REWIND=192;
public static final int RPAREN=193;
public static final int SAVE=194;
public static final int SELECT=195;
public static final int SELECTCASE=196;
public static final int SELECTTYPE=197;
public static final int SEQUENCE=198;
public static final int SHARED=199;
public static final int SLASH=200;
public static final int SLASH_EQ=201;
public static final int SLASH_SLASH=202;
public static final int SOURCE=203;
public static final int STAT=204;
public static final int STMT_FUNCTION=205;
public static final int STOP=206;
public static final int SUBMODULE=207;
public static final int SUBROUTINE=208;
public static final int SYNC=209;
public static final int SYNCTEAM=210;
public static final int Sp_Char=211;
public static final int TARGET=212;
public static final int TEAM=213;
public static final int THEN=214;
public static final int TO=215;
public static final int TRUE=216;
public static final int TYPE=217;
public static final int UNDERSCORE=218;
public static final int UNFORMATTED=219;
public static final int UNLOCK=220;
public static final int USE=221;
public static final int VALUE=222;
public static final int VOLATILE=223;
public static final int WAIT=224;
public static final int WHERE=225;
public static final int WHILE=226;
public static final int WRITE=227;
public static final int WS=228;
public static final int DODOT=229;
public static final int ERRORSTOP=230;
public static final int SELECTRANK=231;
public static final int TEAM_NUMBER=232;
// delegates
public BaseMFortranParser[] getDelegates() {
return new BaseMFortranParser[] {};
}
// delegators
public MFortranParser2018(TokenStream input) {
this(input, new RecognizerSharedState());
}
public MFortranParser2018(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
@Override public String[] getTokenNames() { return MFortranParser2018.tokenNames; }
@Override public String getGrammarFileName() { return "MFortranParser2018.g"; }
int gctr0;
int gctr1;
public void initialize() {
MFPA.start_of_file(fileName, pathName);
}
public void finalize() {
MFPA.end_of_file(fileName, pathName);
}
// $ANTLR start "ext_function_subprogram"
// MFortranParser2018.g:56:1: ext_function_subprogram : ( prefix )? function_subprogram ;
public final void ext_function_subprogram() throws RecognitionException {
boolean hasPrefix=false;
try {
// MFortranParser2018.g:63:5: ( ( prefix )? function_subprogram )
// MFortranParser2018.g:63:7: ( prefix )? function_subprogram
{
// MFortranParser2018.g:63:7: ( prefix )?
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==CHARACTER||LA1_0==CLASS||LA1_0==COMPLEX||(LA1_0 >= DOUBLE && LA1_0 <= DOUBLEPRECISION)||LA1_0==ELEMENTAL||LA1_0==IMPURE||LA1_0==INTEGER||LA1_0==LOGICAL||LA1_0==MODULE||LA1_0==NON_RECURSIVE||LA1_0==PURE||(LA1_0 >= REAL && LA1_0 <= RECURSIVE)||LA1_0==TYPE) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// MFortranParser2018.g:63:9: prefix
{
pushFollow(FOLLOW_prefix_in_ext_function_subprogram83);
prefix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasPrefix=true;}
}
break;
}
pushFollow(FOLLOW_function_subprogram_in_ext_function_subprogram97);
function_subprogram();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.ext_function_subprogram(hasPrefix);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "ext_function_subprogram"
// $ANTLR start "specification_part"
// MFortranParser2018.g:73:1: specification_part : ( use_stmt )* ( import_stmt )* implicit_part_recursion ( declaration_construct )* ;
public final void specification_part() throws RecognitionException {
int numUS=0;
int numIS=0;
gctr0=0;
gctr1=0;
try {
// MFortranParser2018.g:83:5: ( ( use_stmt )* ( import_stmt )* implicit_part_recursion ( declaration_construct )* )
// MFortranParser2018.g:83:7: ( use_stmt )* ( import_stmt )* implicit_part_recursion ( declaration_construct )*
{
// MFortranParser2018.g:83:7: ( use_stmt )*
loop2:
while (true) {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==DIGIT_STR) ) {
int LA2_1 = input.LA(2);
if ( (LA2_1==USE) ) {
alt2=1;
}
}
else if ( (LA2_0==USE) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// MFortranParser2018.g:83:9: use_stmt
{
pushFollow(FOLLOW_use_stmt_in_specification_part126);
use_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numUS++;}
}
break;
default :
break loop2;
}
}
// MFortranParser2018.g:84:7: ( import_stmt )*
loop3:
while (true) {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==DIGIT_STR) ) {
int LA3_1 = input.LA(2);
if ( (LA3_1==IMPORT) ) {
alt3=1;
}
}
else if ( (LA3_0==IMPORT) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// MFortranParser2018.g:84:9: import_stmt
{
pushFollow(FOLLOW_import_stmt_in_specification_part142);
import_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numIS++;}
}
break;
default :
break loop3;
}
}
pushFollow(FOLLOW_implicit_part_recursion_in_specification_part155);
implicit_part_recursion();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:86:7: ( declaration_construct )*
loop4:
while (true) {
int alt4=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA4_1 = input.LA(2);
if ( (LA4_1==ABSTRACT||LA4_1==ALLOCATABLE||LA4_1==ASYNCHRONOUS||LA4_1==BIND||LA4_1==CHARACTER||LA4_1==CLASS||LA4_1==CODIMENSION||(LA4_1 >= COMMON && LA4_1 <= COMPLEX)||LA4_1==DATA||LA4_1==DIMENSION||(LA4_1 >= DOUBLE && LA4_1 <= DOUBLEPRECISION)||(LA4_1 >= ENTRY && LA4_1 <= ENUM)||LA4_1==EQUIVALENCE||LA4_1==EXTERNAL||LA4_1==FORMAT||(LA4_1 >= INTEGER && LA4_1 <= INTRINSIC)||LA4_1==LOGICAL||LA4_1==NAMELIST||LA4_1==OPTIONAL||LA4_1==PARAMETER||LA4_1==POINTER||(LA4_1 >= PRIVATE && LA4_1 <= PROCEDURE)||(LA4_1 >= PROTECTED && LA4_1 <= PUBLIC)||LA4_1==REAL||LA4_1==SAVE||LA4_1==STMT_FUNCTION||LA4_1==TARGET||LA4_1==TYPE||(LA4_1 >= VALUE && LA4_1 <= VOLATILE)) ) {
alt4=1;
}
}
break;
case PRAGMA:
{
int LA4_3 = input.LA(2);
if ( (LA4_3==IDENT) ) {
int LA4_5 = input.LA(3);
if ( (LA4_5==CIVL_PRIMITIVE) ) {
int LA4_6 = input.LA(4);
if ( (LA4_6==EOF||LA4_6==EOS) ) {
alt4=1;
}
}
}
}
break;
case ABSTRACT:
case ALLOCATABLE:
case ASYNCHRONOUS:
case BIND:
case CHARACTER:
case CLASS:
case CODIMENSION:
case COMMON:
case COMPLEX:
case DATA:
case DIMENSION:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case ENTRY:
case ENUM:
case EQUIVALENCE:
case EXTERNAL:
case FORMAT:
case INTEGER:
case INTENT:
case INTERFACE:
case INTRINSIC:
case LOGICAL:
case NAMELIST:
case OPTIONAL:
case PARAMETER:
case POINTER:
case PRIVATE:
case PROCEDURE:
case PROTECTED:
case PUBLIC:
case REAL:
case SAVE:
case STMT_FUNCTION:
case TARGET:
case TYPE:
case VALUE:
case VOLATILE:
{
alt4=1;
}
break;
}
switch (alt4) {
case 1 :
// MFortranParser2018.g:86:9: declaration_construct
{
pushFollow(FOLLOW_declaration_construct_in_specification_part165);
declaration_construct();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {gctr1++;}
}
break;
default :
break loop4;
}
}
}
if ( state.backtracking==0 ) {
MFPA.specification_part(numUS, numIS, gctr0, gctr1);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "specification_part"
// $ANTLR start "implicit_part_recursion"
// MFortranParser2018.g:93:1: implicit_part_recursion : ( ( ( label )? IMPLICIT )=> implicit_stmt implicit_part_recursion | ( ( label )? PARAMETER )=> parameter_stmt implicit_part_recursion | ( ( label )? FORMAT )=> format_stmt implicit_part_recursion | ( ( label )? ENTRY )=> entry_stmt implicit_part_recursion |);
public final void implicit_part_recursion() throws RecognitionException {
try {
// MFortranParser2018.g:94:5: ( ( ( label )? IMPLICIT )=> implicit_stmt implicit_part_recursion | ( ( label )? PARAMETER )=> parameter_stmt implicit_part_recursion | ( ( label )? FORMAT )=> format_stmt implicit_part_recursion | ( ( label )? ENTRY )=> entry_stmt implicit_part_recursion |)
int alt5=5;
alt5 = dfa5.predict(input);
switch (alt5) {
case 1 :
// MFortranParser2018.g:94:7: ( ( label )? IMPLICIT )=> implicit_stmt implicit_part_recursion
{
pushFollow(FOLLOW_implicit_stmt_in_implicit_part_recursion212);
implicit_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {gctr0++;}
pushFollow(FOLLOW_implicit_part_recursion_in_implicit_part_recursion217);
implicit_part_recursion();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:96:7: ( ( label )? PARAMETER )=> parameter_stmt implicit_part_recursion
{
pushFollow(FOLLOW_parameter_stmt_in_implicit_part_recursion247);
parameter_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {gctr1++;}
pushFollow(FOLLOW_implicit_part_recursion_in_implicit_part_recursion251);
implicit_part_recursion();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:98:7: ( ( label )? FORMAT )=> format_stmt implicit_part_recursion
{
pushFollow(FOLLOW_format_stmt_in_implicit_part_recursion284);
format_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {gctr1++;}
pushFollow(FOLLOW_implicit_part_recursion_in_implicit_part_recursion291);
implicit_part_recursion();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:100:7: ( ( label )? ENTRY )=> entry_stmt implicit_part_recursion
{
pushFollow(FOLLOW_entry_stmt_in_implicit_part_recursion325);
entry_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {gctr1++;}
pushFollow(FOLLOW_implicit_part_recursion_in_implicit_part_recursion333);
implicit_part_recursion();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:103:5:
{
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "implicit_part_recursion"
// $ANTLR start "declaration_construct"
// MFortranParser2018.g:112:1: declaration_construct : ( access_stmt | allocatable_stmt | asynchronous_stmt | bind_stmt | codimension_stmt | common_stmt | data_stmt | derived_type_def | dimension_stmt | entry_stmt | enum_def | equivalence_stmt | external_stmt | format_stmt | intent_stmt | interface_block | intrinsic_stmt | namelist_stmt | optional_stmt | parameter_stmt | pointer_stmt | procedure_declaration_stmt | protected_stmt | save_stmt | target_stmt | type_declaration_stmt | volatile_stmt | value_stmt | stmt_function_stmt | pragma_type_qualifier_stmt );
public final void declaration_construct() throws RecognitionException {
try {
// MFortranParser2018.g:116:5: ( access_stmt | allocatable_stmt | asynchronous_stmt | bind_stmt | codimension_stmt | common_stmt | data_stmt | derived_type_def | dimension_stmt | entry_stmt | enum_def | equivalence_stmt | external_stmt | format_stmt | intent_stmt | interface_block | intrinsic_stmt | namelist_stmt | optional_stmt | parameter_stmt | pointer_stmt | procedure_declaration_stmt | protected_stmt | save_stmt | target_stmt | type_declaration_stmt | volatile_stmt | value_stmt | stmt_function_stmt | pragma_type_qualifier_stmt )
int alt6=30;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case PRIVATE:
case PUBLIC:
{
alt6=1;
}
break;
case ALLOCATABLE:
{
alt6=2;
}
break;
case ASYNCHRONOUS:
{
alt6=3;
}
break;
case BIND:
{
alt6=4;
}
break;
case CODIMENSION:
{
alt6=5;
}
break;
case COMMON:
{
alt6=6;
}
break;
case DATA:
{
alt6=7;
}
break;
case TYPE:
{
int LA6_9 = input.LA(3);
if ( (LA6_9==LPAREN) ) {
alt6=26;
}
else if ( ((LA6_9 >= COLON_COLON && LA6_9 <= COMMA)||LA6_9==IDENT) ) {
alt6=8;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 6, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIMENSION:
{
alt6=9;
}
break;
case ENTRY:
{
alt6=10;
}
break;
case ENUM:
{
alt6=11;
}
break;
case EQUIVALENCE:
{
alt6=12;
}
break;
case EXTERNAL:
{
alt6=13;
}
break;
case FORMAT:
{
alt6=14;
}
break;
case INTENT:
{
alt6=15;
}
break;
case ABSTRACT:
case INTERFACE:
{
alt6=16;
}
break;
case INTRINSIC:
{
alt6=17;
}
break;
case NAMELIST:
{
alt6=18;
}
break;
case OPTIONAL:
{
alt6=19;
}
break;
case PARAMETER:
{
alt6=20;
}
break;
case POINTER:
{
alt6=21;
}
break;
case PROCEDURE:
{
alt6=22;
}
break;
case PROTECTED:
{
alt6=23;
}
break;
case SAVE:
{
alt6=24;
}
break;
case TARGET:
{
alt6=25;
}
break;
case CHARACTER:
case CLASS:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case INTEGER:
case LOGICAL:
case REAL:
{
alt6=26;
}
break;
case VOLATILE:
{
alt6=27;
}
break;
case VALUE:
{
alt6=28;
}
break;
case STMT_FUNCTION:
{
alt6=29;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 6, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PRIVATE:
case PUBLIC:
{
alt6=1;
}
break;
case ALLOCATABLE:
{
alt6=2;
}
break;
case ASYNCHRONOUS:
{
alt6=3;
}
break;
case BIND:
{
alt6=4;
}
break;
case CODIMENSION:
{
alt6=5;
}
break;
case COMMON:
{
alt6=6;
}
break;
case DATA:
{
alt6=7;
}
break;
case TYPE:
{
int LA6_9 = input.LA(2);
if ( (LA6_9==LPAREN) ) {
alt6=26;
}
else if ( ((LA6_9 >= COLON_COLON && LA6_9 <= COMMA)||LA6_9==IDENT) ) {
alt6=8;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 6, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIMENSION:
{
alt6=9;
}
break;
case ENTRY:
{
alt6=10;
}
break;
case ENUM:
{
alt6=11;
}
break;
case EQUIVALENCE:
{
alt6=12;
}
break;
case EXTERNAL:
{
alt6=13;
}
break;
case FORMAT:
{
alt6=14;
}
break;
case INTENT:
{
alt6=15;
}
break;
case ABSTRACT:
case INTERFACE:
{
alt6=16;
}
break;
case INTRINSIC:
{
alt6=17;
}
break;
case NAMELIST:
{
alt6=18;
}
break;
case OPTIONAL:
{
alt6=19;
}
break;
case PARAMETER:
{
alt6=20;
}
break;
case POINTER:
{
alt6=21;
}
break;
case PROCEDURE:
{
alt6=22;
}
break;
case PROTECTED:
{
alt6=23;
}
break;
case SAVE:
{
alt6=24;
}
break;
case TARGET:
{
alt6=25;
}
break;
case CHARACTER:
case CLASS:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case INTEGER:
case LOGICAL:
case REAL:
{
alt6=26;
}
break;
case VOLATILE:
{
alt6=27;
}
break;
case VALUE:
{
alt6=28;
}
break;
case STMT_FUNCTION:
{
alt6=29;
}
break;
case PRAGMA:
{
alt6=30;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 6, 0, input);
throw nvae;
}
switch (alt6) {
case 1 :
// MFortranParser2018.g:116:7: access_stmt
{
pushFollow(FOLLOW_access_stmt_in_declaration_construct363);
access_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:117:7: allocatable_stmt
{
pushFollow(FOLLOW_allocatable_stmt_in_declaration_construct371);
allocatable_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:118:7: asynchronous_stmt
{
pushFollow(FOLLOW_asynchronous_stmt_in_declaration_construct379);
asynchronous_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:119:7: bind_stmt
{
pushFollow(FOLLOW_bind_stmt_in_declaration_construct387);
bind_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:120:7: codimension_stmt
{
pushFollow(FOLLOW_codimension_stmt_in_declaration_construct395);
codimension_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// MFortranParser2018.g:121:7: common_stmt
{
pushFollow(FOLLOW_common_stmt_in_declaration_construct403);
common_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 7 :
// MFortranParser2018.g:122:7: data_stmt
{
pushFollow(FOLLOW_data_stmt_in_declaration_construct411);
data_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 8 :
// MFortranParser2018.g:123:7: derived_type_def
{
pushFollow(FOLLOW_derived_type_def_in_declaration_construct419);
derived_type_def();
state._fsp--;
if (state.failed) return;
}
break;
case 9 :
// MFortranParser2018.g:124:7: dimension_stmt
{
pushFollow(FOLLOW_dimension_stmt_in_declaration_construct427);
dimension_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 10 :
// MFortranParser2018.g:125:7: entry_stmt
{
pushFollow(FOLLOW_entry_stmt_in_declaration_construct435);
entry_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 11 :
// MFortranParser2018.g:126:7: enum_def
{
pushFollow(FOLLOW_enum_def_in_declaration_construct443);
enum_def();
state._fsp--;
if (state.failed) return;
}
break;
case 12 :
// MFortranParser2018.g:127:7: equivalence_stmt
{
pushFollow(FOLLOW_equivalence_stmt_in_declaration_construct451);
equivalence_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 13 :
// MFortranParser2018.g:128:7: external_stmt
{
pushFollow(FOLLOW_external_stmt_in_declaration_construct459);
external_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 14 :
// MFortranParser2018.g:129:7: format_stmt
{
pushFollow(FOLLOW_format_stmt_in_declaration_construct467);
format_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 15 :
// MFortranParser2018.g:130:7: intent_stmt
{
pushFollow(FOLLOW_intent_stmt_in_declaration_construct475);
intent_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 16 :
// MFortranParser2018.g:131:7: interface_block
{
pushFollow(FOLLOW_interface_block_in_declaration_construct483);
interface_block();
state._fsp--;
if (state.failed) return;
}
break;
case 17 :
// MFortranParser2018.g:132:7: intrinsic_stmt
{
pushFollow(FOLLOW_intrinsic_stmt_in_declaration_construct491);
intrinsic_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 18 :
// MFortranParser2018.g:133:7: namelist_stmt
{
pushFollow(FOLLOW_namelist_stmt_in_declaration_construct499);
namelist_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 19 :
// MFortranParser2018.g:134:7: optional_stmt
{
pushFollow(FOLLOW_optional_stmt_in_declaration_construct507);
optional_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 20 :
// MFortranParser2018.g:135:7: parameter_stmt
{
pushFollow(FOLLOW_parameter_stmt_in_declaration_construct515);
parameter_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 21 :
// MFortranParser2018.g:136:7: pointer_stmt
{
pushFollow(FOLLOW_pointer_stmt_in_declaration_construct523);
pointer_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 22 :
// MFortranParser2018.g:137:7: procedure_declaration_stmt
{
pushFollow(FOLLOW_procedure_declaration_stmt_in_declaration_construct531);
procedure_declaration_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 23 :
// MFortranParser2018.g:138:7: protected_stmt
{
pushFollow(FOLLOW_protected_stmt_in_declaration_construct539);
protected_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 24 :
// MFortranParser2018.g:139:7: save_stmt
{
pushFollow(FOLLOW_save_stmt_in_declaration_construct547);
save_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 25 :
// MFortranParser2018.g:140:7: target_stmt
{
pushFollow(FOLLOW_target_stmt_in_declaration_construct555);
target_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 26 :
// MFortranParser2018.g:141:7: type_declaration_stmt
{
pushFollow(FOLLOW_type_declaration_stmt_in_declaration_construct563);
type_declaration_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 27 :
// MFortranParser2018.g:142:7: volatile_stmt
{
pushFollow(FOLLOW_volatile_stmt_in_declaration_construct571);
volatile_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 28 :
// MFortranParser2018.g:143:7: value_stmt
{
pushFollow(FOLLOW_value_stmt_in_declaration_construct579);
value_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 29 :
// MFortranParser2018.g:144:7: stmt_function_stmt
{
pushFollow(FOLLOW_stmt_function_stmt_in_declaration_construct587);
stmt_function_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 30 :
// MFortranParser2018.g:145:7: pragma_type_qualifier_stmt
{
pushFollow(FOLLOW_pragma_type_qualifier_stmt_in_declaration_construct595);
pragma_type_qualifier_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.declaration_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "declaration_construct"
// $ANTLR start "execution_part"
// MFortranParser2018.g:151:1: execution_part : executable_construct ( execution_part_construct )* ;
public final void execution_part() throws RecognitionException {
int numExec = 1;
try {
// MFortranParser2018.g:158:5: ( executable_construct ( execution_part_construct )* )
// MFortranParser2018.g:158:7: executable_construct ( execution_part_construct )*
{
pushFollow(FOLLOW_executable_construct_in_execution_part622);
executable_construct();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:159:7: ( execution_part_construct )*
loop7:
while (true) {
int alt7=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA7_1 = input.LA(2);
if ( (LA7_1==END) ) {
int LA7_3 = input.LA(3);
if ( (LA7_3==FILE) ) {
alt7=1;
}
}
else if ( (LA7_1==ALLOCATE||LA7_1==ASSOCIATE||LA7_1==BACKSPACE||LA7_1==BLOCK||LA7_1==CALL||LA7_1==CLOSE||LA7_1==CONTINUE||(LA7_1 >= CRITICAL && LA7_1 <= DEALLOCATE)||LA7_1==DO||LA7_1==ENTRY||LA7_1==EXIT||LA7_1==FLUSH||LA7_1==FORMAT||(LA7_1 >= GO && LA7_1 <= GOTO)||(LA7_1 >= IDENT && LA7_1 <= IF)||LA7_1==INQUIRE||(LA7_1 >= M_ALLOCATE_STMT_1 && LA7_1 <= M_ASSIGNMENT_STMT)||(LA7_1 >= M_FORALL_CONSTRUCT_STMT && LA7_1 <= M_IF_STMT)||LA7_1==M_INQUIRE_STMT_2||LA7_1==M_PTR_ASSIGNMENT_STMT||LA7_1==M_WHERE_STMT||LA7_1==NULLIFY||LA7_1==OPEN||LA7_1==PRINT||LA7_1==READ||(LA7_1 >= RETURN && LA7_1 <= REWIND)||(LA7_1 >= SELECT && LA7_1 <= SELECTTYPE)||LA7_1==STOP||LA7_1==SYNC||LA7_1==WAIT||LA7_1==WRITE) ) {
alt7=1;
}
}
break;
case END:
{
int LA7_3 = input.LA(2);
if ( (LA7_3==FILE) ) {
alt7=1;
}
}
break;
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DATA:
case DEALLOCATE:
case DO:
case ENTRY:
case EXIT:
case FLUSH:
case FORMAT:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_CONSTRUCT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRAGMA:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt7=1;
}
break;
}
switch (alt7) {
case 1 :
// MFortranParser2018.g:159:9: execution_part_construct
{
pushFollow(FOLLOW_execution_part_construct_in_execution_part632);
execution_part_construct();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numExec++;}
}
break;
default :
break loop7;
}
}
}
if ( state.backtracking==0 ) {
MFPA.execution_part(numExec);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "execution_part"
// $ANTLR start "execution_part_construct"
// MFortranParser2018.g:165:1: execution_part_construct : ( executable_construct | data_stmt | entry_stmt | format_stmt );
public final void execution_part_construct() throws RecognitionException {
try {
// MFortranParser2018.g:169:5: ( executable_construct | data_stmt | entry_stmt | format_stmt )
int alt8=4;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DEALLOCATE:
case DO:
case END:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt8=1;
}
break;
case DATA:
{
alt8=2;
}
break;
case ENTRY:
{
alt8=3;
}
break;
case FORMAT:
{
alt8=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 8, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DEALLOCATE:
case DO:
case END:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_CONSTRUCT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRAGMA:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt8=1;
}
break;
case DATA:
{
alt8=2;
}
break;
case ENTRY:
{
alt8=3;
}
break;
case FORMAT:
{
alt8=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 8, 0, input);
throw nvae;
}
switch (alt8) {
case 1 :
// MFortranParser2018.g:169:7: executable_construct
{
pushFollow(FOLLOW_executable_construct_in_execution_part_construct661);
executable_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:170:7: data_stmt
{
pushFollow(FOLLOW_data_stmt_in_execution_part_construct669);
data_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:171:7: entry_stmt
{
pushFollow(FOLLOW_entry_stmt_in_execution_part_construct677);
entry_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:172:7: format_stmt
{
pushFollow(FOLLOW_format_stmt_in_execution_part_construct685);
format_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.execution_part_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "execution_part_construct"
// $ANTLR start "internal_subprogram_part"
// MFortranParser2018.g:178:1: internal_subprogram_part : contains_stmt ( internal_subprogram )* ;
public final void internal_subprogram_part() throws RecognitionException {
int numIS = 0;
try {
// MFortranParser2018.g:185:5: ( contains_stmt ( internal_subprogram )* )
// MFortranParser2018.g:185:7: contains_stmt ( internal_subprogram )*
{
pushFollow(FOLLOW_contains_stmt_in_internal_subprogram_part712);
contains_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:186:7: ( internal_subprogram )*
loop9:
while (true) {
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==DIGIT_STR) ) {
int LA9_1 = input.LA(2);
if ( (LA9_1==CHARACTER||LA9_1==CLASS||LA9_1==COMPLEX||(LA9_1 >= DOUBLE && LA9_1 <= DOUBLEPRECISION)||LA9_1==ELEMENTAL||LA9_1==FUNCTION||LA9_1==IMPURE||LA9_1==INTEGER||LA9_1==LOGICAL||LA9_1==MODULE||LA9_1==NON_RECURSIVE||LA9_1==PURE||(LA9_1 >= REAL && LA9_1 <= RECURSIVE)||LA9_1==SUBROUTINE||LA9_1==TYPE) ) {
alt9=1;
}
}
else if ( (LA9_0==CHARACTER||LA9_0==CLASS||LA9_0==COMPLEX||(LA9_0 >= DOUBLE && LA9_0 <= DOUBLEPRECISION)||LA9_0==ELEMENTAL||LA9_0==FUNCTION||LA9_0==IMPURE||LA9_0==INTEGER||LA9_0==LOGICAL||LA9_0==MODULE||LA9_0==NON_RECURSIVE||LA9_0==PURE||(LA9_0 >= REAL && LA9_0 <= RECURSIVE)||LA9_0==SUBROUTINE||LA9_0==TYPE) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// MFortranParser2018.g:186:9: internal_subprogram
{
pushFollow(FOLLOW_internal_subprogram_in_internal_subprogram_part722);
internal_subprogram();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numIS++;}
}
break;
default :
break loop9;
}
}
}
if ( state.backtracking==0 ) {
MFPA.internal_subprogram_part(numIS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "internal_subprogram_part"
// $ANTLR start "internal_subprogram"
// MFortranParser2018.g:192:1: internal_subprogram options {backtrack=true; } : ( ( prefix )? function_subprogram | subroutine_subprogram );
public final void internal_subprogram() throws RecognitionException {
try {
// MFortranParser2018.g:197:5: ( ( prefix )? function_subprogram | subroutine_subprogram )
int alt11=2;
switch ( input.LA(1) ) {
case INTEGER:
{
int LA11_1 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case REAL:
{
int LA11_2 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case DOUBLE:
{
int LA11_3 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case DOUBLEPRECISION:
{
int LA11_4 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case COMPLEX:
{
int LA11_5 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case DOUBLECOMPLEX:
{
int LA11_6 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case CHARACTER:
{
int LA11_7 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case LOGICAL:
{
int LA11_8 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case TYPE:
{
int LA11_9 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case CLASS:
{
int LA11_10 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case ELEMENTAL:
{
int LA11_11 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case IMPURE:
{
int LA11_12 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case MODULE:
{
int LA11_13 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case NON_RECURSIVE:
{
int LA11_14 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case PURE:
{
int LA11_15 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case RECURSIVE:
{
int LA11_16 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case DIGIT_STR:
{
int LA11_17 = input.LA(2);
if ( (synpred5_MFortranParser2018()) ) {
alt11=1;
}
else if ( (true) ) {
alt11=2;
}
}
break;
case FUNCTION:
{
alt11=1;
}
break;
case SUBROUTINE:
{
alt11=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// MFortranParser2018.g:197:7: ( prefix )? function_subprogram
{
// MFortranParser2018.g:197:7: ( prefix )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==CHARACTER||LA10_0==CLASS||LA10_0==COMPLEX||(LA10_0 >= DOUBLE && LA10_0 <= DOUBLEPRECISION)||LA10_0==ELEMENTAL||LA10_0==IMPURE||LA10_0==INTEGER||LA10_0==LOGICAL||LA10_0==MODULE||LA10_0==NON_RECURSIVE||LA10_0==PURE||(LA10_0 >= REAL && LA10_0 <= RECURSIVE)||LA10_0==TYPE) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// MFortranParser2018.g:197:9: prefix
{
pushFollow(FOLLOW_prefix_in_internal_subprogram763);
prefix();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_function_subprogram_in_internal_subprogram768);
function_subprogram();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:198:7: subroutine_subprogram
{
pushFollow(FOLLOW_subroutine_subprogram_in_internal_subprogram776);
subroutine_subprogram();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.internal_subprogram();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "internal_subprogram"
// $ANTLR start "executable_construct"
// MFortranParser2018.g:210:1: executable_construct : ( action_stmt | associate_construct | block_construct | case_construct | critical_construct | do_construct | forall_construct | if_construct | select_type_construct | where_construct | pragma_stmt );
public final void executable_construct() throws RecognitionException {
try {
// MFortranParser2018.g:214:5: ( action_stmt | associate_construct | block_construct | case_construct | critical_construct | do_construct | forall_construct | if_construct | select_type_construct | where_construct | pragma_stmt )
int alt12=11;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case ALLOCATE:
case BACKSPACE:
case CALL:
case CLOSE:
case CONTINUE:
case CYCLE:
case DEALLOCATE:
case END:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRINT:
case READ:
case RETURN:
case REWIND:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt12=1;
}
break;
case IDENT:
{
int LA12_15 = input.LA(3);
if ( (LA12_15==COLON) ) {
switch ( input.LA(4) ) {
case ASSOCIATE:
{
alt12=2;
}
break;
case BLOCK:
{
alt12=3;
}
break;
case SELECT:
{
int LA12_6 = input.LA(5);
if ( (LA12_6==CASE) ) {
alt12=4;
}
else if ( (LA12_6==TYPE) ) {
alt12=9;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 12, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECTCASE:
{
alt12=4;
}
break;
case CRITICAL:
{
alt12=5;
}
break;
case DO:
{
alt12=6;
}
break;
case M_FORALL_CONSTRUCT_STMT:
{
alt12=7;
}
break;
case IF:
{
alt12=8;
}
break;
case SELECTTYPE:
{
alt12=9;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 12, 17, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 12, 15, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ASSOCIATE:
{
alt12=2;
}
break;
case BLOCK:
{
alt12=3;
}
break;
case SELECT:
{
int LA12_6 = input.LA(3);
if ( (LA12_6==CASE) ) {
alt12=4;
}
else if ( (LA12_6==TYPE) ) {
alt12=9;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 12, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECTCASE:
{
alt12=4;
}
break;
case CRITICAL:
{
alt12=5;
}
break;
case DO:
{
alt12=6;
}
break;
case M_FORALL_CONSTRUCT_STMT:
{
alt12=7;
}
break;
case IF:
{
alt12=8;
}
break;
case SELECTTYPE:
{
alt12=9;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 12, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ALLOCATE:
case BACKSPACE:
case CALL:
case CLOSE:
case CONTINUE:
case CYCLE:
case DEALLOCATE:
case END:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRINT:
case READ:
case RETURN:
case REWIND:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt12=1;
}
break;
case IDENT:
{
int LA12_3 = input.LA(2);
if ( (LA12_3==COLON) ) {
switch ( input.LA(3) ) {
case ASSOCIATE:
{
alt12=2;
}
break;
case BLOCK:
{
alt12=3;
}
break;
case SELECT:
{
int LA12_6 = input.LA(4);
if ( (LA12_6==CASE) ) {
alt12=4;
}
else if ( (LA12_6==TYPE) ) {
alt12=9;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 12, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECTCASE:
{
alt12=4;
}
break;
case CRITICAL:
{
alt12=5;
}
break;
case DO:
{
alt12=6;
}
break;
case M_FORALL_CONSTRUCT_STMT:
{
alt12=7;
}
break;
case IF:
{
alt12=8;
}
break;
case SELECTTYPE:
{
alt12=9;
}
break;
case M_WHERE_CONSTRUCT_STMT:
{
alt12=10;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 12, 16, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 12, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ASSOCIATE:
{
alt12=2;
}
break;
case BLOCK:
{
alt12=3;
}
break;
case SELECT:
{
int LA12_6 = input.LA(2);
if ( (LA12_6==CASE) ) {
alt12=4;
}
else if ( (LA12_6==TYPE) ) {
alt12=9;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 12, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECTCASE:
{
alt12=4;
}
break;
case CRITICAL:
{
alt12=5;
}
break;
case DO:
{
alt12=6;
}
break;
case M_FORALL_CONSTRUCT_STMT:
{
alt12=7;
}
break;
case IF:
{
alt12=8;
}
break;
case SELECTTYPE:
{
alt12=9;
}
break;
case M_WHERE_CONSTRUCT_STMT:
{
alt12=10;
}
break;
case PRAGMA:
{
alt12=11;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// MFortranParser2018.g:214:7: action_stmt
{
pushFollow(FOLLOW_action_stmt_in_executable_construct800);
action_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:215:7: associate_construct
{
pushFollow(FOLLOW_associate_construct_in_executable_construct808);
associate_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:216:7: block_construct
{
pushFollow(FOLLOW_block_construct_in_executable_construct816);
block_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:217:7: case_construct
{
pushFollow(FOLLOW_case_construct_in_executable_construct824);
case_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:218:7: critical_construct
{
pushFollow(FOLLOW_critical_construct_in_executable_construct832);
critical_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// MFortranParser2018.g:219:7: do_construct
{
pushFollow(FOLLOW_do_construct_in_executable_construct840);
do_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 7 :
// MFortranParser2018.g:220:7: forall_construct
{
pushFollow(FOLLOW_forall_construct_in_executable_construct848);
forall_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 8 :
// MFortranParser2018.g:221:7: if_construct
{
pushFollow(FOLLOW_if_construct_in_executable_construct856);
if_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 9 :
// MFortranParser2018.g:222:7: select_type_construct
{
pushFollow(FOLLOW_select_type_construct_in_executable_construct864);
select_type_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 10 :
// MFortranParser2018.g:223:7: where_construct
{
pushFollow(FOLLOW_where_construct_in_executable_construct872);
where_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 11 :
// MFortranParser2018.g:224:7: pragma_stmt
{
pushFollow(FOLLOW_pragma_stmt_in_executable_construct880);
pragma_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.executable_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "executable_construct"
// $ANTLR start "action_stmt"
// MFortranParser2018.g:230:1: action_stmt : ( allocate_stmt | assignment_stmt | backspace_stmt | call_stmt | close_stmt | computed_goto_stmt | continue_stmt | cycle_stmt | deallocate_stmt | endfile_stmt | exit_stmt | flush_stmt | forall_stmt | goto_stmt | if_stmt | inquire_stmt | nullify_stmt | open_stmt | pointer_assignment_stmt | print_stmt | read_stmt | return_stmt | rewind_stmt | stop_stmt | sync_all_stmt | sync_images_stmt | sync_memory_stmt | wait_stmt | where_stmt | write_stmt );
public final void action_stmt() throws RecognitionException {
try {
// MFortranParser2018.g:235:5: ( allocate_stmt | assignment_stmt | backspace_stmt | call_stmt | close_stmt | computed_goto_stmt | continue_stmt | cycle_stmt | deallocate_stmt | endfile_stmt | exit_stmt | flush_stmt | forall_stmt | goto_stmt | if_stmt | inquire_stmt | nullify_stmt | open_stmt | pointer_assignment_stmt | print_stmt | read_stmt | return_stmt | rewind_stmt | stop_stmt | sync_all_stmt | sync_images_stmt | sync_memory_stmt | wait_stmt | where_stmt | write_stmt )
int alt13=30;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case ALLOCATE:
case M_ALLOCATE_STMT_1:
{
alt13=1;
}
break;
case M_ASSIGNMENT_STMT:
{
alt13=2;
}
break;
case BACKSPACE:
{
alt13=3;
}
break;
case CALL:
{
alt13=4;
}
break;
case CLOSE:
{
alt13=5;
}
break;
case GO:
{
int LA13_7 = input.LA(3);
if ( (LA13_7==TO) ) {
int LA13_30 = input.LA(4);
if ( (LA13_30==LPAREN) ) {
alt13=6;
}
else if ( (LA13_30==DIGIT_STR) ) {
alt13=14;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 13, 30, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 13, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GOTO:
{
int LA13_8 = input.LA(3);
if ( (LA13_8==LPAREN) ) {
alt13=6;
}
else if ( (LA13_8==DIGIT_STR) ) {
alt13=14;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 13, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CONTINUE:
{
alt13=7;
}
break;
case CYCLE:
{
alt13=8;
}
break;
case DEALLOCATE:
{
alt13=9;
}
break;
case END:
{
alt13=10;
}
break;
case EXIT:
{
alt13=11;
}
break;
case FLUSH:
{
alt13=12;
}
break;
case M_FORALL_STMT:
{
alt13=13;
}
break;
case M_IF_STMT:
{
alt13=15;
}
break;
case INQUIRE:
case M_INQUIRE_STMT_2:
{
alt13=16;
}
break;
case NULLIFY:
{
alt13=17;
}
break;
case OPEN:
{
alt13=18;
}
break;
case M_PTR_ASSIGNMENT_STMT:
{
alt13=19;
}
break;
case PRINT:
{
alt13=20;
}
break;
case READ:
{
alt13=21;
}
break;
case RETURN:
{
alt13=22;
}
break;
case REWIND:
{
alt13=23;
}
break;
case STOP:
{
alt13=24;
}
break;
case SYNC:
{
switch ( input.LA(3) ) {
case ALL:
{
alt13=25;
}
break;
case IMAGES:
{
alt13=26;
}
break;
case MEMORY:
{
alt13=27;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 13, 26, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case WAIT:
{
alt13=28;
}
break;
case M_WHERE_STMT:
{
alt13=29;
}
break;
case WRITE:
{
alt13=30;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ALLOCATE:
case M_ALLOCATE_STMT_1:
{
alt13=1;
}
break;
case M_ASSIGNMENT_STMT:
{
alt13=2;
}
break;
case BACKSPACE:
{
alt13=3;
}
break;
case CALL:
{
alt13=4;
}
break;
case CLOSE:
{
alt13=5;
}
break;
case GO:
{
int LA13_7 = input.LA(2);
if ( (LA13_7==TO) ) {
int LA13_30 = input.LA(3);
if ( (LA13_30==LPAREN) ) {
alt13=6;
}
else if ( (LA13_30==DIGIT_STR) ) {
alt13=14;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 13, 30, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GOTO:
{
int LA13_8 = input.LA(2);
if ( (LA13_8==LPAREN) ) {
alt13=6;
}
else if ( (LA13_8==DIGIT_STR) ) {
alt13=14;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CONTINUE:
{
alt13=7;
}
break;
case CYCLE:
{
alt13=8;
}
break;
case DEALLOCATE:
{
alt13=9;
}
break;
case END:
{
alt13=10;
}
break;
case EXIT:
{
alt13=11;
}
break;
case FLUSH:
{
alt13=12;
}
break;
case M_FORALL_STMT:
{
alt13=13;
}
break;
case M_IF_STMT:
{
alt13=15;
}
break;
case INQUIRE:
case M_INQUIRE_STMT_2:
{
alt13=16;
}
break;
case NULLIFY:
{
alt13=17;
}
break;
case OPEN:
{
alt13=18;
}
break;
case M_PTR_ASSIGNMENT_STMT:
{
alt13=19;
}
break;
case PRINT:
{
alt13=20;
}
break;
case READ:
{
alt13=21;
}
break;
case RETURN:
{
alt13=22;
}
break;
case REWIND:
{
alt13=23;
}
break;
case STOP:
{
alt13=24;
}
break;
case SYNC:
{
switch ( input.LA(2) ) {
case ALL:
{
alt13=25;
}
break;
case IMAGES:
{
alt13=26;
}
break;
case MEMORY:
{
alt13=27;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 26, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case WAIT:
{
alt13=28;
}
break;
case M_WHERE_STMT:
{
alt13=29;
}
break;
case WRITE:
{
alt13=30;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// MFortranParser2018.g:235:7: allocate_stmt
{
pushFollow(FOLLOW_allocate_stmt_in_action_stmt903);
allocate_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:236:7: assignment_stmt
{
pushFollow(FOLLOW_assignment_stmt_in_action_stmt911);
assignment_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:237:7: backspace_stmt
{
pushFollow(FOLLOW_backspace_stmt_in_action_stmt919);
backspace_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:238:7: call_stmt
{
pushFollow(FOLLOW_call_stmt_in_action_stmt927);
call_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:239:7: close_stmt
{
pushFollow(FOLLOW_close_stmt_in_action_stmt935);
close_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// MFortranParser2018.g:240:7: computed_goto_stmt
{
pushFollow(FOLLOW_computed_goto_stmt_in_action_stmt943);
computed_goto_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 7 :
// MFortranParser2018.g:241:7: continue_stmt
{
pushFollow(FOLLOW_continue_stmt_in_action_stmt951);
continue_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 8 :
// MFortranParser2018.g:242:7: cycle_stmt
{
pushFollow(FOLLOW_cycle_stmt_in_action_stmt959);
cycle_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 9 :
// MFortranParser2018.g:243:7: deallocate_stmt
{
pushFollow(FOLLOW_deallocate_stmt_in_action_stmt967);
deallocate_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 10 :
// MFortranParser2018.g:244:7: endfile_stmt
{
pushFollow(FOLLOW_endfile_stmt_in_action_stmt975);
endfile_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 11 :
// MFortranParser2018.g:245:7: exit_stmt
{
pushFollow(FOLLOW_exit_stmt_in_action_stmt983);
exit_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 12 :
// MFortranParser2018.g:246:7: flush_stmt
{
pushFollow(FOLLOW_flush_stmt_in_action_stmt991);
flush_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 13 :
// MFortranParser2018.g:247:7: forall_stmt
{
pushFollow(FOLLOW_forall_stmt_in_action_stmt999);
forall_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 14 :
// MFortranParser2018.g:248:7: goto_stmt
{
pushFollow(FOLLOW_goto_stmt_in_action_stmt1007);
goto_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 15 :
// MFortranParser2018.g:249:7: if_stmt
{
pushFollow(FOLLOW_if_stmt_in_action_stmt1015);
if_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 16 :
// MFortranParser2018.g:250:7: inquire_stmt
{
pushFollow(FOLLOW_inquire_stmt_in_action_stmt1023);
inquire_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 17 :
// MFortranParser2018.g:251:7: nullify_stmt
{
pushFollow(FOLLOW_nullify_stmt_in_action_stmt1031);
nullify_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 18 :
// MFortranParser2018.g:252:7: open_stmt
{
pushFollow(FOLLOW_open_stmt_in_action_stmt1039);
open_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 19 :
// MFortranParser2018.g:253:7: pointer_assignment_stmt
{
pushFollow(FOLLOW_pointer_assignment_stmt_in_action_stmt1047);
pointer_assignment_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 20 :
// MFortranParser2018.g:254:7: print_stmt
{
pushFollow(FOLLOW_print_stmt_in_action_stmt1055);
print_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 21 :
// MFortranParser2018.g:255:7: read_stmt
{
pushFollow(FOLLOW_read_stmt_in_action_stmt1063);
read_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 22 :
// MFortranParser2018.g:256:7: return_stmt
{
pushFollow(FOLLOW_return_stmt_in_action_stmt1071);
return_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 23 :
// MFortranParser2018.g:257:7: rewind_stmt
{
pushFollow(FOLLOW_rewind_stmt_in_action_stmt1079);
rewind_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 24 :
// MFortranParser2018.g:258:7: stop_stmt
{
pushFollow(FOLLOW_stop_stmt_in_action_stmt1087);
stop_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 25 :
// MFortranParser2018.g:259:7: sync_all_stmt
{
pushFollow(FOLLOW_sync_all_stmt_in_action_stmt1095);
sync_all_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 26 :
// MFortranParser2018.g:260:7: sync_images_stmt
{
pushFollow(FOLLOW_sync_images_stmt_in_action_stmt1103);
sync_images_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 27 :
// MFortranParser2018.g:261:7: sync_memory_stmt
{
pushFollow(FOLLOW_sync_memory_stmt_in_action_stmt1111);
sync_memory_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 28 :
// MFortranParser2018.g:262:7: wait_stmt
{
pushFollow(FOLLOW_wait_stmt_in_action_stmt1119);
wait_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 29 :
// MFortranParser2018.g:263:7: where_stmt
{
pushFollow(FOLLOW_where_stmt_in_action_stmt1127);
where_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 30 :
// MFortranParser2018.g:264:7: write_stmt
{
pushFollow(FOLLOW_write_stmt_in_action_stmt1135);
write_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.action_stmt();
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "action_stmt"
// $ANTLR start "keyword"
// MFortranParser2018.g:284:1: keyword returns [Token t] : name ;
public final Token keyword() throws RecognitionException {
Token t = null;
Token name1 =null;
try {
// MFortranParser2018.g:288:5: ( name )
// MFortranParser2018.g:288:7: name
{
pushFollow(FOLLOW_name_in_keyword1176);
name1=name();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) {t = name1;}
}
if ( state.backtracking==0 ) {
MFPA.keyword();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "keyword"
// $ANTLR start "name"
// MFortranParser2018.g:300:1: name returns [Token t] : IDENT ;
public final Token name() throws RecognitionException {
Token t = null;
Token IDENT2=null;
try {
// MFortranParser2018.g:304:5: ( IDENT )
// MFortranParser2018.g:304:7: IDENT
{
IDENT2=(Token)match(input,IDENT,FOLLOW_IDENT_in_name1208); if (state.failed) return t;
if ( state.backtracking==0 ) { t = IDENT2; }
}
if ( state.backtracking==0 ) {
MFPA.name(t);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "name"
// $ANTLR start "constant"
// MFortranParser2018.g:312:1: constant : ( literal_constant |t= IDENT );
public final void constant() throws RecognitionException {
Token t=null;
try {
// MFortranParser2018.g:316:5: ( literal_constant |t= IDENT )
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==BIN_CONST||LA14_0==CHAR_CONST||LA14_0==DIGIT_STR||LA14_0==FALSE||LA14_0==HEX_CONST||LA14_0==LPAREN||LA14_0==M_REAL_CONST||LA14_0==OCT_CONST||LA14_0==TRUE) ) {
alt14=1;
}
else if ( (LA14_0==IDENT) ) {
int LA14_2 = input.LA(2);
if ( (LA14_2==CHAR_CONST) ) {
alt14=1;
}
else if ( (LA14_2==EOF) ) {
alt14=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 14, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 14, 0, input);
throw nvae;
}
switch (alt14) {
case 1 :
// MFortranParser2018.g:316:7: literal_constant
{
pushFollow(FOLLOW_literal_constant_in_constant1233);
literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:317:7: t= IDENT
{
t=(Token)match(input,IDENT,FOLLOW_IDENT_in_constant1243); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.constant(t);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "constant"
// $ANTLR start "literal_constant"
// MFortranParser2018.g:323:1: literal_constant : ( int_literal_constant | real_literal_constant | complex_literal_constant | logical_literal_constant | char_literal_constant | boz_literal_constant );
public final void literal_constant() throws RecognitionException {
try {
// MFortranParser2018.g:327:5: ( int_literal_constant | real_literal_constant | complex_literal_constant | logical_literal_constant | char_literal_constant | boz_literal_constant )
int alt15=6;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA15_1 = input.LA(2);
if ( (LA15_1==UNDERSCORE) ) {
int LA15_7 = input.LA(3);
if ( (LA15_7==CHAR_CONST) ) {
alt15=5;
}
else if ( (LA15_7==DIGIT_STR||LA15_7==IDENT) ) {
alt15=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 15, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA15_1==EOF||LA15_1==AND||LA15_1==ASTERISK||(LA15_1 >= COLON && LA15_1 <= COMMA)||LA15_1==DEFINED_OP||(LA15_1 >= EOS && LA15_1 <= EQ)||(LA15_1 >= EQV && LA15_1 <= EQ_EQ)||LA15_1==GE||(LA15_1 >= GREATERTHAN && LA15_1 <= GT)||LA15_1==LE||(LA15_1 >= LESSTHAN && LA15_1 <= LESSTHAN_EQ)||LA15_1==LT||LA15_1==MINUS||(LA15_1 >= NE && LA15_1 <= NEQV)||LA15_1==OR||LA15_1==PLUS||LA15_1==POWER||LA15_1==RBRACKET||LA15_1==RPAREN||(LA15_1 >= SLASH && LA15_1 <= SLASH_SLASH)) ) {
alt15=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 15, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case M_REAL_CONST:
{
alt15=2;
}
break;
case LPAREN:
{
alt15=3;
}
break;
case FALSE:
case TRUE:
{
alt15=4;
}
break;
case CHAR_CONST:
case IDENT:
{
alt15=5;
}
break;
case BIN_CONST:
case HEX_CONST:
case OCT_CONST:
{
alt15=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 15, 0, input);
throw nvae;
}
switch (alt15) {
case 1 :
// MFortranParser2018.g:327:7: int_literal_constant
{
pushFollow(FOLLOW_int_literal_constant_in_literal_constant1267);
int_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:328:7: real_literal_constant
{
pushFollow(FOLLOW_real_literal_constant_in_literal_constant1275);
real_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:329:7: complex_literal_constant
{
pushFollow(FOLLOW_complex_literal_constant_in_literal_constant1283);
complex_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:330:7: logical_literal_constant
{
pushFollow(FOLLOW_logical_literal_constant_in_literal_constant1291);
logical_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:331:7: char_literal_constant
{
pushFollow(FOLLOW_char_literal_constant_in_literal_constant1299);
char_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// MFortranParser2018.g:332:7: boz_literal_constant
{
pushFollow(FOLLOW_boz_literal_constant_in_literal_constant1307);
boz_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.literal_constant();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "literal_constant"
// $ANTLR start "int_constant"
// MFortranParser2018.g:340:1: int_constant : ( int_literal_constant |c= IDENT );
public final void int_constant() throws RecognitionException {
Token c=null;
try {
// MFortranParser2018.g:344:5: ( int_literal_constant |c= IDENT )
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==DIGIT_STR) ) {
alt16=1;
}
else if ( (LA16_0==IDENT) ) {
alt16=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// MFortranParser2018.g:344:7: int_literal_constant
{
pushFollow(FOLLOW_int_literal_constant_in_int_constant1332);
int_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:345:7: c= IDENT
{
c=(Token)match(input,IDENT,FOLLOW_IDENT_in_int_constant1342); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.int_constant(c);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "int_constant"
// $ANTLR start "intrinsic_operator"
// MFortranParser2018.g:351:1: intrinsic_operator returns [Token t] : ( power_op | mult_op | add_op | concat_op | rel_op | not_op | and_op | or_op | equiv_op );
public final Token intrinsic_operator() throws RecognitionException {
Token t = null;
Token power_op3 =null;
Token mult_op4 =null;
Token add_op5 =null;
Token concat_op6 =null;
Token rel_op7 =null;
Token not_op8 =null;
Token and_op9 =null;
Token or_op10 =null;
Token equiv_op11 =null;
try {
// MFortranParser2018.g:355:5: ( power_op | mult_op | add_op | concat_op | rel_op | not_op | and_op | or_op | equiv_op )
int alt17=9;
switch ( input.LA(1) ) {
case POWER:
{
alt17=1;
}
break;
case ASTERISK:
case SLASH:
{
alt17=2;
}
break;
case MINUS:
case PLUS:
{
alt17=3;
}
break;
case SLASH_SLASH:
{
alt17=4;
}
break;
case EQ:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LT:
case NE:
case SLASH_EQ:
{
alt17=5;
}
break;
case NOT:
{
alt17=6;
}
break;
case AND:
{
alt17=7;
}
break;
case OR:
{
alt17=8;
}
break;
case EQV:
case NEQV:
{
alt17=9;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
// MFortranParser2018.g:355:7: power_op
{
pushFollow(FOLLOW_power_op_in_intrinsic_operator1369);
power_op3=power_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = power_op3; }
}
break;
case 2 :
// MFortranParser2018.g:356:7: mult_op
{
pushFollow(FOLLOW_mult_op_in_intrinsic_operator1380);
mult_op4=mult_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = mult_op4; }
}
break;
case 3 :
// MFortranParser2018.g:357:7: add_op
{
pushFollow(FOLLOW_add_op_in_intrinsic_operator1392);
add_op5=add_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = add_op5; }
}
break;
case 4 :
// MFortranParser2018.g:358:7: concat_op
{
pushFollow(FOLLOW_concat_op_in_intrinsic_operator1405);
concat_op6=concat_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = concat_op6; }
}
break;
case 5 :
// MFortranParser2018.g:359:7: rel_op
{
pushFollow(FOLLOW_rel_op_in_intrinsic_operator1415);
rel_op7=rel_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = rel_op7; }
}
break;
case 6 :
// MFortranParser2018.g:360:7: not_op
{
pushFollow(FOLLOW_not_op_in_intrinsic_operator1428);
not_op8=not_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = not_op8; }
}
break;
case 7 :
// MFortranParser2018.g:361:7: and_op
{
pushFollow(FOLLOW_and_op_in_intrinsic_operator1441);
and_op9=and_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = and_op9; }
}
break;
case 8 :
// MFortranParser2018.g:362:7: or_op
{
pushFollow(FOLLOW_or_op_in_intrinsic_operator1454);
or_op10=or_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = or_op10; }
}
break;
case 9 :
// MFortranParser2018.g:363:7: equiv_op
{
pushFollow(FOLLOW_equiv_op_in_intrinsic_operator1468);
equiv_op11=equiv_op();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = equiv_op11; }
}
break;
}
if ( state.backtracking==0 ) {
MFPA.intrinsic_operator();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "intrinsic_operator"
// $ANTLR start "defined_operator"
// MFortranParser2018.g:369:1: defined_operator : ( DEFINED_OP | extended_intrinsic_op );
public final void defined_operator() throws RecognitionException {
Token DEFINED_OP12=null;
Token extended_intrinsic_op13 =null;
try {
// MFortranParser2018.g:370:5: ( DEFINED_OP | extended_intrinsic_op )
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==DEFINED_OP) ) {
alt18=1;
}
else if ( (LA18_0==AND||LA18_0==ASTERISK||LA18_0==EQ||(LA18_0 >= EQV && LA18_0 <= EQ_EQ)||LA18_0==GE||(LA18_0 >= GREATERTHAN && LA18_0 <= GT)||LA18_0==LE||(LA18_0 >= LESSTHAN && LA18_0 <= LESSTHAN_EQ)||LA18_0==LT||LA18_0==MINUS||(LA18_0 >= NE && LA18_0 <= NEQV)||LA18_0==NOT||LA18_0==OR||LA18_0==PLUS||LA18_0==POWER||(LA18_0 >= SLASH && LA18_0 <= SLASH_SLASH)) ) {
alt18=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 18, 0, input);
throw nvae;
}
switch (alt18) {
case 1 :
// MFortranParser2018.g:370:7: DEFINED_OP
{
DEFINED_OP12=(Token)match(input,DEFINED_OP,FOLLOW_DEFINED_OP_in_defined_operator1490); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.defined_operator(DEFINED_OP12, false); }
}
break;
case 2 :
// MFortranParser2018.g:372:7: extended_intrinsic_op
{
pushFollow(FOLLOW_extended_intrinsic_op_in_defined_operator1508);
extended_intrinsic_op13=extended_intrinsic_op();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.defined_operator(extended_intrinsic_op13, true); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "defined_operator"
// $ANTLR start "extended_intrinsic_op"
// MFortranParser2018.g:379:1: extended_intrinsic_op returns [Token t] : intrinsic_operator ;
public final Token extended_intrinsic_op() throws RecognitionException {
Token t = null;
Token intrinsic_operator14 =null;
try {
// MFortranParser2018.g:383:5: ( intrinsic_operator )
// MFortranParser2018.g:383:7: intrinsic_operator
{
pushFollow(FOLLOW_intrinsic_operator_in_extended_intrinsic_op1546);
intrinsic_operator14=intrinsic_operator();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { t = intrinsic_operator14; }
}
if ( state.backtracking==0 ) {
MFPA.extended_intrinsic_op();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "extended_intrinsic_op"
// $ANTLR start "label"
// MFortranParser2018.g:389:1: label returns [Token t] : DIGIT_STR ;
public final Token label() throws RecognitionException {
Token t = null;
Token DIGIT_STR15=null;
try {
// MFortranParser2018.g:390:5: ( DIGIT_STR )
// MFortranParser2018.g:390:7: DIGIT_STR
{
DIGIT_STR15=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_label1571); if (state.failed) return t;
if ( state.backtracking==0 ) { t = DIGIT_STR15; }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "label"
// $ANTLR start "label_list"
// MFortranParser2018.g:394:1: label_list : lbl= label ( COMMA lbl= label )* ;
public final void label_list() throws RecognitionException {
Token lbl =null;
int numLbl = 1;
try {
// MFortranParser2018.g:401:5: (lbl= label ( COMMA lbl= label )* )
// MFortranParser2018.g:401:7: lbl= label ( COMMA lbl= label )*
{
pushFollow(FOLLOW_label_in_label_list1601);
lbl=label();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.label(lbl); }
// MFortranParser2018.g:402:7: ( COMMA lbl= label )*
loop19:
while (true) {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==COMMA) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// MFortranParser2018.g:402:9: COMMA lbl= label
{
match(input,COMMA,FOLLOW_COMMA_in_label_list1614); if (state.failed) return;
pushFollow(FOLLOW_label_in_label_list1618);
lbl=label();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.label(lbl);numLbl++; }
}
break;
default :
break loop19;
}
}
}
if ( state.backtracking==0 ) {
MFPA.label_list(numLbl);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "label_list"
// $ANTLR start "char_constant"
// MFortranParser2018.g:410:2: char_constant : ( char_literal_constant | IDENT );
public final void char_constant() throws RecognitionException {
Token IDENT16=null;
try {
// MFortranParser2018.g:411:5: ( char_literal_constant | IDENT )
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==CHAR_CONST||LA20_0==DIGIT_STR) ) {
alt20=1;
}
else if ( (LA20_0==IDENT) ) {
int LA20_2 = input.LA(2);
if ( (LA20_2==CHAR_CONST) ) {
alt20=1;
}
else if ( (LA20_2==EOF||LA20_2==COMMA||LA20_2==EOS) ) {
alt20=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 20, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 20, 0, input);
throw nvae;
}
switch (alt20) {
case 1 :
// MFortranParser2018.g:411:7: char_literal_constant
{
pushFollow(FOLLOW_char_literal_constant_in_char_constant1662);
char_literal_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.int_constant(null); }
}
break;
case 2 :
// MFortranParser2018.g:412:7: IDENT
{
IDENT16=(Token)match(input,IDENT,FOLLOW_IDENT_in_char_constant1672); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.int_constant(IDENT16); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "char_constant"
// $ANTLR start "type_param_value"
// MFortranParser2018.g:418:1: type_param_value : ( expr | ASTERISK | COLON );
public final void type_param_value() throws RecognitionException {
try {
// MFortranParser2018.g:419:5: ( expr | ASTERISK | COLON )
int alt21=3;
switch ( input.LA(1) ) {
case BIN_CONST:
case CHAR_CONST:
case DEFINED_OP:
case DIGIT_STR:
case FALSE:
case HEX_CONST:
case IDENT:
case LBRACKET:
case LPAREN:
case MINUS:
case M_REAL_CONST:
case NOT:
case OCT_CONST:
case PLUS:
case TRUE:
{
alt21=1;
}
break;
case ASTERISK:
{
alt21=2;
}
break;
case COLON:
{
alt21=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 21, 0, input);
throw nvae;
}
switch (alt21) {
case 1 :
// MFortranParser2018.g:419:7: expr
{
pushFollow(FOLLOW_expr_in_type_param_value1693);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_value(MFPUtils.TYPE_PARAM_EXPR); }
}
break;
case 2 :
// MFortranParser2018.g:421:7: ASTERISK
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_type_param_value1712); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_value(MFPUtils.TYPE_PARAM_ASTERISK); }
}
break;
case 3 :
// MFortranParser2018.g:423:7: COLON
{
match(input,COLON,FOLLOW_COLON_in_type_param_value1731); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_value(MFPUtils.TYPE_PARAM_COLON); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_value"
// $ANTLR start "type_spec"
// MFortranParser2018.g:430:1: type_spec : ( intrinsic_type_spec | derived_type_spec );
public final void type_spec() throws RecognitionException {
try {
// MFortranParser2018.g:434:5: ( intrinsic_type_spec | derived_type_spec )
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==CHARACTER||LA22_0==COMPLEX||(LA22_0 >= DOUBLE && LA22_0 <= DOUBLEPRECISION)||LA22_0==INTEGER||LA22_0==LOGICAL||LA22_0==REAL) ) {
alt22=1;
}
else if ( (LA22_0==IDENT) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 22, 0, input);
throw nvae;
}
switch (alt22) {
case 1 :
// MFortranParser2018.g:434:7: intrinsic_type_spec
{
pushFollow(FOLLOW_intrinsic_type_spec_in_type_spec1766);
intrinsic_type_spec();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:435:7: derived_type_spec
{
pushFollow(FOLLOW_derived_type_spec_in_type_spec1774);
derived_type_spec();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.type_spec();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_spec"
// $ANTLR start "declaration_type_spec"
// MFortranParser2018.g:441:1: declaration_type_spec : ( intrinsic_type_spec | TYPE LPAREN intrinsic_type_spec RPAREN | TYPE LPAREN derived_type_spec RPAREN | TYPE LPAREN ASTERISK RPAREN | CLASS LPAREN derived_type_spec RPAREN | CLASS LPAREN ASTERISK RPAREN );
public final void declaration_type_spec() throws RecognitionException {
Token TYPE17=null;
Token TYPE18=null;
Token TYPE19=null;
Token ASTERISK20=null;
Token CLASS21=null;
Token CLASS22=null;
Token ASTERISK23=null;
try {
// MFortranParser2018.g:442:5: ( intrinsic_type_spec | TYPE LPAREN intrinsic_type_spec RPAREN | TYPE LPAREN derived_type_spec RPAREN | TYPE LPAREN ASTERISK RPAREN | CLASS LPAREN derived_type_spec RPAREN | CLASS LPAREN ASTERISK RPAREN )
int alt23=6;
switch ( input.LA(1) ) {
case CHARACTER:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case INTEGER:
case LOGICAL:
case REAL:
{
alt23=1;
}
break;
case TYPE:
{
int LA23_2 = input.LA(2);
if ( (LA23_2==LPAREN) ) {
switch ( input.LA(3) ) {
case ASTERISK:
{
alt23=4;
}
break;
case CHARACTER:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case INTEGER:
case LOGICAL:
case REAL:
{
alt23=2;
}
break;
case IDENT:
{
alt23=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 23, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 23, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CLASS:
{
int LA23_3 = input.LA(2);
if ( (LA23_3==LPAREN) ) {
int LA23_5 = input.LA(3);
if ( (LA23_5==ASTERISK) ) {
alt23=6;
}
else if ( (LA23_5==IDENT) ) {
alt23=5;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 23, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 23, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1 :
// MFortranParser2018.g:442:7: intrinsic_type_spec
{
pushFollow(FOLLOW_intrinsic_type_spec_in_declaration_type_spec1793);
intrinsic_type_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.declaration_type_spec( null, null,
MFPUtils.F_INTRNSIC); }
}
break;
case 2 :
// MFortranParser2018.g:445:7: TYPE LPAREN intrinsic_type_spec RPAREN
{
TYPE17=(Token)match(input,TYPE,FOLLOW_TYPE_in_declaration_type_spec1811); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_declaration_type_spec1814); if (state.failed) return;
pushFollow(FOLLOW_intrinsic_type_spec_in_declaration_type_spec1816);
intrinsic_type_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_declaration_type_spec1818); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.declaration_type_spec( TYPE17, null,
MFPUtils.TYPE_INTRN); }
}
break;
case 3 :
// MFortranParser2018.g:448:7: TYPE LPAREN derived_type_spec RPAREN
{
TYPE18=(Token)match(input,TYPE,FOLLOW_TYPE_in_declaration_type_spec1836); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_declaration_type_spec1839); if (state.failed) return;
pushFollow(FOLLOW_derived_type_spec_in_declaration_type_spec1841);
derived_type_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_declaration_type_spec1843); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.declaration_type_spec( TYPE18, null,
MFPUtils.TYPE_DERIV); }
}
break;
case 4 :
// MFortranParser2018.g:451:7: TYPE LPAREN ASTERISK RPAREN
{
TYPE19=(Token)match(input,TYPE,FOLLOW_TYPE_in_declaration_type_spec1861); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_declaration_type_spec1864); if (state.failed) return;
ASTERISK20=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_declaration_type_spec1866); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_declaration_type_spec1868); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.declaration_type_spec( TYPE19, ASTERISK20,
MFPUtils.TYPE_UNLMT); }
}
break;
case 5 :
// MFortranParser2018.g:454:7: CLASS LPAREN derived_type_spec RPAREN
{
CLASS21=(Token)match(input,CLASS,FOLLOW_CLASS_in_declaration_type_spec1886); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_declaration_type_spec1888); if (state.failed) return;
pushFollow(FOLLOW_derived_type_spec_in_declaration_type_spec1890);
derived_type_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_declaration_type_spec1892); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.declaration_type_spec( CLASS21, null,
MFPUtils.CLSS_DERIV); }
}
break;
case 6 :
// MFortranParser2018.g:457:7: CLASS LPAREN ASTERISK RPAREN
{
CLASS22=(Token)match(input,CLASS,FOLLOW_CLASS_in_declaration_type_spec1910); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_declaration_type_spec1912); if (state.failed) return;
ASTERISK23=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_declaration_type_spec1914); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_declaration_type_spec1916); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.declaration_type_spec( CLASS22, ASTERISK23,
MFPUtils.CLSS_UNLMT); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "declaration_type_spec"
// $ANTLR start "intrinsic_type_spec"
// MFortranParser2018.g:468:1: intrinsic_type_spec : ( INTEGER ( kind_selector )? | REAL ( kind_selector )? | DOUBLE PRECISION | DOUBLEPRECISION | COMPLEX ( kind_selector )? | DOUBLE COMPLEX | DOUBLECOMPLEX | CHARACTER ( char_selector )? | LOGICAL ( kind_selector )? );
public final void intrinsic_type_spec() throws RecognitionException {
Token INTEGER24=null;
Token REAL25=null;
Token DOUBLE26=null;
Token PRECISION27=null;
Token DOUBLEPRECISION28=null;
Token COMPLEX29=null;
Token DOUBLE30=null;
Token COMPLEX31=null;
Token DOUBLECOMPLEX32=null;
Token CHARACTER33=null;
Token LOGICAL34=null;
boolean hasKS = false;
try {
// MFortranParser2018.g:472:5: ( INTEGER ( kind_selector )? | REAL ( kind_selector )? | DOUBLE PRECISION | DOUBLEPRECISION | COMPLEX ( kind_selector )? | DOUBLE COMPLEX | DOUBLECOMPLEX | CHARACTER ( char_selector )? | LOGICAL ( kind_selector )? )
int alt29=9;
switch ( input.LA(1) ) {
case INTEGER:
{
alt29=1;
}
break;
case REAL:
{
alt29=2;
}
break;
case DOUBLE:
{
int LA29_3 = input.LA(2);
if ( (LA29_3==PRECISION) ) {
alt29=3;
}
else if ( (LA29_3==COMPLEX) ) {
alt29=6;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 29, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLEPRECISION:
{
alt29=4;
}
break;
case COMPLEX:
{
alt29=5;
}
break;
case DOUBLECOMPLEX:
{
alt29=7;
}
break;
case CHARACTER:
{
alt29=8;
}
break;
case LOGICAL:
{
alt29=9;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 29, 0, input);
throw nvae;
}
switch (alt29) {
case 1 :
// MFortranParser2018.g:472:7: INTEGER ( kind_selector )?
{
INTEGER24=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_intrinsic_type_spec1949); if (state.failed) return;
// MFortranParser2018.g:472:15: ( kind_selector )?
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==LPAREN) ) {
int LA24_1 = input.LA(2);
if ( (LA24_1==BIN_CONST||LA24_1==CHAR_CONST||(LA24_1 >= DEFINED_OP && LA24_1 <= DIGIT_STR)||LA24_1==FALSE||LA24_1==HEX_CONST||(LA24_1 >= KIND && LA24_1 <= LBRACKET)||LA24_1==LPAREN||LA24_1==MINUS||LA24_1==M_REAL_CONST||LA24_1==NOT||LA24_1==OCT_CONST||LA24_1==PLUS||LA24_1==TRUE) ) {
alt24=1;
}
else if ( (LA24_1==IDENT) ) {
switch ( input.LA(3) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt24=1;
}
break;
case MINUS:
{
int LA24_5 = input.LA(4);
if ( (LA24_5==IDENT) ) {
int LA24_7 = input.LA(5);
if ( (LA24_7==AND||LA24_7==ASTERISK||LA24_7==CHAR_CONST||LA24_7==DEFINED_OP||LA24_7==EQ||(LA24_7 >= EQV && LA24_7 <= EQ_EQ)||LA24_7==GE||(LA24_7 >= GREATERTHAN && LA24_7 <= GT)||(LA24_7 >= LBRACKET && LA24_7 <= LE)||(LA24_7 >= LESSTHAN && LA24_7 <= LESSTHAN_EQ)||(LA24_7 >= LPAREN && LA24_7 <= LT)||LA24_7==MINUS||(LA24_7 >= NE && LA24_7 <= NEQV)||LA24_7==OR||LA24_7==PERCENT||LA24_7==PLUS||LA24_7==POWER||(LA24_7 >= SLASH && LA24_7 <= SLASH_SLASH)) ) {
alt24=1;
}
else if ( (LA24_7==RPAREN) ) {
int LA24_6 = input.LA(6);
if ( (LA24_6==CHARACTER||LA24_6==CLASS||LA24_6==COLON_COLON||LA24_6==COMPLEX||LA24_6==DIGIT_STR||(LA24_6 >= DOUBLE && LA24_6 <= DOUBLEPRECISION)||LA24_6==ELEMENTAL||LA24_6==FUNCTION||LA24_6==IDENT||LA24_6==IMPURE||LA24_6==INTEGER||(LA24_6 >= LOGICAL && LA24_6 <= LPAREN)||LA24_6==MODULE||LA24_6==NON_RECURSIVE||LA24_6==PURE||(LA24_6 >= REAL && LA24_6 <= RECURSIVE)||LA24_6==RPAREN||LA24_6==SUBROUTINE||LA24_6==TYPE) ) {
alt24=1;
}
else if ( (LA24_6==COMMA) ) {
int LA24_8 = input.LA(7);
if ( (LA24_8==ALLOCATABLE||LA24_8==ASYNCHRONOUS||LA24_8==BIND||LA24_8==CODIMENSION||LA24_8==CONTIGUOUS||LA24_8==DIMENSION||LA24_8==EXTERNAL||LA24_8==INTENT||LA24_8==INTRINSIC||LA24_8==NO_LANG_EXT||LA24_8==OPTIONAL||LA24_8==PARAMETER||LA24_8==POINTER||LA24_8==PRIVATE||(LA24_8 >= PROTECTED && LA24_8 <= PUBLIC)||LA24_8==SAVE||LA24_8==TARGET||(LA24_8 >= VALUE && LA24_8 <= VOLATILE)) ) {
alt24=1;
}
}
}
}
else if ( (LA24_5==BIN_CONST||LA24_5==CHAR_CONST||(LA24_5 >= DEFINED_OP && LA24_5 <= DIGIT_STR)||LA24_5==FALSE||LA24_5==HEX_CONST||LA24_5==LBRACKET||LA24_5==LPAREN||LA24_5==M_REAL_CONST||LA24_5==OCT_CONST||LA24_5==TRUE) ) {
alt24=1;
}
}
break;
case RPAREN:
{
int LA24_6 = input.LA(4);
if ( (LA24_6==CHARACTER||LA24_6==CLASS||LA24_6==COLON_COLON||LA24_6==COMPLEX||LA24_6==DIGIT_STR||(LA24_6 >= DOUBLE && LA24_6 <= DOUBLEPRECISION)||LA24_6==ELEMENTAL||LA24_6==FUNCTION||LA24_6==IDENT||LA24_6==IMPURE||LA24_6==INTEGER||(LA24_6 >= LOGICAL && LA24_6 <= LPAREN)||LA24_6==MODULE||LA24_6==NON_RECURSIVE||LA24_6==PURE||(LA24_6 >= REAL && LA24_6 <= RECURSIVE)||LA24_6==RPAREN||LA24_6==SUBROUTINE||LA24_6==TYPE) ) {
alt24=1;
}
else if ( (LA24_6==COMMA) ) {
int LA24_8 = input.LA(5);
if ( (LA24_8==ALLOCATABLE||LA24_8==ASYNCHRONOUS||LA24_8==BIND||LA24_8==CODIMENSION||LA24_8==CONTIGUOUS||LA24_8==DIMENSION||LA24_8==EXTERNAL||LA24_8==INTENT||LA24_8==INTRINSIC||LA24_8==NO_LANG_EXT||LA24_8==OPTIONAL||LA24_8==PARAMETER||LA24_8==POINTER||LA24_8==PRIVATE||(LA24_8 >= PROTECTED && LA24_8 <= PUBLIC)||LA24_8==SAVE||LA24_8==TARGET||(LA24_8 >= VALUE && LA24_8 <= VOLATILE)) ) {
alt24=1;
}
}
}
break;
}
}
}
else if ( (LA24_0==ASTERISK) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// MFortranParser2018.g:472:16: kind_selector
{
pushFollow(FOLLOW_kind_selector_in_intrinsic_type_spec1952);
kind_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasKS = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
INTEGER24, null,
MFPUtils.TYPE_INT, hasKS);}
}
break;
case 2 :
// MFortranParser2018.g:476:7: REAL ( kind_selector )?
{
REAL25=(Token)match(input,REAL,FOLLOW_REAL_in_intrinsic_type_spec1974); if (state.failed) return;
// MFortranParser2018.g:476:12: ( kind_selector )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==LPAREN) ) {
int LA25_1 = input.LA(2);
if ( (LA25_1==BIN_CONST||LA25_1==CHAR_CONST||(LA25_1 >= DEFINED_OP && LA25_1 <= DIGIT_STR)||LA25_1==FALSE||LA25_1==HEX_CONST||(LA25_1 >= KIND && LA25_1 <= LBRACKET)||LA25_1==LPAREN||LA25_1==MINUS||LA25_1==M_REAL_CONST||LA25_1==NOT||LA25_1==OCT_CONST||LA25_1==PLUS||LA25_1==TRUE) ) {
alt25=1;
}
else if ( (LA25_1==IDENT) ) {
switch ( input.LA(3) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt25=1;
}
break;
case MINUS:
{
int LA25_5 = input.LA(4);
if ( (LA25_5==IDENT) ) {
int LA25_7 = input.LA(5);
if ( (LA25_7==AND||LA25_7==ASTERISK||LA25_7==CHAR_CONST||LA25_7==DEFINED_OP||LA25_7==EQ||(LA25_7 >= EQV && LA25_7 <= EQ_EQ)||LA25_7==GE||(LA25_7 >= GREATERTHAN && LA25_7 <= GT)||(LA25_7 >= LBRACKET && LA25_7 <= LE)||(LA25_7 >= LESSTHAN && LA25_7 <= LESSTHAN_EQ)||(LA25_7 >= LPAREN && LA25_7 <= LT)||LA25_7==MINUS||(LA25_7 >= NE && LA25_7 <= NEQV)||LA25_7==OR||LA25_7==PERCENT||LA25_7==PLUS||LA25_7==POWER||(LA25_7 >= SLASH && LA25_7 <= SLASH_SLASH)) ) {
alt25=1;
}
else if ( (LA25_7==RPAREN) ) {
int LA25_6 = input.LA(6);
if ( (LA25_6==CHARACTER||LA25_6==CLASS||LA25_6==COLON_COLON||LA25_6==COMPLEX||LA25_6==DIGIT_STR||(LA25_6 >= DOUBLE && LA25_6 <= DOUBLEPRECISION)||LA25_6==ELEMENTAL||LA25_6==FUNCTION||LA25_6==IDENT||LA25_6==IMPURE||LA25_6==INTEGER||(LA25_6 >= LOGICAL && LA25_6 <= LPAREN)||LA25_6==MODULE||LA25_6==NON_RECURSIVE||LA25_6==PURE||(LA25_6 >= REAL && LA25_6 <= RECURSIVE)||LA25_6==RPAREN||LA25_6==SUBROUTINE||LA25_6==TYPE) ) {
alt25=1;
}
else if ( (LA25_6==COMMA) ) {
int LA25_8 = input.LA(7);
if ( (LA25_8==ALLOCATABLE||LA25_8==ASYNCHRONOUS||LA25_8==BIND||LA25_8==CODIMENSION||LA25_8==CONTIGUOUS||LA25_8==DIMENSION||LA25_8==EXTERNAL||LA25_8==INTENT||LA25_8==INTRINSIC||LA25_8==NO_LANG_EXT||LA25_8==OPTIONAL||LA25_8==PARAMETER||LA25_8==POINTER||LA25_8==PRIVATE||(LA25_8 >= PROTECTED && LA25_8 <= PUBLIC)||LA25_8==SAVE||LA25_8==TARGET||(LA25_8 >= VALUE && LA25_8 <= VOLATILE)) ) {
alt25=1;
}
}
}
}
else if ( (LA25_5==BIN_CONST||LA25_5==CHAR_CONST||(LA25_5 >= DEFINED_OP && LA25_5 <= DIGIT_STR)||LA25_5==FALSE||LA25_5==HEX_CONST||LA25_5==LBRACKET||LA25_5==LPAREN||LA25_5==M_REAL_CONST||LA25_5==OCT_CONST||LA25_5==TRUE) ) {
alt25=1;
}
}
break;
case RPAREN:
{
int LA25_6 = input.LA(4);
if ( (LA25_6==CHARACTER||LA25_6==CLASS||LA25_6==COLON_COLON||LA25_6==COMPLEX||LA25_6==DIGIT_STR||(LA25_6 >= DOUBLE && LA25_6 <= DOUBLEPRECISION)||LA25_6==ELEMENTAL||LA25_6==FUNCTION||LA25_6==IDENT||LA25_6==IMPURE||LA25_6==INTEGER||(LA25_6 >= LOGICAL && LA25_6 <= LPAREN)||LA25_6==MODULE||LA25_6==NON_RECURSIVE||LA25_6==PURE||(LA25_6 >= REAL && LA25_6 <= RECURSIVE)||LA25_6==RPAREN||LA25_6==SUBROUTINE||LA25_6==TYPE) ) {
alt25=1;
}
else if ( (LA25_6==COMMA) ) {
int LA25_8 = input.LA(5);
if ( (LA25_8==ALLOCATABLE||LA25_8==ASYNCHRONOUS||LA25_8==BIND||LA25_8==CODIMENSION||LA25_8==CONTIGUOUS||LA25_8==DIMENSION||LA25_8==EXTERNAL||LA25_8==INTENT||LA25_8==INTRINSIC||LA25_8==NO_LANG_EXT||LA25_8==OPTIONAL||LA25_8==PARAMETER||LA25_8==POINTER||LA25_8==PRIVATE||(LA25_8 >= PROTECTED && LA25_8 <= PUBLIC)||LA25_8==SAVE||LA25_8==TARGET||(LA25_8 >= VALUE && LA25_8 <= VOLATILE)) ) {
alt25=1;
}
}
}
break;
}
}
}
else if ( (LA25_0==ASTERISK) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// MFortranParser2018.g:476:13: kind_selector
{
pushFollow(FOLLOW_kind_selector_in_intrinsic_type_spec1977);
kind_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasKS = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
REAL25, null,
MFPUtils.TYPE_REAL, hasKS);}
}
break;
case 3 :
// MFortranParser2018.g:480:7: DOUBLE PRECISION
{
DOUBLE26=(Token)match(input,DOUBLE,FOLLOW_DOUBLE_in_intrinsic_type_spec1999); if (state.failed) return;
PRECISION27=(Token)match(input,PRECISION,FOLLOW_PRECISION_in_intrinsic_type_spec2001); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
DOUBLE26, PRECISION27,
MFPUtils.TYPE_DBL, false);}
}
break;
case 4 :
// MFortranParser2018.g:484:7: DOUBLEPRECISION
{
DOUBLEPRECISION28=(Token)match(input,DOUBLEPRECISION,FOLLOW_DOUBLEPRECISION_in_intrinsic_type_spec2019); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
DOUBLEPRECISION28, null,
MFPUtils.TYPE_DBL, false);}
}
break;
case 5 :
// MFortranParser2018.g:488:7: COMPLEX ( kind_selector )?
{
COMPLEX29=(Token)match(input,COMPLEX,FOLLOW_COMPLEX_in_intrinsic_type_spec2037); if (state.failed) return;
// MFortranParser2018.g:488:15: ( kind_selector )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==LPAREN) ) {
int LA26_1 = input.LA(2);
if ( (LA26_1==BIN_CONST||LA26_1==CHAR_CONST||(LA26_1 >= DEFINED_OP && LA26_1 <= DIGIT_STR)||LA26_1==FALSE||LA26_1==HEX_CONST||(LA26_1 >= KIND && LA26_1 <= LBRACKET)||LA26_1==LPAREN||LA26_1==MINUS||LA26_1==M_REAL_CONST||LA26_1==NOT||LA26_1==OCT_CONST||LA26_1==PLUS||LA26_1==TRUE) ) {
alt26=1;
}
else if ( (LA26_1==IDENT) ) {
switch ( input.LA(3) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt26=1;
}
break;
case MINUS:
{
int LA26_5 = input.LA(4);
if ( (LA26_5==IDENT) ) {
int LA26_7 = input.LA(5);
if ( (LA26_7==AND||LA26_7==ASTERISK||LA26_7==CHAR_CONST||LA26_7==DEFINED_OP||LA26_7==EQ||(LA26_7 >= EQV && LA26_7 <= EQ_EQ)||LA26_7==GE||(LA26_7 >= GREATERTHAN && LA26_7 <= GT)||(LA26_7 >= LBRACKET && LA26_7 <= LE)||(LA26_7 >= LESSTHAN && LA26_7 <= LESSTHAN_EQ)||(LA26_7 >= LPAREN && LA26_7 <= LT)||LA26_7==MINUS||(LA26_7 >= NE && LA26_7 <= NEQV)||LA26_7==OR||LA26_7==PERCENT||LA26_7==PLUS||LA26_7==POWER||(LA26_7 >= SLASH && LA26_7 <= SLASH_SLASH)) ) {
alt26=1;
}
else if ( (LA26_7==RPAREN) ) {
int LA26_6 = input.LA(6);
if ( (LA26_6==CHARACTER||LA26_6==CLASS||LA26_6==COLON_COLON||LA26_6==COMPLEX||LA26_6==DIGIT_STR||(LA26_6 >= DOUBLE && LA26_6 <= DOUBLEPRECISION)||LA26_6==ELEMENTAL||LA26_6==FUNCTION||LA26_6==IDENT||LA26_6==IMPURE||LA26_6==INTEGER||(LA26_6 >= LOGICAL && LA26_6 <= LPAREN)||LA26_6==MODULE||LA26_6==NON_RECURSIVE||LA26_6==PURE||(LA26_6 >= REAL && LA26_6 <= RECURSIVE)||LA26_6==RPAREN||LA26_6==SUBROUTINE||LA26_6==TYPE) ) {
alt26=1;
}
else if ( (LA26_6==COMMA) ) {
int LA26_8 = input.LA(7);
if ( (LA26_8==ALLOCATABLE||LA26_8==ASYNCHRONOUS||LA26_8==BIND||LA26_8==CODIMENSION||LA26_8==CONTIGUOUS||LA26_8==DIMENSION||LA26_8==EXTERNAL||LA26_8==INTENT||LA26_8==INTRINSIC||LA26_8==NO_LANG_EXT||LA26_8==OPTIONAL||LA26_8==PARAMETER||LA26_8==POINTER||LA26_8==PRIVATE||(LA26_8 >= PROTECTED && LA26_8 <= PUBLIC)||LA26_8==SAVE||LA26_8==TARGET||(LA26_8 >= VALUE && LA26_8 <= VOLATILE)) ) {
alt26=1;
}
}
}
}
else if ( (LA26_5==BIN_CONST||LA26_5==CHAR_CONST||(LA26_5 >= DEFINED_OP && LA26_5 <= DIGIT_STR)||LA26_5==FALSE||LA26_5==HEX_CONST||LA26_5==LBRACKET||LA26_5==LPAREN||LA26_5==M_REAL_CONST||LA26_5==OCT_CONST||LA26_5==TRUE) ) {
alt26=1;
}
}
break;
case RPAREN:
{
int LA26_6 = input.LA(4);
if ( (LA26_6==CHARACTER||LA26_6==CLASS||LA26_6==COLON_COLON||LA26_6==COMPLEX||LA26_6==DIGIT_STR||(LA26_6 >= DOUBLE && LA26_6 <= DOUBLEPRECISION)||LA26_6==ELEMENTAL||LA26_6==FUNCTION||LA26_6==IDENT||LA26_6==IMPURE||LA26_6==INTEGER||(LA26_6 >= LOGICAL && LA26_6 <= LPAREN)||LA26_6==MODULE||LA26_6==NON_RECURSIVE||LA26_6==PURE||(LA26_6 >= REAL && LA26_6 <= RECURSIVE)||LA26_6==RPAREN||LA26_6==SUBROUTINE||LA26_6==TYPE) ) {
alt26=1;
}
else if ( (LA26_6==COMMA) ) {
int LA26_8 = input.LA(5);
if ( (LA26_8==ALLOCATABLE||LA26_8==ASYNCHRONOUS||LA26_8==BIND||LA26_8==CODIMENSION||LA26_8==CONTIGUOUS||LA26_8==DIMENSION||LA26_8==EXTERNAL||LA26_8==INTENT||LA26_8==INTRINSIC||LA26_8==NO_LANG_EXT||LA26_8==OPTIONAL||LA26_8==PARAMETER||LA26_8==POINTER||LA26_8==PRIVATE||(LA26_8 >= PROTECTED && LA26_8 <= PUBLIC)||LA26_8==SAVE||LA26_8==TARGET||(LA26_8 >= VALUE && LA26_8 <= VOLATILE)) ) {
alt26=1;
}
}
}
break;
}
}
}
else if ( (LA26_0==ASTERISK) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// MFortranParser2018.g:488:16: kind_selector
{
pushFollow(FOLLOW_kind_selector_in_intrinsic_type_spec2040);
kind_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasKS = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
COMPLEX29, null,
MFPUtils.TYPE_CPLX, hasKS);}
}
break;
case 6 :
// MFortranParser2018.g:492:7: DOUBLE COMPLEX
{
DOUBLE30=(Token)match(input,DOUBLE,FOLLOW_DOUBLE_in_intrinsic_type_spec2062); if (state.failed) return;
COMPLEX31=(Token)match(input,COMPLEX,FOLLOW_COMPLEX_in_intrinsic_type_spec2064); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
DOUBLE30, COMPLEX31,
MFPUtils.TYPE_DCPLX, false);}
}
break;
case 7 :
// MFortranParser2018.g:496:7: DOUBLECOMPLEX
{
DOUBLECOMPLEX32=(Token)match(input,DOUBLECOMPLEX,FOLLOW_DOUBLECOMPLEX_in_intrinsic_type_spec2082); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
DOUBLECOMPLEX32, null,
MFPUtils.TYPE_DCPLX, false);}
}
break;
case 8 :
// MFortranParser2018.g:500:7: CHARACTER ( char_selector )?
{
CHARACTER33=(Token)match(input,CHARACTER,FOLLOW_CHARACTER_in_intrinsic_type_spec2100); if (state.failed) return;
// MFortranParser2018.g:500:17: ( char_selector )?
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==ASTERISK) ) {
alt27=1;
}
else if ( (LA27_0==LPAREN) ) {
int LA27_2 = input.LA(2);
if ( (LA27_2==ASTERISK||LA27_2==BIN_CONST||LA27_2==CHAR_CONST||LA27_2==COLON||(LA27_2 >= DEFINED_OP && LA27_2 <= DIGIT_STR)||LA27_2==FALSE||LA27_2==HEX_CONST||(LA27_2 >= KIND && LA27_2 <= LBRACKET)||LA27_2==LEN||LA27_2==LPAREN||LA27_2==MINUS||LA27_2==M_REAL_CONST||LA27_2==NOT||LA27_2==OCT_CONST||LA27_2==PLUS||LA27_2==TRUE) ) {
alt27=1;
}
else if ( (LA27_2==IDENT) ) {
switch ( input.LA(3) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt27=1;
}
break;
case MINUS:
{
int LA27_5 = input.LA(4);
if ( (LA27_5==IDENT) ) {
switch ( input.LA(5) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case MINUS:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt27=1;
}
break;
case COMMA:
{
int LA27_6 = input.LA(6);
if ( (LA27_6==BIN_CONST||LA27_6==CHAR_CONST||(LA27_6 >= DEFINED_OP && LA27_6 <= DIGIT_STR)||LA27_6==FALSE||LA27_6==HEX_CONST||(LA27_6 >= KIND && LA27_6 <= LBRACKET)||LA27_6==LPAREN||LA27_6==MINUS||LA27_6==M_REAL_CONST||LA27_6==NOT||LA27_6==OCT_CONST||LA27_6==PLUS||LA27_6==TRUE) ) {
alt27=1;
}
else if ( (LA27_6==IDENT) ) {
switch ( input.LA(7) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt27=1;
}
break;
case MINUS:
{
int LA27_11 = input.LA(8);
if ( (LA27_11==IDENT) ) {
int LA27_12 = input.LA(9);
if ( (LA27_12==AND||LA27_12==ASTERISK||LA27_12==CHAR_CONST||LA27_12==DEFINED_OP||LA27_12==EQ||(LA27_12 >= EQV && LA27_12 <= EQ_EQ)||LA27_12==GE||(LA27_12 >= GREATERTHAN && LA27_12 <= GT)||(LA27_12 >= LBRACKET && LA27_12 <= LE)||(LA27_12 >= LESSTHAN && LA27_12 <= LESSTHAN_EQ)||(LA27_12 >= LPAREN && LA27_12 <= LT)||LA27_12==MINUS||(LA27_12 >= NE && LA27_12 <= NEQV)||LA27_12==OR||LA27_12==PERCENT||LA27_12==PLUS||LA27_12==POWER||(LA27_12 >= SLASH && LA27_12 <= SLASH_SLASH)) ) {
alt27=1;
}
else if ( (LA27_12==RPAREN) ) {
int LA27_7 = input.LA(10);
if ( (LA27_7==CHARACTER||LA27_7==CLASS||LA27_7==COLON_COLON||LA27_7==COMPLEX||LA27_7==DIGIT_STR||(LA27_7 >= DOUBLE && LA27_7 <= DOUBLEPRECISION)||LA27_7==ELEMENTAL||LA27_7==FUNCTION||LA27_7==IDENT||LA27_7==IMPURE||LA27_7==INTEGER||(LA27_7 >= LOGICAL && LA27_7 <= LPAREN)||LA27_7==MODULE||LA27_7==NON_RECURSIVE||LA27_7==PURE||(LA27_7 >= REAL && LA27_7 <= RECURSIVE)||LA27_7==RPAREN||LA27_7==SUBROUTINE||LA27_7==TYPE) ) {
alt27=1;
}
else if ( (LA27_7==COMMA) ) {
int LA27_10 = input.LA(11);
if ( (LA27_10==ALLOCATABLE||LA27_10==ASYNCHRONOUS||LA27_10==BIND||LA27_10==CODIMENSION||LA27_10==CONTIGUOUS||LA27_10==DIMENSION||LA27_10==EXTERNAL||LA27_10==INTENT||LA27_10==INTRINSIC||LA27_10==NO_LANG_EXT||LA27_10==OPTIONAL||LA27_10==PARAMETER||LA27_10==POINTER||LA27_10==PRIVATE||(LA27_10 >= PROTECTED && LA27_10 <= PUBLIC)||LA27_10==SAVE||LA27_10==TARGET||(LA27_10 >= VALUE && LA27_10 <= VOLATILE)) ) {
alt27=1;
}
}
}
}
else if ( (LA27_11==BIN_CONST||LA27_11==CHAR_CONST||(LA27_11 >= DEFINED_OP && LA27_11 <= DIGIT_STR)||LA27_11==FALSE||LA27_11==HEX_CONST||LA27_11==LBRACKET||LA27_11==LPAREN||LA27_11==M_REAL_CONST||LA27_11==OCT_CONST||LA27_11==TRUE) ) {
alt27=1;
}
}
break;
case RPAREN:
{
int LA27_7 = input.LA(8);
if ( (LA27_7==CHARACTER||LA27_7==CLASS||LA27_7==COLON_COLON||LA27_7==COMPLEX||LA27_7==DIGIT_STR||(LA27_7 >= DOUBLE && LA27_7 <= DOUBLEPRECISION)||LA27_7==ELEMENTAL||LA27_7==FUNCTION||LA27_7==IDENT||LA27_7==IMPURE||LA27_7==INTEGER||(LA27_7 >= LOGICAL && LA27_7 <= LPAREN)||LA27_7==MODULE||LA27_7==NON_RECURSIVE||LA27_7==PURE||(LA27_7 >= REAL && LA27_7 <= RECURSIVE)||LA27_7==RPAREN||LA27_7==SUBROUTINE||LA27_7==TYPE) ) {
alt27=1;
}
else if ( (LA27_7==COMMA) ) {
int LA27_10 = input.LA(9);
if ( (LA27_10==ALLOCATABLE||LA27_10==ASYNCHRONOUS||LA27_10==BIND||LA27_10==CODIMENSION||LA27_10==CONTIGUOUS||LA27_10==DIMENSION||LA27_10==EXTERNAL||LA27_10==INTENT||LA27_10==INTRINSIC||LA27_10==NO_LANG_EXT||LA27_10==OPTIONAL||LA27_10==PARAMETER||LA27_10==POINTER||LA27_10==PRIVATE||(LA27_10 >= PROTECTED && LA27_10 <= PUBLIC)||LA27_10==SAVE||LA27_10==TARGET||(LA27_10 >= VALUE && LA27_10 <= VOLATILE)) ) {
alt27=1;
}
}
}
break;
}
}
}
break;
case RPAREN:
{
int LA27_7 = input.LA(6);
if ( (LA27_7==CHARACTER||LA27_7==CLASS||LA27_7==COLON_COLON||LA27_7==COMPLEX||LA27_7==DIGIT_STR||(LA27_7 >= DOUBLE && LA27_7 <= DOUBLEPRECISION)||LA27_7==ELEMENTAL||LA27_7==FUNCTION||LA27_7==IDENT||LA27_7==IMPURE||LA27_7==INTEGER||(LA27_7 >= LOGICAL && LA27_7 <= LPAREN)||LA27_7==MODULE||LA27_7==NON_RECURSIVE||LA27_7==PURE||(LA27_7 >= REAL && LA27_7 <= RECURSIVE)||LA27_7==RPAREN||LA27_7==SUBROUTINE||LA27_7==TYPE) ) {
alt27=1;
}
else if ( (LA27_7==COMMA) ) {
int LA27_10 = input.LA(7);
if ( (LA27_10==ALLOCATABLE||LA27_10==ASYNCHRONOUS||LA27_10==BIND||LA27_10==CODIMENSION||LA27_10==CONTIGUOUS||LA27_10==DIMENSION||LA27_10==EXTERNAL||LA27_10==INTENT||LA27_10==INTRINSIC||LA27_10==NO_LANG_EXT||LA27_10==OPTIONAL||LA27_10==PARAMETER||LA27_10==POINTER||LA27_10==PRIVATE||(LA27_10 >= PROTECTED && LA27_10 <= PUBLIC)||LA27_10==SAVE||LA27_10==TARGET||(LA27_10 >= VALUE && LA27_10 <= VOLATILE)) ) {
alt27=1;
}
}
}
break;
}
}
else if ( (LA27_5==BIN_CONST||LA27_5==CHAR_CONST||(LA27_5 >= DEFINED_OP && LA27_5 <= DIGIT_STR)||LA27_5==FALSE||LA27_5==HEX_CONST||LA27_5==LBRACKET||LA27_5==LPAREN||LA27_5==M_REAL_CONST||LA27_5==OCT_CONST||LA27_5==TRUE) ) {
alt27=1;
}
}
break;
case COMMA:
{
int LA27_6 = input.LA(4);
if ( (LA27_6==BIN_CONST||LA27_6==CHAR_CONST||(LA27_6 >= DEFINED_OP && LA27_6 <= DIGIT_STR)||LA27_6==FALSE||LA27_6==HEX_CONST||(LA27_6 >= KIND && LA27_6 <= LBRACKET)||LA27_6==LPAREN||LA27_6==MINUS||LA27_6==M_REAL_CONST||LA27_6==NOT||LA27_6==OCT_CONST||LA27_6==PLUS||LA27_6==TRUE) ) {
alt27=1;
}
else if ( (LA27_6==IDENT) ) {
switch ( input.LA(5) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt27=1;
}
break;
case MINUS:
{
int LA27_11 = input.LA(6);
if ( (LA27_11==IDENT) ) {
int LA27_12 = input.LA(7);
if ( (LA27_12==AND||LA27_12==ASTERISK||LA27_12==CHAR_CONST||LA27_12==DEFINED_OP||LA27_12==EQ||(LA27_12 >= EQV && LA27_12 <= EQ_EQ)||LA27_12==GE||(LA27_12 >= GREATERTHAN && LA27_12 <= GT)||(LA27_12 >= LBRACKET && LA27_12 <= LE)||(LA27_12 >= LESSTHAN && LA27_12 <= LESSTHAN_EQ)||(LA27_12 >= LPAREN && LA27_12 <= LT)||LA27_12==MINUS||(LA27_12 >= NE && LA27_12 <= NEQV)||LA27_12==OR||LA27_12==PERCENT||LA27_12==PLUS||LA27_12==POWER||(LA27_12 >= SLASH && LA27_12 <= SLASH_SLASH)) ) {
alt27=1;
}
else if ( (LA27_12==RPAREN) ) {
int LA27_7 = input.LA(8);
if ( (LA27_7==CHARACTER||LA27_7==CLASS||LA27_7==COLON_COLON||LA27_7==COMPLEX||LA27_7==DIGIT_STR||(LA27_7 >= DOUBLE && LA27_7 <= DOUBLEPRECISION)||LA27_7==ELEMENTAL||LA27_7==FUNCTION||LA27_7==IDENT||LA27_7==IMPURE||LA27_7==INTEGER||(LA27_7 >= LOGICAL && LA27_7 <= LPAREN)||LA27_7==MODULE||LA27_7==NON_RECURSIVE||LA27_7==PURE||(LA27_7 >= REAL && LA27_7 <= RECURSIVE)||LA27_7==RPAREN||LA27_7==SUBROUTINE||LA27_7==TYPE) ) {
alt27=1;
}
else if ( (LA27_7==COMMA) ) {
int LA27_10 = input.LA(9);
if ( (LA27_10==ALLOCATABLE||LA27_10==ASYNCHRONOUS||LA27_10==BIND||LA27_10==CODIMENSION||LA27_10==CONTIGUOUS||LA27_10==DIMENSION||LA27_10==EXTERNAL||LA27_10==INTENT||LA27_10==INTRINSIC||LA27_10==NO_LANG_EXT||LA27_10==OPTIONAL||LA27_10==PARAMETER||LA27_10==POINTER||LA27_10==PRIVATE||(LA27_10 >= PROTECTED && LA27_10 <= PUBLIC)||LA27_10==SAVE||LA27_10==TARGET||(LA27_10 >= VALUE && LA27_10 <= VOLATILE)) ) {
alt27=1;
}
}
}
}
else if ( (LA27_11==BIN_CONST||LA27_11==CHAR_CONST||(LA27_11 >= DEFINED_OP && LA27_11 <= DIGIT_STR)||LA27_11==FALSE||LA27_11==HEX_CONST||LA27_11==LBRACKET||LA27_11==LPAREN||LA27_11==M_REAL_CONST||LA27_11==OCT_CONST||LA27_11==TRUE) ) {
alt27=1;
}
}
break;
case RPAREN:
{
int LA27_7 = input.LA(6);
if ( (LA27_7==CHARACTER||LA27_7==CLASS||LA27_7==COLON_COLON||LA27_7==COMPLEX||LA27_7==DIGIT_STR||(LA27_7 >= DOUBLE && LA27_7 <= DOUBLEPRECISION)||LA27_7==ELEMENTAL||LA27_7==FUNCTION||LA27_7==IDENT||LA27_7==IMPURE||LA27_7==INTEGER||(LA27_7 >= LOGICAL && LA27_7 <= LPAREN)||LA27_7==MODULE||LA27_7==NON_RECURSIVE||LA27_7==PURE||(LA27_7 >= REAL && LA27_7 <= RECURSIVE)||LA27_7==RPAREN||LA27_7==SUBROUTINE||LA27_7==TYPE) ) {
alt27=1;
}
else if ( (LA27_7==COMMA) ) {
int LA27_10 = input.LA(7);
if ( (LA27_10==ALLOCATABLE||LA27_10==ASYNCHRONOUS||LA27_10==BIND||LA27_10==CODIMENSION||LA27_10==CONTIGUOUS||LA27_10==DIMENSION||LA27_10==EXTERNAL||LA27_10==INTENT||LA27_10==INTRINSIC||LA27_10==NO_LANG_EXT||LA27_10==OPTIONAL||LA27_10==PARAMETER||LA27_10==POINTER||LA27_10==PRIVATE||(LA27_10 >= PROTECTED && LA27_10 <= PUBLIC)||LA27_10==SAVE||LA27_10==TARGET||(LA27_10 >= VALUE && LA27_10 <= VOLATILE)) ) {
alt27=1;
}
}
}
break;
}
}
}
break;
case RPAREN:
{
int LA27_7 = input.LA(4);
if ( (LA27_7==CHARACTER||LA27_7==CLASS||LA27_7==COLON_COLON||LA27_7==COMPLEX||LA27_7==DIGIT_STR||(LA27_7 >= DOUBLE && LA27_7 <= DOUBLEPRECISION)||LA27_7==ELEMENTAL||LA27_7==FUNCTION||LA27_7==IDENT||LA27_7==IMPURE||LA27_7==INTEGER||(LA27_7 >= LOGICAL && LA27_7 <= LPAREN)||LA27_7==MODULE||LA27_7==NON_RECURSIVE||LA27_7==PURE||(LA27_7 >= REAL && LA27_7 <= RECURSIVE)||LA27_7==RPAREN||LA27_7==SUBROUTINE||LA27_7==TYPE) ) {
alt27=1;
}
else if ( (LA27_7==COMMA) ) {
int LA27_10 = input.LA(5);
if ( (LA27_10==ALLOCATABLE||LA27_10==ASYNCHRONOUS||LA27_10==BIND||LA27_10==CODIMENSION||LA27_10==CONTIGUOUS||LA27_10==DIMENSION||LA27_10==EXTERNAL||LA27_10==INTENT||LA27_10==INTRINSIC||LA27_10==NO_LANG_EXT||LA27_10==OPTIONAL||LA27_10==PARAMETER||LA27_10==POINTER||LA27_10==PRIVATE||(LA27_10 >= PROTECTED && LA27_10 <= PUBLIC)||LA27_10==SAVE||LA27_10==TARGET||(LA27_10 >= VALUE && LA27_10 <= VOLATILE)) ) {
alt27=1;
}
}
}
break;
}
}
}
switch (alt27) {
case 1 :
// MFortranParser2018.g:500:18: char_selector
{
pushFollow(FOLLOW_char_selector_in_intrinsic_type_spec2103);
char_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasKS = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
CHARACTER33, null,
MFPUtils.TYPE_CHAR, hasKS);}
}
break;
case 9 :
// MFortranParser2018.g:504:7: LOGICAL ( kind_selector )?
{
LOGICAL34=(Token)match(input,LOGICAL,FOLLOW_LOGICAL_in_intrinsic_type_spec2125); if (state.failed) return;
// MFortranParser2018.g:504:15: ( kind_selector )?
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==LPAREN) ) {
int LA28_1 = input.LA(2);
if ( (LA28_1==BIN_CONST||LA28_1==CHAR_CONST||(LA28_1 >= DEFINED_OP && LA28_1 <= DIGIT_STR)||LA28_1==FALSE||LA28_1==HEX_CONST||(LA28_1 >= KIND && LA28_1 <= LBRACKET)||LA28_1==LPAREN||LA28_1==MINUS||LA28_1==M_REAL_CONST||LA28_1==NOT||LA28_1==OCT_CONST||LA28_1==PLUS||LA28_1==TRUE) ) {
alt28=1;
}
else if ( (LA28_1==IDENT) ) {
switch ( input.LA(3) ) {
case AND:
case ASTERISK:
case CHAR_CONST:
case DEFINED_OP:
case EQ:
case EQV:
case EQ_EQ:
case GE:
case GREATERTHAN:
case GREATERTHAN_EQ:
case GT:
case LBRACKET:
case LE:
case LESSTHAN:
case LESSTHAN_EQ:
case LPAREN:
case LT:
case NE:
case NEQV:
case OR:
case PERCENT:
case PLUS:
case POWER:
case SLASH:
case SLASH_EQ:
case SLASH_SLASH:
{
alt28=1;
}
break;
case MINUS:
{
int LA28_5 = input.LA(4);
if ( (LA28_5==IDENT) ) {
int LA28_7 = input.LA(5);
if ( (LA28_7==AND||LA28_7==ASTERISK||LA28_7==CHAR_CONST||LA28_7==DEFINED_OP||LA28_7==EQ||(LA28_7 >= EQV && LA28_7 <= EQ_EQ)||LA28_7==GE||(LA28_7 >= GREATERTHAN && LA28_7 <= GT)||(LA28_7 >= LBRACKET && LA28_7 <= LE)||(LA28_7 >= LESSTHAN && LA28_7 <= LESSTHAN_EQ)||(LA28_7 >= LPAREN && LA28_7 <= LT)||LA28_7==MINUS||(LA28_7 >= NE && LA28_7 <= NEQV)||LA28_7==OR||LA28_7==PERCENT||LA28_7==PLUS||LA28_7==POWER||(LA28_7 >= SLASH && LA28_7 <= SLASH_SLASH)) ) {
alt28=1;
}
else if ( (LA28_7==RPAREN) ) {
int LA28_6 = input.LA(6);
if ( (LA28_6==CHARACTER||LA28_6==CLASS||LA28_6==COLON_COLON||LA28_6==COMPLEX||LA28_6==DIGIT_STR||(LA28_6 >= DOUBLE && LA28_6 <= DOUBLEPRECISION)||LA28_6==ELEMENTAL||LA28_6==FUNCTION||LA28_6==IDENT||LA28_6==IMPURE||LA28_6==INTEGER||(LA28_6 >= LOGICAL && LA28_6 <= LPAREN)||LA28_6==MODULE||LA28_6==NON_RECURSIVE||LA28_6==PURE||(LA28_6 >= REAL && LA28_6 <= RECURSIVE)||LA28_6==RPAREN||LA28_6==SUBROUTINE||LA28_6==TYPE) ) {
alt28=1;
}
else if ( (LA28_6==COMMA) ) {
int LA28_8 = input.LA(7);
if ( (LA28_8==ALLOCATABLE||LA28_8==ASYNCHRONOUS||LA28_8==BIND||LA28_8==CODIMENSION||LA28_8==CONTIGUOUS||LA28_8==DIMENSION||LA28_8==EXTERNAL||LA28_8==INTENT||LA28_8==INTRINSIC||LA28_8==NO_LANG_EXT||LA28_8==OPTIONAL||LA28_8==PARAMETER||LA28_8==POINTER||LA28_8==PRIVATE||(LA28_8 >= PROTECTED && LA28_8 <= PUBLIC)||LA28_8==SAVE||LA28_8==TARGET||(LA28_8 >= VALUE && LA28_8 <= VOLATILE)) ) {
alt28=1;
}
}
}
}
else if ( (LA28_5==BIN_CONST||LA28_5==CHAR_CONST||(LA28_5 >= DEFINED_OP && LA28_5 <= DIGIT_STR)||LA28_5==FALSE||LA28_5==HEX_CONST||LA28_5==LBRACKET||LA28_5==LPAREN||LA28_5==M_REAL_CONST||LA28_5==OCT_CONST||LA28_5==TRUE) ) {
alt28=1;
}
}
break;
case RPAREN:
{
int LA28_6 = input.LA(4);
if ( (LA28_6==CHARACTER||LA28_6==CLASS||LA28_6==COLON_COLON||LA28_6==COMPLEX||LA28_6==DIGIT_STR||(LA28_6 >= DOUBLE && LA28_6 <= DOUBLEPRECISION)||LA28_6==ELEMENTAL||LA28_6==FUNCTION||LA28_6==IDENT||LA28_6==IMPURE||LA28_6==INTEGER||(LA28_6 >= LOGICAL && LA28_6 <= LPAREN)||LA28_6==MODULE||LA28_6==NON_RECURSIVE||LA28_6==PURE||(LA28_6 >= REAL && LA28_6 <= RECURSIVE)||LA28_6==RPAREN||LA28_6==SUBROUTINE||LA28_6==TYPE) ) {
alt28=1;
}
else if ( (LA28_6==COMMA) ) {
int LA28_8 = input.LA(5);
if ( (LA28_8==ALLOCATABLE||LA28_8==ASYNCHRONOUS||LA28_8==BIND||LA28_8==CODIMENSION||LA28_8==CONTIGUOUS||LA28_8==DIMENSION||LA28_8==EXTERNAL||LA28_8==INTENT||LA28_8==INTRINSIC||LA28_8==NO_LANG_EXT||LA28_8==OPTIONAL||LA28_8==PARAMETER||LA28_8==POINTER||LA28_8==PRIVATE||(LA28_8 >= PROTECTED && LA28_8 <= PUBLIC)||LA28_8==SAVE||LA28_8==TARGET||(LA28_8 >= VALUE && LA28_8 <= VOLATILE)) ) {
alt28=1;
}
}
}
break;
}
}
}
else if ( (LA28_0==ASTERISK) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// MFortranParser2018.g:504:16: kind_selector
{
pushFollow(FOLLOW_kind_selector_in_intrinsic_type_spec2128);
kind_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasKS = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.intrinsic_type_spec(
LOGICAL34, null,
MFPUtils.TYPE_BOOL, hasKS);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "intrinsic_type_spec"
// $ANTLR start "kind_selector"
// MFortranParser2018.g:513:1: kind_selector : ( LPAREN (tk0= KIND tk1= EQUALS )? expr RPAREN |tk0= ASTERISK tk1= DIGIT_STR );
public final void kind_selector() throws RecognitionException {
Token tk0=null;
Token tk1=null;
boolean hasKSExpr = false;
try {
// MFortranParser2018.g:520:5: ( LPAREN (tk0= KIND tk1= EQUALS )? expr RPAREN |tk0= ASTERISK tk1= DIGIT_STR )
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==LPAREN) ) {
alt31=1;
}
else if ( (LA31_0==ASTERISK) ) {
alt31=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1 :
// MFortranParser2018.g:520:7: LPAREN (tk0= KIND tk1= EQUALS )? expr RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_kind_selector2169); if (state.failed) return;
// MFortranParser2018.g:520:14: (tk0= KIND tk1= EQUALS )?
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==KIND) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// MFortranParser2018.g:520:15: tk0= KIND tk1= EQUALS
{
tk0=(Token)match(input,KIND,FOLLOW_KIND_in_kind_selector2174); if (state.failed) return;
tk1=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_kind_selector2178); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_expr_in_kind_selector2182);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_kind_selector2184); if (state.failed) return;
if ( state.backtracking==0 ) {hasKSExpr = true;}
}
break;
case 2 :
// MFortranParser2018.g:522:7: tk0= ASTERISK tk1= DIGIT_STR
{
tk0=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_kind_selector2204); if (state.failed) return;
tk1=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_kind_selector2208); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.kind_selector(tk0, tk1, hasKSExpr);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "kind_selector"
// $ANTLR start "signed_int_literal_constant"
// MFortranParser2018.g:530:1: signed_int_literal_constant : (sign= PLUS |sign= MINUS )? int_literal_constant ;
public final void signed_int_literal_constant() throws RecognitionException {
Token sign=null;
try {
// MFortranParser2018.g:534:5: ( (sign= PLUS |sign= MINUS )? int_literal_constant )
// MFortranParser2018.g:534:7: (sign= PLUS |sign= MINUS )? int_literal_constant
{
// MFortranParser2018.g:534:7: (sign= PLUS |sign= MINUS )?
int alt32=3;
int LA32_0 = input.LA(1);
if ( (LA32_0==PLUS) ) {
alt32=1;
}
else if ( (LA32_0==MINUS) ) {
alt32=2;
}
switch (alt32) {
case 1 :
// MFortranParser2018.g:534:8: sign= PLUS
{
sign=(Token)match(input,PLUS,FOLLOW_PLUS_in_signed_int_literal_constant2235); if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:534:20: sign= MINUS
{
sign=(Token)match(input,MINUS,FOLLOW_MINUS_in_signed_int_literal_constant2241); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_int_literal_constant_in_signed_int_literal_constant2251);
int_literal_constant();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.signed_int_literal_constant(sign);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "signed_int_literal_constant"
// $ANTLR start "int_literal_constant"
// MFortranParser2018.g:541:1: int_literal_constant : DIGIT_STR ( UNDERSCORE kind= kind_param )? ;
public final void int_literal_constant() throws RecognitionException {
Token DIGIT_STR35=null;
Token kind =null;
try {
// MFortranParser2018.g:542:5: ( DIGIT_STR ( UNDERSCORE kind= kind_param )? )
// MFortranParser2018.g:542:7: DIGIT_STR ( UNDERSCORE kind= kind_param )?
{
DIGIT_STR35=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_int_literal_constant2270); if (state.failed) return;
// MFortranParser2018.g:542:17: ( UNDERSCORE kind= kind_param )?
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==UNDERSCORE) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// MFortranParser2018.g:542:18: UNDERSCORE kind= kind_param
{
match(input,UNDERSCORE,FOLLOW_UNDERSCORE_in_int_literal_constant2273); if (state.failed) return;
pushFollow(FOLLOW_kind_param_in_int_literal_constant2277);
kind=kind_param();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.int_literal_constant(DIGIT_STR35, kind); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "int_literal_constant"
// $ANTLR start "kind_param"
// MFortranParser2018.g:550:1: kind_param returns [Token t] : ( DIGIT_STR | IDENT );
public final Token kind_param() throws RecognitionException {
Token t = null;
Token DIGIT_STR36=null;
Token IDENT37=null;
try {
// MFortranParser2018.g:554:5: ( DIGIT_STR | IDENT )
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==DIGIT_STR) ) {
alt34=1;
}
else if ( (LA34_0==IDENT) ) {
alt34=2;
}
else {
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1 :
// MFortranParser2018.g:554:7: DIGIT_STR
{
DIGIT_STR36=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_kind_param2316); if (state.failed) return t;
if ( state.backtracking==0 ) { t = DIGIT_STR36; }
}
break;
case 2 :
// MFortranParser2018.g:555:7: IDENT
{
IDENT37=(Token)match(input,IDENT,FOLLOW_IDENT_in_kind_param2326); if (state.failed) return t;
if ( state.backtracking==0 ) { t = IDENT37; }
}
break;
}
if ( state.backtracking==0 ) {
MFPA.kind_param(t);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "kind_param"
// $ANTLR start "signed_real_literal_constant"
// MFortranParser2018.g:567:1: signed_real_literal_constant : (sign= PLUS |sign= MINUS )? real_literal_constant ;
public final void signed_real_literal_constant() throws RecognitionException {
Token sign=null;
try {
// MFortranParser2018.g:571:5: ( (sign= PLUS |sign= MINUS )? real_literal_constant )
// MFortranParser2018.g:571:7: (sign= PLUS |sign= MINUS )? real_literal_constant
{
// MFortranParser2018.g:571:7: (sign= PLUS |sign= MINUS )?
int alt35=3;
int LA35_0 = input.LA(1);
if ( (LA35_0==PLUS) ) {
alt35=1;
}
else if ( (LA35_0==MINUS) ) {
alt35=2;
}
switch (alt35) {
case 1 :
// MFortranParser2018.g:571:8: sign= PLUS
{
sign=(Token)match(input,PLUS,FOLLOW_PLUS_in_signed_real_literal_constant2358); if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:571:20: sign= MINUS
{
sign=(Token)match(input,MINUS,FOLLOW_MINUS_in_signed_real_literal_constant2364); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_real_literal_constant_in_signed_real_literal_constant2374);
real_literal_constant();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.signed_real_literal_constant(sign);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "signed_real_literal_constant"
// $ANTLR start "real_literal_constant"
// MFortranParser2018.g:583:1: real_literal_constant : M_REAL_CONST ( UNDERSCORE kind= kind_param )? ;
public final void real_literal_constant() throws RecognitionException {
Token M_REAL_CONST38=null;
Token kind =null;
try {
// MFortranParser2018.g:584:5: ( M_REAL_CONST ( UNDERSCORE kind= kind_param )? )
// MFortranParser2018.g:584:7: M_REAL_CONST ( UNDERSCORE kind= kind_param )?
{
M_REAL_CONST38=(Token)match(input,M_REAL_CONST,FOLLOW_M_REAL_CONST_in_real_literal_constant2393); if (state.failed) return;
// MFortranParser2018.g:584:20: ( UNDERSCORE kind= kind_param )?
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==UNDERSCORE) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// MFortranParser2018.g:584:21: UNDERSCORE kind= kind_param
{
match(input,UNDERSCORE,FOLLOW_UNDERSCORE_in_real_literal_constant2396); if (state.failed) return;
pushFollow(FOLLOW_kind_param_in_real_literal_constant2400);
kind=kind_param();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.real_literal_constant(M_REAL_CONST38, kind); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "real_literal_constant"
// $ANTLR start "complex_literal_constant"
// MFortranParser2018.g:601:1: complex_literal_constant : LPAREN real_part COMMA imag_part RPAREN ;
public final void complex_literal_constant() throws RecognitionException {
try {
// MFortranParser2018.g:605:5: ( LPAREN real_part COMMA imag_part RPAREN )
// MFortranParser2018.g:605:7: LPAREN real_part COMMA imag_part RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_complex_literal_constant2440); if (state.failed) return;
pushFollow(FOLLOW_real_part_in_complex_literal_constant2442);
real_part();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_complex_literal_constant2444); if (state.failed) return;
pushFollow(FOLLOW_imag_part_in_complex_literal_constant2446);
imag_part();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_complex_literal_constant2448); if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.complex_literal_constant();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "complex_literal_constant"
// $ANTLR start "real_part"
// MFortranParser2018.g:612:1: real_part : ( signed_int_literal_constant | signed_real_literal_constant | IDENT );
public final void real_part() throws RecognitionException {
Token IDENT39=null;
try {
// MFortranParser2018.g:613:5: ( signed_int_literal_constant | signed_real_literal_constant | IDENT )
int alt37=3;
switch ( input.LA(1) ) {
case PLUS:
{
int LA37_1 = input.LA(2);
if ( (LA37_1==DIGIT_STR) ) {
alt37=1;
}
else if ( (LA37_1==M_REAL_CONST) ) {
alt37=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 37, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MINUS:
{
int LA37_2 = input.LA(2);
if ( (LA37_2==DIGIT_STR) ) {
alt37=1;
}
else if ( (LA37_2==M_REAL_CONST) ) {
alt37=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 37, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIGIT_STR:
{
alt37=1;
}
break;
case M_REAL_CONST:
{
alt37=2;
}
break;
case IDENT:
{
alt37=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 37, 0, input);
throw nvae;
}
switch (alt37) {
case 1 :
// MFortranParser2018.g:613:7: signed_int_literal_constant
{
pushFollow(FOLLOW_signed_int_literal_constant_in_real_part2467);
signed_int_literal_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.real_part(null,
MFPUtils.CPLXP.INT); }
}
break;
case 2 :
// MFortranParser2018.g:616:7: signed_real_literal_constant
{
pushFollow(FOLLOW_signed_real_literal_constant_in_real_part2485);
signed_real_literal_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.real_part(null,
MFPUtils.CPLXP.REAL); }
}
break;
case 3 :
// MFortranParser2018.g:619:7: IDENT
{
IDENT39=(Token)match(input,IDENT,FOLLOW_IDENT_in_real_part2504); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.real_part(IDENT39,
MFPUtils.CPLXP.IDENT); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "real_part"
// $ANTLR start "imag_part"
// MFortranParser2018.g:628:1: imag_part : ( signed_int_literal_constant | signed_real_literal_constant | IDENT );
public final void imag_part() throws RecognitionException {
Token IDENT40=null;
try {
// MFortranParser2018.g:629:5: ( signed_int_literal_constant | signed_real_literal_constant | IDENT )
int alt38=3;
switch ( input.LA(1) ) {
case PLUS:
{
int LA38_1 = input.LA(2);
if ( (LA38_1==DIGIT_STR) ) {
alt38=1;
}
else if ( (LA38_1==M_REAL_CONST) ) {
alt38=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 38, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MINUS:
{
int LA38_2 = input.LA(2);
if ( (LA38_2==DIGIT_STR) ) {
alt38=1;
}
else if ( (LA38_2==M_REAL_CONST) ) {
alt38=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 38, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIGIT_STR:
{
alt38=1;
}
break;
case M_REAL_CONST:
{
alt38=2;
}
break;
case IDENT:
{
alt38=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
// MFortranParser2018.g:629:7: signed_int_literal_constant
{
pushFollow(FOLLOW_signed_int_literal_constant_in_imag_part2533);
signed_int_literal_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.imag_part(null,
MFPUtils.CPLXP.INT); }
}
break;
case 2 :
// MFortranParser2018.g:632:7: signed_real_literal_constant
{
pushFollow(FOLLOW_signed_real_literal_constant_in_imag_part2551);
signed_real_literal_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.imag_part(null,
MFPUtils.CPLXP.REAL); }
}
break;
case 3 :
// MFortranParser2018.g:635:7: IDENT
{
IDENT40=(Token)match(input,IDENT,FOLLOW_IDENT_in_imag_part2569); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.imag_part(IDENT40,
MFPUtils.CPLXP.IDENT); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "imag_part"
// $ANTLR start "char_selector"
// MFortranParser2018.g:646:1: char_selector : ( ASTERISK char_length ( COMMA )? | LPAREN type_param_value ( COMMA (kind= KIND EQUALS )? expr )? RPAREN | LPAREN len= LEN EQUALS type_param_value ( COMMA kind= KIND EQUALS expr )? RPAREN | LPAREN kind= KIND EQUALS expr ( COMMA (len= LEN EQUALS )? type_param_value )? RPAREN );
public final void char_selector() throws RecognitionException {
Token kind=null;
Token len=null;
int pos0 = MFPUtils.CHAR_SELECTOR_NONE;
int pos1 = MFPUtils.CHAR_SELECTOR_NONE;
try {
// MFortranParser2018.g:654:5: ( ASTERISK char_length ( COMMA )? | LPAREN type_param_value ( COMMA (kind= KIND EQUALS )? expr )? RPAREN | LPAREN len= LEN EQUALS type_param_value ( COMMA kind= KIND EQUALS expr )? RPAREN | LPAREN kind= KIND EQUALS expr ( COMMA (len= LEN EQUALS )? type_param_value )? RPAREN )
int alt45=4;
int LA45_0 = input.LA(1);
if ( (LA45_0==ASTERISK) ) {
alt45=1;
}
else if ( (LA45_0==LPAREN) ) {
switch ( input.LA(2) ) {
case LEN:
{
alt45=3;
}
break;
case KIND:
{
alt45=4;
}
break;
case ASTERISK:
case BIN_CONST:
case CHAR_CONST:
case COLON:
case DEFINED_OP:
case DIGIT_STR:
case FALSE:
case HEX_CONST:
case IDENT:
case LBRACKET:
case LPAREN:
case MINUS:
case M_REAL_CONST:
case NOT:
case OCT_CONST:
case PLUS:
case TRUE:
{
alt45=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 45, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// MFortranParser2018.g:654:7: ASTERISK char_length ( COMMA )?
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_char_selector2607); if (state.failed) return;
pushFollow(FOLLOW_char_length_in_char_selector2609);
char_length();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:654:28: ( COMMA )?
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==COMMA) ) {
int LA39_1 = input.LA(2);
if ( (LA39_1==CHARACTER||LA39_1==CLASS||(LA39_1 >= COLON_COLON && LA39_1 <= COMMA)||LA39_1==COMPLEX||LA39_1==DIGIT_STR||(LA39_1 >= DOUBLE && LA39_1 <= DOUBLEPRECISION)||LA39_1==ELEMENTAL||LA39_1==FUNCTION||LA39_1==IDENT||LA39_1==IMPURE||LA39_1==INTEGER||(LA39_1 >= LOGICAL && LA39_1 <= LPAREN)||LA39_1==MODULE||LA39_1==NON_RECURSIVE||LA39_1==PURE||(LA39_1 >= REAL && LA39_1 <= RECURSIVE)||LA39_1==RPAREN||LA39_1==SUBROUTINE||LA39_1==TYPE) ) {
alt39=1;
}
}
switch (alt39) {
case 1 :
// MFortranParser2018.g:654:29: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_char_selector2612); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { pos0 = MFPUtils.CHAR_SELECTOR_CHARLEN; }
}
break;
case 2 :
// MFortranParser2018.g:656:7: LPAREN type_param_value ( COMMA (kind= KIND EQUALS )? expr )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_char_selector2632); if (state.failed) return;
pushFollow(FOLLOW_type_param_value_in_char_selector2634);
type_param_value();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:657:7: ( COMMA (kind= KIND EQUALS )? expr )?
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==COMMA) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// MFortranParser2018.g:657:9: COMMA (kind= KIND EQUALS )? expr
{
match(input,COMMA,FOLLOW_COMMA_in_char_selector2644); if (state.failed) return;
// MFortranParser2018.g:657:15: (kind= KIND EQUALS )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==KIND) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// MFortranParser2018.g:657:16: kind= KIND EQUALS
{
kind=(Token)match(input,KIND,FOLLOW_KIND_in_char_selector2649); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_char_selector2651); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_expr_in_char_selector2655);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { pos1 = MFPUtils.CHAR_SELECTOR_KINDEXPR; }
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_char_selector2684); if (state.failed) return;
if ( state.backtracking==0 ) { pos0 = MFPUtils.CHAR_SELECTOR_TYPEVAL; }
}
break;
case 3 :
// MFortranParser2018.g:662:7: LPAREN len= LEN EQUALS type_param_value ( COMMA kind= KIND EQUALS expr )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_char_selector2702); if (state.failed) return;
len=(Token)match(input,LEN,FOLLOW_LEN_in_char_selector2706); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_char_selector2708); if (state.failed) return;
pushFollow(FOLLOW_type_param_value_in_char_selector2710);
type_param_value();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:663:7: ( COMMA kind= KIND EQUALS expr )?
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==COMMA) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// MFortranParser2018.g:663:9: COMMA kind= KIND EQUALS expr
{
match(input,COMMA,FOLLOW_COMMA_in_char_selector2720); if (state.failed) return;
kind=(Token)match(input,KIND,FOLLOW_KIND_in_char_selector2724); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_char_selector2726); if (state.failed) return;
pushFollow(FOLLOW_expr_in_char_selector2728);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { pos1 = MFPUtils.CHAR_SELECTOR_KINDEXPR;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_char_selector2757); if (state.failed) return;
if ( state.backtracking==0 ) { pos0 = MFPUtils.CHAR_SELECTOR_TYPEVAL;}
}
break;
case 4 :
// MFortranParser2018.g:668:7: LPAREN kind= KIND EQUALS expr ( COMMA (len= LEN EQUALS )? type_param_value )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_char_selector2775); if (state.failed) return;
kind=(Token)match(input,KIND,FOLLOW_KIND_in_char_selector2779); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_char_selector2781); if (state.failed) return;
pushFollow(FOLLOW_expr_in_char_selector2783);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:669:7: ( COMMA (len= LEN EQUALS )? type_param_value )?
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==COMMA) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// MFortranParser2018.g:669:9: COMMA (len= LEN EQUALS )? type_param_value
{
match(input,COMMA,FOLLOW_COMMA_in_char_selector2793); if (state.failed) return;
// MFortranParser2018.g:669:15: (len= LEN EQUALS )?
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==LEN) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// MFortranParser2018.g:669:16: len= LEN EQUALS
{
len=(Token)match(input,LEN,FOLLOW_LEN_in_char_selector2798); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_char_selector2800); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_type_param_value_in_char_selector2804);
type_param_value();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { pos1 = MFPUtils.CHAR_SELECTOR_TYPEVAL;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_char_selector2833); if (state.failed) return;
if ( state.backtracking==0 ) { pos0 = MFPUtils.CHAR_SELECTOR_KINDEXPR; }
}
break;
}
if ( state.backtracking==0 ) {
MFPA.char_selector(len, kind, pos0, pos1);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "char_selector"
// $ANTLR start "length_selector"
// MFortranParser2018.g:679:1: length_selector : ( LPAREN (len= LEN EQUALS )? type_param_value RPAREN | ASTERISK char_length ( COMMA )? );
public final void length_selector() throws RecognitionException {
Token len=null;
try {
// MFortranParser2018.g:680:5: ( LPAREN (len= LEN EQUALS )? type_param_value RPAREN | ASTERISK char_length ( COMMA )? )
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==LPAREN) ) {
alt48=1;
}
else if ( (LA48_0==ASTERISK) ) {
alt48=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 48, 0, input);
throw nvae;
}
switch (alt48) {
case 1 :
// MFortranParser2018.g:680:7: LPAREN (len= LEN EQUALS )? type_param_value RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_length_selector2862); if (state.failed) return;
// MFortranParser2018.g:680:14: (len= LEN EQUALS )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==LEN) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// MFortranParser2018.g:680:16: len= LEN EQUALS
{
len=(Token)match(input,LEN,FOLLOW_LEN_in_length_selector2868); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_length_selector2870); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_type_param_value_in_length_selector2875);
type_param_value();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_length_selector2877); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.length_selector(len, MFPUtils.CHAR_SELECTOR_TYPEVAL); }
}
break;
case 2 :
// MFortranParser2018.g:682:7: ASTERISK char_length ( COMMA )?
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_length_selector2895); if (state.failed) return;
pushFollow(FOLLOW_char_length_in_length_selector2897);
char_length();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:682:28: ( COMMA )?
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==COMMA) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// MFortranParser2018.g:682:29: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_length_selector2900); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.length_selector(len, MFPUtils.CHAR_SELECTOR_CHARLEN); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "length_selector"
// $ANTLR start "char_length"
// MFortranParser2018.g:689:1: char_length : ( LPAREN type_param_value RPAREN | int_literal_constant );
public final void char_length() throws RecognitionException {
try {
// MFortranParser2018.g:690:5: ( LPAREN type_param_value RPAREN | int_literal_constant )
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==LPAREN) ) {
alt49=1;
}
else if ( (LA49_0==DIGIT_STR) ) {
alt49=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1 :
// MFortranParser2018.g:690:7: LPAREN type_param_value RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_char_length2935); if (state.failed) return;
pushFollow(FOLLOW_type_param_value_in_char_length2937);
type_param_value();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_char_length2939); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.char_length(true); }
}
break;
case 2 :
// MFortranParser2018.g:691:7: int_literal_constant
{
pushFollow(FOLLOW_int_literal_constant_in_char_length2949);
int_literal_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.char_length(false); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "char_length"
// $ANTLR start "char_literal_constant"
// MFortranParser2018.g:699:1: char_literal_constant : ( DIGIT_STR UNDERSCORE CHAR_CONST | IDENT CHAR_CONST | CHAR_CONST );
public final void char_literal_constant() throws RecognitionException {
Token DIGIT_STR41=null;
Token CHAR_CONST42=null;
Token IDENT43=null;
Token CHAR_CONST44=null;
Token CHAR_CONST45=null;
try {
// MFortranParser2018.g:700:5: ( DIGIT_STR UNDERSCORE CHAR_CONST | IDENT CHAR_CONST | CHAR_CONST )
int alt50=3;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
alt50=1;
}
break;
case IDENT:
{
alt50=2;
}
break;
case CHAR_CONST:
{
alt50=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 50, 0, input);
throw nvae;
}
switch (alt50) {
case 1 :
// MFortranParser2018.g:700:7: DIGIT_STR UNDERSCORE CHAR_CONST
{
DIGIT_STR41=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_char_literal_constant2970); if (state.failed) return;
match(input,UNDERSCORE,FOLLOW_UNDERSCORE_in_char_literal_constant2972); if (state.failed) return;
CHAR_CONST42=(Token)match(input,CHAR_CONST,FOLLOW_CHAR_CONST_in_char_literal_constant2974); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.char_literal_constant(DIGIT_STR41, CHAR_CONST42); }
}
break;
case 2 :
// MFortranParser2018.g:702:7: IDENT CHAR_CONST
{
IDENT43=(Token)match(input,IDENT,FOLLOW_IDENT_in_char_literal_constant2992); if (state.failed) return;
CHAR_CONST44=(Token)match(input,CHAR_CONST,FOLLOW_CHAR_CONST_in_char_literal_constant2994); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.char_literal_constant(IDENT43, CHAR_CONST44); }
}
break;
case 3 :
// MFortranParser2018.g:704:7: CHAR_CONST
{
CHAR_CONST45=(Token)match(input,CHAR_CONST,FOLLOW_CHAR_CONST_in_char_literal_constant3012); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.char_literal_constant(null, CHAR_CONST45); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "char_literal_constant"
// $ANTLR start "logical_literal_constant"
// MFortranParser2018.g:711:1: logical_literal_constant : ( TRUE ( UNDERSCORE kind= kind_param )? | FALSE ( UNDERSCORE kind= kind_param )? );
public final void logical_literal_constant() throws RecognitionException {
Token TRUE46=null;
Token FALSE47=null;
Token kind =null;
try {
// MFortranParser2018.g:712:5: ( TRUE ( UNDERSCORE kind= kind_param )? | FALSE ( UNDERSCORE kind= kind_param )? )
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==TRUE) ) {
alt53=1;
}
else if ( (LA53_0==FALSE) ) {
alt53=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// MFortranParser2018.g:712:7: TRUE ( UNDERSCORE kind= kind_param )?
{
TRUE46=(Token)match(input,TRUE,FOLLOW_TRUE_in_logical_literal_constant3041); if (state.failed) return;
// MFortranParser2018.g:712:13: ( UNDERSCORE kind= kind_param )?
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==UNDERSCORE) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// MFortranParser2018.g:712:15: UNDERSCORE kind= kind_param
{
match(input,UNDERSCORE,FOLLOW_UNDERSCORE_in_logical_literal_constant3046); if (state.failed) return;
pushFollow(FOLLOW_kind_param_in_logical_literal_constant3050);
kind=kind_param();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.logical_literal_constant(TRUE46, kind);}
}
break;
case 2 :
// MFortranParser2018.g:714:7: FALSE ( UNDERSCORE kind= kind_param )?
{
FALSE47=(Token)match(input,FALSE,FOLLOW_FALSE_in_logical_literal_constant3070); if (state.failed) return;
// MFortranParser2018.g:714:13: ( UNDERSCORE kind= kind_param )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==UNDERSCORE) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// MFortranParser2018.g:714:15: UNDERSCORE kind= kind_param
{
match(input,UNDERSCORE,FOLLOW_UNDERSCORE_in_logical_literal_constant3074); if (state.failed) return;
pushFollow(FOLLOW_kind_param_in_logical_literal_constant3078);
kind=kind_param();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.logical_literal_constant(FALSE47, kind);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "logical_literal_constant"
// $ANTLR start "derived_type_def"
// MFortranParser2018.g:723:1: derived_type_def : derived_type_stmt ( type_param_or_comp_def_stmt_list )? ( private_or_sequence )* ( component_def_stmt )* ( type_bound_procedure_part )? end_type_stmt ;
public final void derived_type_def() throws RecognitionException {
try {
// MFortranParser2018.g:727:5: ( derived_type_stmt ( type_param_or_comp_def_stmt_list )? ( private_or_sequence )* ( component_def_stmt )* ( type_bound_procedure_part )? end_type_stmt )
// MFortranParser2018.g:727:7: derived_type_stmt ( type_param_or_comp_def_stmt_list )? ( private_or_sequence )* ( component_def_stmt )* ( type_bound_procedure_part )? end_type_stmt
{
pushFollow(FOLLOW_derived_type_stmt_in_derived_type_def3113);
derived_type_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:729:7: ( type_param_or_comp_def_stmt_list )?
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==ALLOCATABLE||LA54_0==CODIMENSION||LA54_0==CONTIGUOUS||LA54_0==DIMENSION||LA54_0==KIND||LA54_0==LEN||LA54_0==NO_LANG_EXT||LA54_0==POINTER||LA54_0==PUBLIC) ) {
alt54=1;
}
else if ( (LA54_0==PRIVATE) ) {
int LA54_2 = input.LA(2);
if ( ((LA54_2 >= COLON_COLON && LA54_2 <= COMMA)) ) {
alt54=1;
}
}
switch (alt54) {
case 1 :
// MFortranParser2018.g:729:9: type_param_or_comp_def_stmt_list
{
pushFollow(FOLLOW_type_param_or_comp_def_stmt_list_in_derived_type_def3124);
type_param_or_comp_def_stmt_list();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:730:7: ( private_or_sequence )*
loop55:
while (true) {
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==DIGIT_STR) ) {
int LA55_1 = input.LA(2);
if ( (LA55_1==PRIVATE||LA55_1==SEQUENCE) ) {
alt55=1;
}
}
else if ( (LA55_0==PRIVATE||LA55_0==SEQUENCE) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// MFortranParser2018.g:730:9: private_or_sequence
{
pushFollow(FOLLOW_private_or_sequence_in_derived_type_def3137);
private_or_sequence();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop55;
}
}
if ( state.backtracking==0 ) { /* OFP:
* if private_or_sequence present, component_def_stmt in
* type_param_or_comp_def_stmt_list is an error
*/
}
// MFortranParser2018.g:736:7: ( component_def_stmt )*
loop56:
while (true) {
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==DIGIT_STR) ) {
int LA56_1 = input.LA(2);
if ( (LA56_1==CHARACTER||LA56_1==CLASS||LA56_1==COMPLEX||(LA56_1 >= DOUBLE && LA56_1 <= DOUBLEPRECISION)||LA56_1==INTEGER||LA56_1==LOGICAL||LA56_1==PROCEDURE||LA56_1==REAL||LA56_1==TYPE) ) {
alt56=1;
}
}
else if ( (LA56_0==CHARACTER||LA56_0==CLASS||LA56_0==COMPLEX||(LA56_0 >= DOUBLE && LA56_0 <= DOUBLEPRECISION)||LA56_0==INTEGER||LA56_0==LOGICAL||LA56_0==PROCEDURE||LA56_0==REAL||LA56_0==TYPE) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// MFortranParser2018.g:736:9: component_def_stmt
{
pushFollow(FOLLOW_component_def_stmt_in_derived_type_def3162);
component_def_stmt();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop56;
}
}
// MFortranParser2018.g:737:7: ( type_bound_procedure_part )?
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==DIGIT_STR) ) {
int LA57_1 = input.LA(2);
if ( (LA57_1==CONTAINS) ) {
alt57=1;
}
}
else if ( (LA57_0==CONTAINS) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// MFortranParser2018.g:737:9: type_bound_procedure_part
{
pushFollow(FOLLOW_type_bound_procedure_part_in_derived_type_def3175);
type_bound_procedure_part();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_type_stmt_in_derived_type_def3186);
end_type_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.derived_type_def();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "derived_type_def"
// $ANTLR start "derived_type_stmt"
// MFortranParser2018.g:745:1: derived_type_stmt : (lbl= label )? TYPE ( ( COMMA type_attr_spec_list )? COLON_COLON )? IDENT ( LPAREN generic_name_list RPAREN )? end_of_stmt ;
public final void derived_type_stmt() throws RecognitionException {
Token TYPE48=null;
Token IDENT49=null;
Token lbl =null;
Token end_of_stmt50 =null;
boolean hasASList = false;
boolean hasPNList = false;
try {
// MFortranParser2018.g:753:5: ( (lbl= label )? TYPE ( ( COMMA type_attr_spec_list )? COLON_COLON )? IDENT ( LPAREN generic_name_list RPAREN )? end_of_stmt )
// MFortranParser2018.g:753:7: (lbl= label )? TYPE ( ( COMMA type_attr_spec_list )? COLON_COLON )? IDENT ( LPAREN generic_name_list RPAREN )? end_of_stmt
{
// MFortranParser2018.g:753:7: (lbl= label )?
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==DIGIT_STR) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// MFortranParser2018.g:753:8: lbl= label
{
pushFollow(FOLLOW_label_in_derived_type_stmt3217);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
TYPE48=(Token)match(input,TYPE,FOLLOW_TYPE_in_derived_type_stmt3222); if (state.failed) return;
// MFortranParser2018.g:754:7: ( ( COMMA type_attr_spec_list )? COLON_COLON )?
int alt60=2;
int LA60_0 = input.LA(1);
if ( ((LA60_0 >= COLON_COLON && LA60_0 <= COMMA)) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// MFortranParser2018.g:754:9: ( COMMA type_attr_spec_list )? COLON_COLON
{
// MFortranParser2018.g:754:9: ( COMMA type_attr_spec_list )?
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==COMMA) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// MFortranParser2018.g:754:11: COMMA type_attr_spec_list
{
match(input,COMMA,FOLLOW_COMMA_in_derived_type_stmt3234); if (state.failed) return;
pushFollow(FOLLOW_type_attr_spec_list_in_derived_type_stmt3236);
type_attr_spec_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasASList=true;}
}
break;
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_derived_type_stmt3243); if (state.failed) return;
}
break;
}
IDENT49=(Token)match(input,IDENT,FOLLOW_IDENT_in_derived_type_stmt3255); if (state.failed) return;
// MFortranParser2018.g:756:7: ( LPAREN generic_name_list RPAREN )?
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==LPAREN) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// MFortranParser2018.g:756:9: LPAREN generic_name_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_derived_type_stmt3265); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_derived_type_stmt3267);
generic_name_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_derived_type_stmt3269); if (state.failed) return;
if ( state.backtracking==0 ) {hasPNList=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_derived_type_stmt3282);
end_of_stmt50=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.derived_type_stmt(
lbl, TYPE48, IDENT49, end_of_stmt50,
hasASList, hasPNList);
}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "derived_type_stmt"
// $ANTLR start "generic_name_list"
// MFortranParser2018.g:764:1: generic_name_list : ident= IDENT ( COMMA ident= IDENT )* ;
public final void generic_name_list() throws RecognitionException {
Token ident=null;
int numGN = 1;
try {
// MFortranParser2018.g:771:5: (ident= IDENT ( COMMA ident= IDENT )* )
// MFortranParser2018.g:771:7: ident= IDENT ( COMMA ident= IDENT )*
{
ident=(Token)match(input,IDENT,FOLLOW_IDENT_in_generic_name_list3319); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.generic_name(ident); }
// MFortranParser2018.g:773:7: ( COMMA ident= IDENT )*
loop62:
while (true) {
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==COMMA) ) {
alt62=1;
}
switch (alt62) {
case 1 :
// MFortranParser2018.g:773:9: COMMA ident= IDENT
{
match(input,COMMA,FOLLOW_COMMA_in_generic_name_list3340); if (state.failed) return;
ident=(Token)match(input,IDENT,FOLLOW_IDENT_in_generic_name_list3344); if (state.failed) return;
if ( state.backtracking==0 ) { numGN++;
MFPA.generic_name(ident);
}
}
break;
default :
break loop62;
}
}
}
if ( state.backtracking==0 ) {
MFPA.generic_name_list(numGN);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "generic_name_list"
// $ANTLR start "type_attr_spec"
// MFortranParser2018.g:784:1: type_attr_spec : ( access_spec | EXTENDS LPAREN IDENT RPAREN | ABSTRACT | BIND LPAREN IDENT RPAREN );
public final void type_attr_spec() throws RecognitionException {
Token EXTENDS51=null;
Token IDENT52=null;
Token ABSTRACT53=null;
Token BIND54=null;
Token IDENT55=null;
try {
// MFortranParser2018.g:785:5: ( access_spec | EXTENDS LPAREN IDENT RPAREN | ABSTRACT | BIND LPAREN IDENT RPAREN )
int alt63=4;
switch ( input.LA(1) ) {
case PRIVATE:
case PUBLIC:
{
alt63=1;
}
break;
case EXTENDS:
{
alt63=2;
}
break;
case ABSTRACT:
{
alt63=3;
}
break;
case BIND:
{
alt63=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// MFortranParser2018.g:785:7: access_spec
{
pushFollow(FOLLOW_access_spec_in_type_attr_spec3386);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_attr_spec(null, null,
MFPUtils.ATTR_ACCESS);}
}
break;
case 2 :
// MFortranParser2018.g:788:7: EXTENDS LPAREN IDENT RPAREN
{
EXTENDS51=(Token)match(input,EXTENDS,FOLLOW_EXTENDS_in_type_attr_spec3404); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_type_attr_spec3406); if (state.failed) return;
IDENT52=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_attr_spec3408); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_type_attr_spec3410); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.type_attr_spec(EXTENDS51, IDENT52,
MFPUtils.ATTR_EXTENDS);}
}
break;
case 3 :
// MFortranParser2018.g:791:7: ABSTRACT
{
ABSTRACT53=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_type_attr_spec3428); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.type_attr_spec(ABSTRACT53, null,
MFPUtils.ATTR_ABSTRACT);}
}
break;
case 4 :
// MFortranParser2018.g:795:7: BIND LPAREN IDENT RPAREN
{
BIND54=(Token)match(input,BIND,FOLLOW_BIND_in_type_attr_spec3448); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_type_attr_spec3450); if (state.failed) return;
IDENT55=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_attr_spec3452); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_type_attr_spec3454); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.type_attr_spec(BIND54, IDENT55,
MFPUtils.ATTR_BIND_C);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_attr_spec"
// $ANTLR start "type_attr_spec_list"
// MFortranParser2018.g:800:1: type_attr_spec_list : type_attr_spec ( COMMA type_attr_spec )* ;
public final void type_attr_spec_list() throws RecognitionException {
int numTAS = 1;
try {
// MFortranParser2018.g:807:5: ( type_attr_spec ( COMMA type_attr_spec )* )
// MFortranParser2018.g:807:7: type_attr_spec ( COMMA type_attr_spec )*
{
pushFollow(FOLLOW_type_attr_spec_in_type_attr_spec_list3489);
type_attr_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:807:22: ( COMMA type_attr_spec )*
loop64:
while (true) {
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==COMMA) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// MFortranParser2018.g:807:24: COMMA type_attr_spec
{
match(input,COMMA,FOLLOW_COMMA_in_type_attr_spec_list3493); if (state.failed) return;
pushFollow(FOLLOW_type_attr_spec_in_type_attr_spec_list3495);
type_attr_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numTAS++;}
}
break;
default :
break loop64;
}
}
}
if ( state.backtracking==0 ) {
MFPA.type_attr_spec_list(numTAS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_attr_spec_list"
// $ANTLR start "private_or_sequence"
// MFortranParser2018.g:813:1: private_or_sequence : ( private_components_stmt | sequence_stmt );
public final void private_or_sequence() throws RecognitionException {
try {
// MFortranParser2018.g:817:5: ( private_components_stmt | sequence_stmt )
int alt65=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA65_1 = input.LA(2);
if ( (LA65_1==PRIVATE) ) {
alt65=1;
}
else if ( (LA65_1==SEQUENCE) ) {
alt65=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 65, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PRIVATE:
{
alt65=1;
}
break;
case SEQUENCE:
{
alt65=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// MFortranParser2018.g:817:7: private_components_stmt
{
pushFollow(FOLLOW_private_components_stmt_in_private_or_sequence3524);
private_components_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:818:7: sequence_stmt
{
pushFollow(FOLLOW_sequence_stmt_in_private_or_sequence3532);
sequence_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.private_or_sequence();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "private_or_sequence"
// $ANTLR start "end_type_stmt"
// MFortranParser2018.g:824:1: end_type_stmt : (lbl= label )? END TYPE (id= IDENT )? end_of_stmt ;
public final void end_type_stmt() throws RecognitionException {
Token id=null;
Token END56=null;
Token TYPE57=null;
Token lbl =null;
Token end_of_stmt58 =null;
try {
// MFortranParser2018.g:828:5: ( (lbl= label )? END TYPE (id= IDENT )? end_of_stmt )
// MFortranParser2018.g:828:7: (lbl= label )? END TYPE (id= IDENT )? end_of_stmt
{
// MFortranParser2018.g:828:7: (lbl= label )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==DIGIT_STR) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// MFortranParser2018.g:828:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_type_stmt3558);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END56=(Token)match(input,END,FOLLOW_END_in_end_type_stmt3563); if (state.failed) return;
TYPE57=(Token)match(input,TYPE,FOLLOW_TYPE_in_end_type_stmt3565); if (state.failed) return;
// MFortranParser2018.g:829:7: (id= IDENT )?
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==IDENT) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// MFortranParser2018.g:829:8: id= IDENT
{
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_type_stmt3577); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_type_stmt3581);
end_of_stmt58=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_type_stmt(lbl, END56, TYPE57, id, end_of_stmt58);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_type_stmt"
// $ANTLR start "sequence_stmt"
// MFortranParser2018.g:836:1: sequence_stmt : (lbl= label )? SEQUENCE end_of_stmt ;
public final void sequence_stmt() throws RecognitionException {
Token SEQUENCE59=null;
Token lbl =null;
Token end_of_stmt60 =null;
try {
// MFortranParser2018.g:840:5: ( (lbl= label )? SEQUENCE end_of_stmt )
// MFortranParser2018.g:840:7: (lbl= label )? SEQUENCE end_of_stmt
{
// MFortranParser2018.g:840:7: (lbl= label )?
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==DIGIT_STR) ) {
alt68=1;
}
switch (alt68) {
case 1 :
// MFortranParser2018.g:840:8: lbl= label
{
pushFollow(FOLLOW_label_in_sequence_stmt3617);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SEQUENCE59=(Token)match(input,SEQUENCE,FOLLOW_SEQUENCE_in_sequence_stmt3622); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_sequence_stmt3624);
end_of_stmt60=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.sequence_stmt(lbl, SEQUENCE59, end_of_stmt60);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "sequence_stmt"
// $ANTLR start "type_param_or_comp_def_stmt"
// MFortranParser2018.g:851:1: type_param_or_comp_def_stmt : ( type_param_attr_spec COLON_COLON type_param_decl_list end_of_stmt | component_attr_spec_list COLON_COLON component_decl_list end_of_stmt );
public final void type_param_or_comp_def_stmt() throws RecognitionException {
Token end_of_stmt61 =null;
Token end_of_stmt62 =null;
try {
// MFortranParser2018.g:852:5: ( type_param_attr_spec COLON_COLON type_param_decl_list end_of_stmt | component_attr_spec_list COLON_COLON component_decl_list end_of_stmt )
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==KIND||LA69_0==LEN) ) {
alt69=1;
}
else if ( (LA69_0==ALLOCATABLE||LA69_0==CODIMENSION||LA69_0==CONTIGUOUS||LA69_0==DIMENSION||LA69_0==NO_LANG_EXT||LA69_0==POINTER||LA69_0==PRIVATE||LA69_0==PUBLIC) ) {
alt69=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 69, 0, input);
throw nvae;
}
switch (alt69) {
case 1 :
// MFortranParser2018.g:852:7: type_param_attr_spec COLON_COLON type_param_decl_list end_of_stmt
{
pushFollow(FOLLOW_type_param_attr_spec_in_type_param_or_comp_def_stmt3653);
type_param_attr_spec();
state._fsp--;
if (state.failed) return;
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_type_param_or_comp_def_stmt3655); if (state.failed) return;
pushFollow(FOLLOW_type_param_decl_list_in_type_param_or_comp_def_stmt3657);
type_param_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_type_param_or_comp_def_stmt3659);
end_of_stmt61=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_or_comp_def_stmt( end_of_stmt61,
MFPUtils.TPD_OR_CD.TYPE_PARAM_DEF);}
}
break;
case 2 :
// MFortranParser2018.g:855:7: component_attr_spec_list COLON_COLON component_decl_list end_of_stmt
{
pushFollow(FOLLOW_component_attr_spec_list_in_type_param_or_comp_def_stmt3676);
component_attr_spec_list();
state._fsp--;
if (state.failed) return;
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_type_param_or_comp_def_stmt3678); if (state.failed) return;
pushFollow(FOLLOW_component_decl_list_in_type_param_or_comp_def_stmt3680);
component_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_type_param_or_comp_def_stmt3682);
end_of_stmt62=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_or_comp_def_stmt( end_of_stmt62,
MFPUtils.TPD_OR_CD.COMP_DEF);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_or_comp_def_stmt"
// $ANTLR start "type_param_or_comp_def_stmt_list"
// MFortranParser2018.g:860:1: type_param_or_comp_def_stmt_list : type_param_or_comp_def_stmt ( type_param_or_comp_def_stmt )* ;
public final void type_param_or_comp_def_stmt_list() throws RecognitionException {
int numTPCD = 1;
try {
// MFortranParser2018.g:867:5: ( type_param_or_comp_def_stmt ( type_param_or_comp_def_stmt )* )
// MFortranParser2018.g:867:7: type_param_or_comp_def_stmt ( type_param_or_comp_def_stmt )*
{
pushFollow(FOLLOW_type_param_or_comp_def_stmt_in_type_param_or_comp_def_stmt_list3716);
type_param_or_comp_def_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:867:35: ( type_param_or_comp_def_stmt )*
loop70:
while (true) {
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==PRIVATE) ) {
int LA70_2 = input.LA(2);
if ( ((LA70_2 >= COLON_COLON && LA70_2 <= COMMA)) ) {
alt70=1;
}
}
else if ( (LA70_0==ALLOCATABLE||LA70_0==CODIMENSION||LA70_0==CONTIGUOUS||LA70_0==DIMENSION||LA70_0==KIND||LA70_0==LEN||LA70_0==NO_LANG_EXT||LA70_0==POINTER||LA70_0==PUBLIC) ) {
alt70=1;
}
switch (alt70) {
case 1 :
// MFortranParser2018.g:867:37: type_param_or_comp_def_stmt
{
pushFollow(FOLLOW_type_param_or_comp_def_stmt_in_type_param_or_comp_def_stmt_list3720);
type_param_or_comp_def_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numTPCD++;}
}
break;
default :
break loop70;
}
}
}
if ( state.backtracking==0 ) {
MFPA.type_param_or_comp_def_stmt_list();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_or_comp_def_stmt_list"
// $ANTLR start "type_param_decl"
// MFortranParser2018.g:875:1: type_param_decl : IDENT ( EQUALS expr )? ;
public final void type_param_decl() throws RecognitionException {
Token IDENT63=null;
boolean hasInit=false;
try {
// MFortranParser2018.g:879:5: ( IDENT ( EQUALS expr )? )
// MFortranParser2018.g:879:7: IDENT ( EQUALS expr )?
{
IDENT63=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_param_decl3748); if (state.failed) return;
// MFortranParser2018.g:879:13: ( EQUALS expr )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==EQUALS) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// MFortranParser2018.g:879:15: EQUALS expr
{
match(input,EQUALS,FOLLOW_EQUALS_in_type_param_decl3752); if (state.failed) return;
pushFollow(FOLLOW_expr_in_type_param_decl3754);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasInit=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.type_param_decl(IDENT63, hasInit); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_decl"
// $ANTLR start "type_param_decl_list"
// MFortranParser2018.g:883:1: type_param_decl_list : type_param_decl ( COMMA type_param_decl )* ;
public final void type_param_decl_list() throws RecognitionException {
int numTPD = 1;
try {
// MFortranParser2018.g:890:5: ( type_param_decl ( COMMA type_param_decl )* )
// MFortranParser2018.g:890:7: type_param_decl ( COMMA type_param_decl )*
{
pushFollow(FOLLOW_type_param_decl_in_type_param_decl_list3792);
type_param_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:890:23: ( COMMA type_param_decl )*
loop72:
while (true) {
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==COMMA) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// MFortranParser2018.g:890:25: COMMA type_param_decl
{
match(input,COMMA,FOLLOW_COMMA_in_type_param_decl_list3796); if (state.failed) return;
pushFollow(FOLLOW_type_param_decl_in_type_param_decl_list3798);
type_param_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numTPD++;}
}
break;
default :
break loop72;
}
}
}
if ( state.backtracking==0 ) {
MFPA.type_param_decl_list(numTPD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_decl_list"
// $ANTLR start "type_param_attr_spec"
// MFortranParser2018.g:896:1: type_param_attr_spec : ( KIND | LEN );
public final void type_param_attr_spec() throws RecognitionException {
Token KIND64=null;
Token LEN65=null;
try {
// MFortranParser2018.g:897:5: ( KIND | LEN )
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==KIND) ) {
alt73=1;
}
else if ( (LA73_0==LEN) ) {
alt73=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 73, 0, input);
throw nvae;
}
switch (alt73) {
case 1 :
// MFortranParser2018.g:897:7: KIND
{
KIND64=(Token)match(input,KIND,FOLLOW_KIND_in_type_param_attr_spec3822); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_attr_spec(KIND64,
MFPUtils.ATTR_KIND); }
}
break;
case 2 :
// MFortranParser2018.g:900:7: LEN
{
LEN65=(Token)match(input,LEN,FOLLOW_LEN_in_type_param_attr_spec3841); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_attr_spec(LEN65,
MFPUtils.ATTR_LEN); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_attr_spec"
// $ANTLR start "component_def_stmt"
// MFortranParser2018.g:913:1: component_def_stmt : ( data_component_def_stmt | proc_component_def_stmt );
public final void component_def_stmt() throws RecognitionException {
try {
// MFortranParser2018.g:917:5: ( data_component_def_stmt | proc_component_def_stmt )
int alt74=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA74_1 = input.LA(2);
if ( (LA74_1==CHARACTER||LA74_1==CLASS||LA74_1==COMPLEX||(LA74_1 >= DOUBLE && LA74_1 <= DOUBLEPRECISION)||LA74_1==INTEGER||LA74_1==LOGICAL||LA74_1==REAL||LA74_1==TYPE) ) {
alt74=1;
}
else if ( (LA74_1==PROCEDURE) ) {
alt74=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 74, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHARACTER:
case CLASS:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case INTEGER:
case LOGICAL:
case REAL:
case TYPE:
{
alt74=1;
}
break;
case PROCEDURE:
{
alt74=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 74, 0, input);
throw nvae;
}
switch (alt74) {
case 1 :
// MFortranParser2018.g:917:7: data_component_def_stmt
{
pushFollow(FOLLOW_data_component_def_stmt_in_component_def_stmt3879);
data_component_def_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:918:7: proc_component_def_stmt
{
pushFollow(FOLLOW_proc_component_def_stmt_in_component_def_stmt3887);
proc_component_def_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_def_stmt"
// $ANTLR start "data_component_def_stmt"
// MFortranParser2018.g:924:1: data_component_def_stmt : (lbl= label )? declaration_type_spec ( ( COMMA component_attr_spec_list )? COLON_COLON )? component_decl_list end_of_stmt ;
public final void data_component_def_stmt() throws RecognitionException {
Token lbl =null;
Token end_of_stmt66 =null;
boolean hasSpec=false;
try {
// MFortranParser2018.g:931:5: ( (lbl= label )? declaration_type_spec ( ( COMMA component_attr_spec_list )? COLON_COLON )? component_decl_list end_of_stmt )
// MFortranParser2018.g:931:7: (lbl= label )? declaration_type_spec ( ( COMMA component_attr_spec_list )? COLON_COLON )? component_decl_list end_of_stmt
{
// MFortranParser2018.g:931:7: (lbl= label )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==DIGIT_STR) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// MFortranParser2018.g:931:8: lbl= label
{
pushFollow(FOLLOW_label_in_data_component_def_stmt3918);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_declaration_type_spec_in_data_component_def_stmt3930);
declaration_type_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:933:7: ( ( COMMA component_attr_spec_list )? COLON_COLON )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( ((LA77_0 >= COLON_COLON && LA77_0 <= COMMA)) ) {
alt77=1;
}
switch (alt77) {
case 1 :
// MFortranParser2018.g:933:9: ( COMMA component_attr_spec_list )? COLON_COLON
{
// MFortranParser2018.g:933:9: ( COMMA component_attr_spec_list )?
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==COMMA) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// MFortranParser2018.g:933:11: COMMA component_attr_spec_list
{
match(input,COMMA,FOLLOW_COMMA_in_data_component_def_stmt3943); if (state.failed) return;
pushFollow(FOLLOW_component_attr_spec_list_in_data_component_def_stmt3945);
component_attr_spec_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSpec=true;}
}
break;
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_data_component_def_stmt3961); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_component_decl_list_in_data_component_def_stmt3973);
component_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_data_component_def_stmt3975);
end_of_stmt66=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.data_component_def_stmt(lbl, end_of_stmt66, hasSpec); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_component_def_stmt"
// $ANTLR start "component_attr_spec"
// MFortranParser2018.g:943:1: component_attr_spec : ( access_spec | ALLOCATABLE | CODIMENSION LBRACKET coarray_spec RBRACKET | CONTIGUOUS | DIMENSION LPAREN component_array_spec RPAREN | POINTER | component_attr_spec_extension );
public final void component_attr_spec() throws RecognitionException {
Token ALLOCATABLE67=null;
Token CODIMENSION68=null;
Token CONTIGUOUS69=null;
Token DIMENSION70=null;
Token POINTER71=null;
try {
// MFortranParser2018.g:944:5: ( access_spec | ALLOCATABLE | CODIMENSION LBRACKET coarray_spec RBRACKET | CONTIGUOUS | DIMENSION LPAREN component_array_spec RPAREN | POINTER | component_attr_spec_extension )
int alt78=7;
switch ( input.LA(1) ) {
case PRIVATE:
case PUBLIC:
{
alt78=1;
}
break;
case ALLOCATABLE:
{
alt78=2;
}
break;
case CODIMENSION:
{
alt78=3;
}
break;
case CONTIGUOUS:
{
alt78=4;
}
break;
case DIMENSION:
{
alt78=5;
}
break;
case POINTER:
{
alt78=6;
}
break;
case NO_LANG_EXT:
{
alt78=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 78, 0, input);
throw nvae;
}
switch (alt78) {
case 1 :
// MFortranParser2018.g:944:7: access_spec
{
pushFollow(FOLLOW_access_spec_in_component_attr_spec4003);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.component_attr_spec(null,
MFPUtils.ATTR_ACCESS);}
}
break;
case 2 :
// MFortranParser2018.g:947:7: ALLOCATABLE
{
ALLOCATABLE67=(Token)match(input,ALLOCATABLE,FOLLOW_ALLOCATABLE_in_component_attr_spec4021); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.component_attr_spec(ALLOCATABLE67,
MFPUtils.ATTR_ALLOCATABLE);}
}
break;
case 3 :
// MFortranParser2018.g:950:7: CODIMENSION LBRACKET coarray_spec RBRACKET
{
CODIMENSION68=(Token)match(input,CODIMENSION,FOLLOW_CODIMENSION_in_component_attr_spec4039); if (state.failed) return;
match(input,LBRACKET,FOLLOW_LBRACKET_in_component_attr_spec4041); if (state.failed) return;
pushFollow(FOLLOW_coarray_spec_in_component_attr_spec4043);
coarray_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_component_attr_spec4045); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.component_attr_spec(CODIMENSION68,
MFPUtils.ATTR_CODIMENSION);}
}
break;
case 4 :
// MFortranParser2018.g:953:7: CONTIGUOUS
{
CONTIGUOUS69=(Token)match(input,CONTIGUOUS,FOLLOW_CONTIGUOUS_in_component_attr_spec4063); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.component_attr_spec(CONTIGUOUS69,
MFPUtils.ATTR_CONTIGUOUS);}
}
break;
case 5 :
// MFortranParser2018.g:956:7: DIMENSION LPAREN component_array_spec RPAREN
{
DIMENSION70=(Token)match(input,DIMENSION,FOLLOW_DIMENSION_in_component_attr_spec4081); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_component_attr_spec4083); if (state.failed) return;
pushFollow(FOLLOW_component_array_spec_in_component_attr_spec4085);
component_array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_component_attr_spec4087); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.component_attr_spec(DIMENSION70,
MFPUtils.ATTR_DIMENSION);}
}
break;
case 6 :
// MFortranParser2018.g:959:7: POINTER
{
POINTER71=(Token)match(input,POINTER,FOLLOW_POINTER_in_component_attr_spec4105); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.component_attr_spec(POINTER71,
MFPUtils.ATTR_POINTER);}
}
break;
case 7 :
// MFortranParser2018.g:962:7: component_attr_spec_extension
{
pushFollow(FOLLOW_component_attr_spec_extension_in_component_attr_spec4123);
component_attr_spec_extension();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_attr_spec"
// $ANTLR start "component_attr_spec_extension"
// MFortranParser2018.g:965:1: component_attr_spec_extension : NO_LANG_EXT ;
public final void component_attr_spec_extension() throws RecognitionException {
try {
// MFortranParser2018.g:966:5: ( NO_LANG_EXT )
// MFortranParser2018.g:966:7: NO_LANG_EXT
{
match(input,NO_LANG_EXT,FOLLOW_NO_LANG_EXT_in_component_attr_spec_extension4140); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_attr_spec_extension"
// $ANTLR start "component_attr_spec_list"
// MFortranParser2018.g:969:1: component_attr_spec_list : component_attr_spec ( COMMA component_attr_spec )* ;
public final void component_attr_spec_list() throws RecognitionException {
int numCAS = 1;
try {
// MFortranParser2018.g:976:5: ( component_attr_spec ( COMMA component_attr_spec )* )
// MFortranParser2018.g:976:7: component_attr_spec ( COMMA component_attr_spec )*
{
pushFollow(FOLLOW_component_attr_spec_in_component_attr_spec_list4165);
component_attr_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:976:27: ( COMMA component_attr_spec )*
loop79:
while (true) {
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==COMMA) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// MFortranParser2018.g:976:29: COMMA component_attr_spec
{
match(input,COMMA,FOLLOW_COMMA_in_component_attr_spec_list4169); if (state.failed) return;
pushFollow(FOLLOW_component_attr_spec_in_component_attr_spec_list4171);
component_attr_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCAS++;}
}
break;
default :
break loop79;
}
}
}
if ( state.backtracking==0 ) {
MFPA.component_attr_spec_list(numCAS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_attr_spec_list"
// $ANTLR start "component_decl"
// MFortranParser2018.g:982:1: component_decl : IDENT ( LPAREN component_array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ( ASTERISK char_length )? ( component_initialization )? ;
public final void component_decl() throws RecognitionException {
Token IDENT72=null;
boolean hasCAS = false;
boolean hasCS = false;
boolean hasCL = false;
boolean hasCI = false;
try {
// MFortranParser2018.g:989:5: ( IDENT ( LPAREN component_array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ( ASTERISK char_length )? ( component_initialization )? )
// MFortranParser2018.g:989:7: IDENT ( LPAREN component_array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ( ASTERISK char_length )? ( component_initialization )?
{
IDENT72=(Token)match(input,IDENT,FOLLOW_IDENT_in_component_decl4200); if (state.failed) return;
// MFortranParser2018.g:990:7: ( LPAREN component_array_spec RPAREN )?
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==LPAREN) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// MFortranParser2018.g:990:8: LPAREN component_array_spec RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_component_decl4210); if (state.failed) return;
pushFollow(FOLLOW_component_array_spec_in_component_decl4212);
component_array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_component_decl4214); if (state.failed) return;
if ( state.backtracking==0 ) {hasCAS=true;}
}
break;
}
// MFortranParser2018.g:991:7: ( LBRACKET coarray_spec RBRACKET )?
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==LBRACKET) ) {
alt81=1;
}
switch (alt81) {
case 1 :
// MFortranParser2018.g:991:8: LBRACKET coarray_spec RBRACKET
{
match(input,LBRACKET,FOLLOW_LBRACKET_in_component_decl4227); if (state.failed) return;
pushFollow(FOLLOW_coarray_spec_in_component_decl4229);
coarray_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_component_decl4231); if (state.failed) return;
if ( state.backtracking==0 ) {hasCS=true;}
}
break;
}
// MFortranParser2018.g:992:7: ( ASTERISK char_length )?
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==ASTERISK) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// MFortranParser2018.g:992:8: ASTERISK char_length
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_component_decl4244); if (state.failed) return;
pushFollow(FOLLOW_char_length_in_component_decl4246);
char_length();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasCL=true;}
}
break;
}
// MFortranParser2018.g:993:7: ( component_initialization )?
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==EQUALS||LA83_0==EQ_GT) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// MFortranParser2018.g:993:8: component_initialization
{
pushFollow(FOLLOW_component_initialization_in_component_decl4259);
component_initialization();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasCI =true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.component_decl(IDENT72,
hasCAS, hasCS, hasCL, hasCI);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_decl"
// $ANTLR start "component_decl_list"
// MFortranParser2018.g:998:1: component_decl_list : component_decl ( COMMA component_decl )* ;
public final void component_decl_list() throws RecognitionException {
int numCD = 1;
try {
// MFortranParser2018.g:1005:5: ( component_decl ( COMMA component_decl )* )
// MFortranParser2018.g:1005:7: component_decl ( COMMA component_decl )*
{
pushFollow(FOLLOW_component_decl_in_component_decl_list4301);
component_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1005:22: ( COMMA component_decl )*
loop84:
while (true) {
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==COMMA) ) {
alt84=1;
}
switch (alt84) {
case 1 :
// MFortranParser2018.g:1005:24: COMMA component_decl
{
match(input,COMMA,FOLLOW_COMMA_in_component_decl_list4305); if (state.failed) return;
pushFollow(FOLLOW_component_decl_in_component_decl_list4307);
component_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCD++;}
}
break;
default :
break loop84;
}
}
}
if ( state.backtracking==0 ) {
MFPA.component_decl_list(numCD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_decl_list"
// $ANTLR start "component_array_spec"
// MFortranParser2018.g:1011:1: component_array_spec : ( explicit_shape_spec_list | deferred_shape_spec_list );
public final void component_array_spec() throws RecognitionException {
try {
// MFortranParser2018.g:1012:5: ( explicit_shape_spec_list | deferred_shape_spec_list )
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==BIN_CONST||LA85_0==CHAR_CONST||(LA85_0 >= DEFINED_OP && LA85_0 <= DIGIT_STR)||LA85_0==FALSE||(LA85_0 >= HEX_CONST && LA85_0 <= IDENT)||LA85_0==LBRACKET||LA85_0==LPAREN||LA85_0==MINUS||LA85_0==M_REAL_CONST||LA85_0==NOT||LA85_0==OCT_CONST||LA85_0==PLUS||LA85_0==TRUE) ) {
alt85=1;
}
else if ( (LA85_0==COLON) ) {
alt85=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 85, 0, input);
throw nvae;
}
switch (alt85) {
case 1 :
// MFortranParser2018.g:1012:7: explicit_shape_spec_list
{
pushFollow(FOLLOW_explicit_shape_spec_list_in_component_array_spec4331);
explicit_shape_spec_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.component_array_spec(true);}
}
break;
case 2 :
// MFortranParser2018.g:1014:7: deferred_shape_spec_list
{
pushFollow(FOLLOW_deferred_shape_spec_list_in_component_array_spec4349);
deferred_shape_spec_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.component_array_spec(false);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_array_spec"
// $ANTLR start "proc_component_def_stmt"
// MFortranParser2018.g:1021:1: proc_component_def_stmt : (lbl= label )? PROCEDURE LPAREN ( proc_interface )? RPAREN COMMA proc_component_attr_spec_list COLON_COLON proc_decl_list end_of_stmt ;
public final void proc_component_def_stmt() throws RecognitionException {
Token PROCEDURE73=null;
Token lbl =null;
Token end_of_stmt74 =null;
boolean hasItf = false;
try {
// MFortranParser2018.g:1028:5: ( (lbl= label )? PROCEDURE LPAREN ( proc_interface )? RPAREN COMMA proc_component_attr_spec_list COLON_COLON proc_decl_list end_of_stmt )
// MFortranParser2018.g:1028:7: (lbl= label )? PROCEDURE LPAREN ( proc_interface )? RPAREN COMMA proc_component_attr_spec_list COLON_COLON proc_decl_list end_of_stmt
{
// MFortranParser2018.g:1028:7: (lbl= label )?
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==DIGIT_STR) ) {
alt86=1;
}
switch (alt86) {
case 1 :
// MFortranParser2018.g:1028:8: lbl= label
{
pushFollow(FOLLOW_label_in_proc_component_def_stmt4389);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PROCEDURE73=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_proc_component_def_stmt4401); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_proc_component_def_stmt4403); if (state.failed) return;
// MFortranParser2018.g:1029:24: ( proc_interface )?
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==CHARACTER||LA87_0==CLASS||LA87_0==COMPLEX||(LA87_0 >= DOUBLE && LA87_0 <= DOUBLEPRECISION)||LA87_0==IDENT||LA87_0==INTEGER||LA87_0==LOGICAL||LA87_0==REAL||LA87_0==TYPE) ) {
alt87=1;
}
switch (alt87) {
case 1 :
// MFortranParser2018.g:1029:26: proc_interface
{
pushFollow(FOLLOW_proc_interface_in_proc_component_def_stmt4407);
proc_interface();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasItf=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_proc_component_def_stmt4413); if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_proc_component_def_stmt4415); if (state.failed) return;
pushFollow(FOLLOW_proc_component_attr_spec_list_in_proc_component_def_stmt4423);
proc_component_attr_spec_list();
state._fsp--;
if (state.failed) return;
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_proc_component_def_stmt4425); if (state.failed) return;
pushFollow(FOLLOW_proc_decl_list_in_proc_component_def_stmt4427);
proc_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_proc_component_def_stmt4429);
end_of_stmt74=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_component_def_stmt(lbl, PROCEDURE73, end_of_stmt74, hasItf);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_component_def_stmt"
// $ANTLR start "proc_component_attr_spec"
// MFortranParser2018.g:1037:1: proc_component_attr_spec : ( POINTER | PASS ( LPAREN id= IDENT RPAREN )? | NOPASS | access_spec );
public final void proc_component_attr_spec() throws RecognitionException {
Token id=null;
Token POINTER75=null;
Token PASS76=null;
Token NOPASS77=null;
try {
// MFortranParser2018.g:1038:5: ( POINTER | PASS ( LPAREN id= IDENT RPAREN )? | NOPASS | access_spec )
int alt89=4;
switch ( input.LA(1) ) {
case POINTER:
{
alt89=1;
}
break;
case PASS:
{
alt89=2;
}
break;
case NOPASS:
{
alt89=3;
}
break;
case PRIVATE:
case PUBLIC:
{
alt89=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 89, 0, input);
throw nvae;
}
switch (alt89) {
case 1 :
// MFortranParser2018.g:1038:7: POINTER
{
POINTER75=(Token)match(input,POINTER,FOLLOW_POINTER_in_proc_component_attr_spec4458); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.proc_component_attr_spec(POINTER75, id,
MFPUtils.ATTR_POINTER);}
}
break;
case 2 :
// MFortranParser2018.g:1041:7: PASS ( LPAREN id= IDENT RPAREN )?
{
PASS76=(Token)match(input,PASS,FOLLOW_PASS_in_proc_component_attr_spec4476); if (state.failed) return;
// MFortranParser2018.g:1041:12: ( LPAREN id= IDENT RPAREN )?
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==LPAREN) ) {
alt88=1;
}
switch (alt88) {
case 1 :
// MFortranParser2018.g:1041:14: LPAREN id= IDENT RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_proc_component_attr_spec4480); if (state.failed) return;
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_proc_component_attr_spec4484); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_proc_component_attr_spec4486); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {MFPA.proc_component_attr_spec(PASS76, id,
MFPUtils.ATTR_PASS);}
}
break;
case 3 :
// MFortranParser2018.g:1044:7: NOPASS
{
NOPASS77=(Token)match(input,NOPASS,FOLLOW_NOPASS_in_proc_component_attr_spec4507); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.proc_component_attr_spec(NOPASS77, id,
MFPUtils.ATTR_NOPASS);}
}
break;
case 4 :
// MFortranParser2018.g:1047:7: access_spec
{
pushFollow(FOLLOW_access_spec_in_proc_component_attr_spec4525);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.proc_component_attr_spec(null, id,
MFPUtils.ATTR_ACCESS);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_component_attr_spec"
// $ANTLR start "proc_component_attr_spec_list"
// MFortranParser2018.g:1052:1: proc_component_attr_spec_list : proc_component_attr_spec ( COMMA proc_component_attr_spec )* ;
public final void proc_component_attr_spec_list() throws RecognitionException {
int numCAS = 1;
try {
// MFortranParser2018.g:1059:5: ( proc_component_attr_spec ( COMMA proc_component_attr_spec )* )
// MFortranParser2018.g:1059:7: proc_component_attr_spec ( COMMA proc_component_attr_spec )*
{
pushFollow(FOLLOW_proc_component_attr_spec_in_proc_component_attr_spec_list4560);
proc_component_attr_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1060:7: ( COMMA proc_component_attr_spec )*
loop90:
while (true) {
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==COMMA) ) {
alt90=1;
}
switch (alt90) {
case 1 :
// MFortranParser2018.g:1060:9: COMMA proc_component_attr_spec
{
match(input,COMMA,FOLLOW_COMMA_in_proc_component_attr_spec_list4571); if (state.failed) return;
pushFollow(FOLLOW_proc_component_attr_spec_in_proc_component_attr_spec_list4573);
proc_component_attr_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCAS++;}
}
break;
default :
break loop90;
}
}
}
if ( state.backtracking==0 ) {
MFPA.proc_component_attr_spec_list(numCAS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_component_attr_spec_list"
// $ANTLR start "component_initialization"
// MFortranParser2018.g:1071:1: component_initialization : ( EQUALS expr | EQ_GT null_init );
public final void component_initialization() throws RecognitionException {
try {
// MFortranParser2018.g:1075:5: ( EQUALS expr | EQ_GT null_init )
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==EQUALS) ) {
alt91=1;
}
else if ( (LA91_0==EQ_GT) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 91, 0, input);
throw nvae;
}
switch (alt91) {
case 1 :
// MFortranParser2018.g:1075:7: EQUALS expr
{
match(input,EQUALS,FOLLOW_EQUALS_in_component_initialization4602); if (state.failed) return;
pushFollow(FOLLOW_expr_in_component_initialization4604);
expr();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:1076:7: EQ_GT null_init
{
match(input,EQ_GT,FOLLOW_EQ_GT_in_component_initialization4612); if (state.failed) return;
pushFollow(FOLLOW_null_init_in_component_initialization4614);
null_init();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.component_initialization();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_initialization"
// $ANTLR start "private_components_stmt"
// MFortranParser2018.g:1082:1: private_components_stmt : (lbl= label )? PRIVATE end_of_stmt ;
public final void private_components_stmt() throws RecognitionException {
Token PRIVATE78=null;
Token lbl =null;
Token end_of_stmt79 =null;
try {
// MFortranParser2018.g:1088:5: ( (lbl= label )? PRIVATE end_of_stmt )
// MFortranParser2018.g:1088:7: (lbl= label )? PRIVATE end_of_stmt
{
// MFortranParser2018.g:1088:7: (lbl= label )?
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==DIGIT_STR) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// MFortranParser2018.g:1088:8: lbl= label
{
pushFollow(FOLLOW_label_in_private_components_stmt4645);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PRIVATE78=(Token)match(input,PRIVATE,FOLLOW_PRIVATE_in_private_components_stmt4657); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_private_components_stmt4659);
end_of_stmt79=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.private_components_stmt(lbl, PRIVATE78, end_of_stmt79);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "private_components_stmt"
// $ANTLR start "type_bound_procedure_part"
// MFortranParser2018.g:1096:1: type_bound_procedure_part : contains_stmt ( binding_private_stmt )? type_bound_proc_binding ( type_bound_proc_binding )* ;
public final void type_bound_procedure_part() throws RecognitionException {
int numTBPB = 1;
boolean hasBPS = false;
try {
// MFortranParser2018.g:1101:5: ( contains_stmt ( binding_private_stmt )? type_bound_proc_binding ( type_bound_proc_binding )* )
// MFortranParser2018.g:1101:7: contains_stmt ( binding_private_stmt )? type_bound_proc_binding ( type_bound_proc_binding )*
{
pushFollow(FOLLOW_contains_stmt_in_type_bound_procedure_part4692);
contains_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1101:21: ( binding_private_stmt )?
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==DIGIT_STR) ) {
int LA93_1 = input.LA(2);
if ( (LA93_1==PRIVATE) ) {
alt93=1;
}
}
else if ( (LA93_0==PRIVATE) ) {
alt93=1;
}
switch (alt93) {
case 1 :
// MFortranParser2018.g:1101:23: binding_private_stmt
{
pushFollow(FOLLOW_binding_private_stmt_in_type_bound_procedure_part4696);
binding_private_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasBPS=true;}
}
break;
}
pushFollow(FOLLOW_type_bound_proc_binding_in_type_bound_procedure_part4709);
type_bound_proc_binding();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1102:31: ( type_bound_proc_binding )*
loop94:
while (true) {
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==DIGIT_STR) ) {
int LA94_1 = input.LA(2);
if ( (LA94_1==FINAL||LA94_1==GENERIC||LA94_1==PROCEDURE) ) {
alt94=1;
}
}
else if ( (LA94_0==FINAL||LA94_0==GENERIC||LA94_0==PROCEDURE) ) {
alt94=1;
}
switch (alt94) {
case 1 :
// MFortranParser2018.g:1102:33: type_bound_proc_binding
{
pushFollow(FOLLOW_type_bound_proc_binding_in_type_bound_procedure_part4713);
type_bound_proc_binding();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numTBPB++;}
}
break;
default :
break loop94;
}
}
if ( state.backtracking==0 ) { MFPA.type_bound_procedure_part(numTBPB, hasBPS); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_bound_procedure_part"
// $ANTLR start "binding_private_stmt"
// MFortranParser2018.g:1109:1: binding_private_stmt : (lbl= label )? PRIVATE end_of_stmt ;
public final void binding_private_stmt() throws RecognitionException {
Token PRIVATE80=null;
Token lbl =null;
Token end_of_stmt81 =null;
try {
// MFortranParser2018.g:1115:5: ( (lbl= label )? PRIVATE end_of_stmt )
// MFortranParser2018.g:1115:7: (lbl= label )? PRIVATE end_of_stmt
{
// MFortranParser2018.g:1115:7: (lbl= label )?
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==DIGIT_STR) ) {
alt95=1;
}
switch (alt95) {
case 1 :
// MFortranParser2018.g:1115:8: lbl= label
{
pushFollow(FOLLOW_label_in_binding_private_stmt4761);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PRIVATE80=(Token)match(input,PRIVATE,FOLLOW_PRIVATE_in_binding_private_stmt4773); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_binding_private_stmt4775);
end_of_stmt81=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.binding_private_stmt(lbl, PRIVATE80, end_of_stmt81);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "binding_private_stmt"
// $ANTLR start "type_bound_proc_binding"
// MFortranParser2018.g:1123:1: type_bound_proc_binding : ( (lbl= label )? type_bound_procedure_stmt end_of_stmt | (lbl= label )? type_bound_generic_stmt end_of_stmt | (lbl= label )? final_procedure_stmt end_of_stmt );
public final void type_bound_proc_binding() throws RecognitionException {
Token lbl =null;
Token end_of_stmt82 =null;
Token end_of_stmt83 =null;
Token end_of_stmt84 =null;
try {
// MFortranParser2018.g:1129:5: ( (lbl= label )? type_bound_procedure_stmt end_of_stmt | (lbl= label )? type_bound_generic_stmt end_of_stmt | (lbl= label )? final_procedure_stmt end_of_stmt )
int alt99=3;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case PROCEDURE:
{
alt99=1;
}
break;
case GENERIC:
{
alt99=2;
}
break;
case FINAL:
{
alt99=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 99, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROCEDURE:
{
alt99=1;
}
break;
case GENERIC:
{
alt99=2;
}
break;
case FINAL:
{
alt99=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 99, 0, input);
throw nvae;
}
switch (alt99) {
case 1 :
// MFortranParser2018.g:1129:7: (lbl= label )? type_bound_procedure_stmt end_of_stmt
{
// MFortranParser2018.g:1129:7: (lbl= label )?
int alt96=2;
int LA96_0 = input.LA(1);
if ( (LA96_0==DIGIT_STR) ) {
alt96=1;
}
switch (alt96) {
case 1 :
// MFortranParser2018.g:1129:8: lbl= label
{
pushFollow(FOLLOW_label_in_type_bound_proc_binding4815);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_type_bound_procedure_stmt_in_type_bound_proc_binding4820);
type_bound_procedure_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_type_bound_proc_binding4822);
end_of_stmt82=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.type_bound_proc_binding(lbl,
MFPUtils.TBPB.PROCEDURE, end_of_stmt82);}
}
break;
case 2 :
// MFortranParser2018.g:1132:7: (lbl= label )? type_bound_generic_stmt end_of_stmt
{
// MFortranParser2018.g:1132:7: (lbl= label )?
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==DIGIT_STR) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// MFortranParser2018.g:1132:8: lbl= label
{
pushFollow(FOLLOW_label_in_type_bound_proc_binding4843);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_type_bound_generic_stmt_in_type_bound_proc_binding4848);
type_bound_generic_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_type_bound_proc_binding4850);
end_of_stmt83=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.type_bound_proc_binding(lbl,
MFPUtils.TBPB.GENERIC, end_of_stmt83);}
}
break;
case 3 :
// MFortranParser2018.g:1135:7: (lbl= label )? final_procedure_stmt end_of_stmt
{
// MFortranParser2018.g:1135:7: (lbl= label )?
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==DIGIT_STR) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// MFortranParser2018.g:1135:8: lbl= label
{
pushFollow(FOLLOW_label_in_type_bound_proc_binding4871);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_final_procedure_stmt_in_type_bound_proc_binding4876);
final_procedure_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_type_bound_proc_binding4878);
end_of_stmt84=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.type_bound_proc_binding(lbl,
MFPUtils.TBPB.FINAL, end_of_stmt84);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_bound_proc_binding"
// $ANTLR start "type_bound_procedure_stmt"
// MFortranParser2018.g:1145:1: type_bound_procedure_stmt : proc= PROCEDURE ( LPAREN tIN= IDENT RPAREN )? ( ( COMMA binding_attr_list )? COLON_COLON )? type_bound_proc_decl_list ;
public final void type_bound_procedure_stmt() throws RecognitionException {
Token proc=null;
Token tIN=null;
boolean hasBAL = false;
boolean hasCC = false;
boolean hasPN = false;
try {
// MFortranParser2018.g:1155:5: (proc= PROCEDURE ( LPAREN tIN= IDENT RPAREN )? ( ( COMMA binding_attr_list )? COLON_COLON )? type_bound_proc_decl_list )
// MFortranParser2018.g:1155:7: proc= PROCEDURE ( LPAREN tIN= IDENT RPAREN )? ( ( COMMA binding_attr_list )? COLON_COLON )? type_bound_proc_decl_list
{
proc=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_type_bound_procedure_stmt4917); if (state.failed) return;
// MFortranParser2018.g:1156:7: ( LPAREN tIN= IDENT RPAREN )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==LPAREN) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// MFortranParser2018.g:1156:9: LPAREN tIN= IDENT RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_type_bound_procedure_stmt4927); if (state.failed) return;
tIN=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_bound_procedure_stmt4931); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_type_bound_procedure_stmt4933); if (state.failed) return;
}
break;
}
// MFortranParser2018.g:1157:7: ( ( COMMA binding_attr_list )? COLON_COLON )?
int alt102=2;
int LA102_0 = input.LA(1);
if ( ((LA102_0 >= COLON_COLON && LA102_0 <= COMMA)) ) {
alt102=1;
}
switch (alt102) {
case 1 :
// MFortranParser2018.g:1157:9: ( COMMA binding_attr_list )? COLON_COLON
{
// MFortranParser2018.g:1157:9: ( COMMA binding_attr_list )?
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==COMMA) ) {
alt101=1;
}
switch (alt101) {
case 1 :
// MFortranParser2018.g:1157:10: COMMA binding_attr_list
{
match(input,COMMA,FOLLOW_COMMA_in_type_bound_procedure_stmt4946); if (state.failed) return;
pushFollow(FOLLOW_binding_attr_list_in_type_bound_procedure_stmt4948);
binding_attr_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasBAL=true;}
}
break;
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_type_bound_procedure_stmt4963); if (state.failed) return;
if ( state.backtracking==0 ) {hasCC=true;}
}
break;
}
pushFollow(FOLLOW_type_bound_proc_decl_list_in_type_bound_procedure_stmt4982);
type_bound_proc_decl_list();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.type_bound_procedure_stmt(
proc, tIN, hasBAL, hasCC);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_bound_procedure_stmt"
// $ANTLR start "type_bound_proc_decl"
// MFortranParser2018.g:1170:1: type_bound_proc_decl : tBN= IDENT ( EQ_GT tPN= IDENT )? ;
public final void type_bound_proc_decl() throws RecognitionException {
Token tBN=null;
Token tPN=null;
try {
// MFortranParser2018.g:1174:5: (tBN= IDENT ( EQ_GT tPN= IDENT )? )
// MFortranParser2018.g:1174:7: tBN= IDENT ( EQ_GT tPN= IDENT )?
{
tBN=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_bound_proc_decl5012); if (state.failed) return;
// MFortranParser2018.g:1175:7: ( EQ_GT tPN= IDENT )?
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==EQ_GT) ) {
alt103=1;
}
switch (alt103) {
case 1 :
// MFortranParser2018.g:1175:9: EQ_GT tPN= IDENT
{
match(input,EQ_GT,FOLLOW_EQ_GT_in_type_bound_proc_decl5022); if (state.failed) return;
tPN=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_bound_proc_decl5026); if (state.failed) return;
}
break;
}
}
if ( state.backtracking==0 ) {
MFPA.type_bound_proc_decl(tBN, tPN);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_bound_proc_decl"
// $ANTLR start "type_bound_proc_decl_list"
// MFortranParser2018.g:1178:1: type_bound_proc_decl_list : type_bound_proc_decl ( COMMA type_bound_proc_decl )* ;
public final void type_bound_proc_decl_list() throws RecognitionException {
int numPD = 1;
try {
// MFortranParser2018.g:1185:5: ( type_bound_proc_decl ( COMMA type_bound_proc_decl )* )
// MFortranParser2018.g:1185:7: type_bound_proc_decl ( COMMA type_bound_proc_decl )*
{
pushFollow(FOLLOW_type_bound_proc_decl_in_type_bound_proc_decl_list5057);
type_bound_proc_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1186:7: ( COMMA type_bound_proc_decl )*
loop104:
while (true) {
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==COMMA) ) {
alt104=1;
}
switch (alt104) {
case 1 :
// MFortranParser2018.g:1186:8: COMMA type_bound_proc_decl
{
match(input,COMMA,FOLLOW_COMMA_in_type_bound_proc_decl_list5067); if (state.failed) return;
pushFollow(FOLLOW_type_bound_proc_decl_in_type_bound_proc_decl_list5069);
type_bound_proc_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPD++;}
}
break;
default :
break loop104;
}
}
}
if ( state.backtracking==0 ) {
MFPA.type_bound_proc_decl_list(numPD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_bound_proc_decl_list"
// $ANTLR start "type_bound_generic_stmt"
// MFortranParser2018.g:1193:1: type_bound_generic_stmt : GENERIC ( COMMA access_spec )? COLON_COLON generic_spec EQ_GT generic_name_list ;
public final void type_bound_generic_stmt() throws RecognitionException {
Token GENERIC85=null;
boolean hasAS = false;
try {
// MFortranParser2018.g:1197:5: ( GENERIC ( COMMA access_spec )? COLON_COLON generic_spec EQ_GT generic_name_list )
// MFortranParser2018.g:1197:7: GENERIC ( COMMA access_spec )? COLON_COLON generic_spec EQ_GT generic_name_list
{
GENERIC85=(Token)match(input,GENERIC,FOLLOW_GENERIC_in_type_bound_generic_stmt5096); if (state.failed) return;
// MFortranParser2018.g:1197:15: ( COMMA access_spec )?
int alt105=2;
int LA105_0 = input.LA(1);
if ( (LA105_0==COMMA) ) {
alt105=1;
}
switch (alt105) {
case 1 :
// MFortranParser2018.g:1197:17: COMMA access_spec
{
match(input,COMMA,FOLLOW_COMMA_in_type_bound_generic_stmt5100); if (state.failed) return;
pushFollow(FOLLOW_access_spec_in_type_bound_generic_stmt5102);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasAS=true;}
}
break;
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_type_bound_generic_stmt5114); if (state.failed) return;
pushFollow(FOLLOW_generic_spec_in_type_bound_generic_stmt5116);
generic_spec();
state._fsp--;
if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_type_bound_generic_stmt5118); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_type_bound_generic_stmt5120);
generic_name_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_bound_generic_stmt(GENERIC85, hasAS);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_bound_generic_stmt"
// $ANTLR start "binding_attr"
// MFortranParser2018.g:1206:1: binding_attr : ( PASS ( LPAREN IDENT RPAREN )? | NOPASS | NON_OVERRIDABLE | DEFERRED | access_spec );
public final void binding_attr() throws RecognitionException {
Token IDENT86=null;
Token PASS87=null;
Token NOPASS88=null;
Token NON_OVERRIDABLE89=null;
Token DEFERRED90=null;
Token id = null;
try {
// MFortranParser2018.g:1210:5: ( PASS ( LPAREN IDENT RPAREN )? | NOPASS | NON_OVERRIDABLE | DEFERRED | access_spec )
int alt107=5;
switch ( input.LA(1) ) {
case PASS:
{
alt107=1;
}
break;
case NOPASS:
{
alt107=2;
}
break;
case NON_OVERRIDABLE:
{
alt107=3;
}
break;
case DEFERRED:
{
alt107=4;
}
break;
case PRIVATE:
case PUBLIC:
{
alt107=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 107, 0, input);
throw nvae;
}
switch (alt107) {
case 1 :
// MFortranParser2018.g:1210:7: PASS ( LPAREN IDENT RPAREN )?
{
PASS87=(Token)match(input,PASS,FOLLOW_PASS_in_binding_attr5153); if (state.failed) return;
// MFortranParser2018.g:1210:12: ( LPAREN IDENT RPAREN )?
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==LPAREN) ) {
alt106=1;
}
switch (alt106) {
case 1 :
// MFortranParser2018.g:1210:14: LPAREN IDENT RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_binding_attr5157); if (state.failed) return;
IDENT86=(Token)match(input,IDENT,FOLLOW_IDENT_in_binding_attr5159); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_binding_attr5161); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT86;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.binding_attr(PASS87,
MFPUtils.ATTR_PASS, id); }
}
break;
case 2 :
// MFortranParser2018.g:1213:7: NOPASS
{
NOPASS88=(Token)match(input,NOPASS,FOLLOW_NOPASS_in_binding_attr5183); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.binding_attr(NOPASS88,
MFPUtils.ATTR_NOPASS, id); }
}
break;
case 3 :
// MFortranParser2018.g:1216:7: NON_OVERRIDABLE
{
NON_OVERRIDABLE89=(Token)match(input,NON_OVERRIDABLE,FOLLOW_NON_OVERRIDABLE_in_binding_attr5201); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.binding_attr(NON_OVERRIDABLE89,
MFPUtils.ATTR_NON_OVERRIDABLE, id); }
}
break;
case 4 :
// MFortranParser2018.g:1219:7: DEFERRED
{
DEFERRED90=(Token)match(input,DEFERRED,FOLLOW_DEFERRED_in_binding_attr5219); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.binding_attr(DEFERRED90,
MFPUtils.ATTR_DEFERRED, id); }
}
break;
case 5 :
// MFortranParser2018.g:1222:7: access_spec
{
pushFollow(FOLLOW_access_spec_in_binding_attr5237);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.binding_attr(null,
MFPUtils.ATTR_ACCESS, id); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "binding_attr"
// $ANTLR start "binding_attr_list"
// MFortranParser2018.g:1227:1: binding_attr_list : binding_attr ( COMMA binding_attr )* ;
public final void binding_attr_list() throws RecognitionException {
int numBA = 1;
try {
// MFortranParser2018.g:1234:5: ( binding_attr ( COMMA binding_attr )* )
// MFortranParser2018.g:1234:7: binding_attr ( COMMA binding_attr )*
{
pushFollow(FOLLOW_binding_attr_in_binding_attr_list5272);
binding_attr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1235:7: ( COMMA binding_attr )*
loop108:
while (true) {
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==COMMA) ) {
alt108=1;
}
switch (alt108) {
case 1 :
// MFortranParser2018.g:1235:9: COMMA binding_attr
{
match(input,COMMA,FOLLOW_COMMA_in_binding_attr_list5283); if (state.failed) return;
pushFollow(FOLLOW_binding_attr_in_binding_attr_list5285);
binding_attr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numBA++;}
}
break;
default :
break loop108;
}
}
}
if ( state.backtracking==0 ) {
MFPA.binding_attr_list(numBA);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "binding_attr_list"
// $ANTLR start "final_procedure_stmt"
// MFortranParser2018.g:1242:1: final_procedure_stmt : FINAL ( COLON_COLON )? generic_name_list ;
public final void final_procedure_stmt() throws RecognitionException {
Token FINAL91=null;
try {
// MFortranParser2018.g:1243:5: ( FINAL ( COLON_COLON )? generic_name_list )
// MFortranParser2018.g:1243:7: FINAL ( COLON_COLON )? generic_name_list
{
FINAL91=(Token)match(input,FINAL,FOLLOW_FINAL_in_final_procedure_stmt5309); if (state.failed) return;
// MFortranParser2018.g:1243:13: ( COLON_COLON )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==COLON_COLON) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// MFortranParser2018.g:1243:15: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_final_procedure_stmt5313); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_final_procedure_stmt5318);
generic_name_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.final_procedure_stmt(FINAL91); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "final_procedure_stmt"
// $ANTLR start "derived_type_spec"
// MFortranParser2018.g:1250:1: derived_type_spec : IDENT ( LPAREN type_param_spec_list RPAREN )? ;
public final void derived_type_spec() throws RecognitionException {
Token IDENT92=null;
boolean hasList = false;
try {
// MFortranParser2018.g:1254:5: ( IDENT ( LPAREN type_param_spec_list RPAREN )? )
// MFortranParser2018.g:1254:7: IDENT ( LPAREN type_param_spec_list RPAREN )?
{
IDENT92=(Token)match(input,IDENT,FOLLOW_IDENT_in_derived_type_spec5352); if (state.failed) return;
// MFortranParser2018.g:1254:13: ( LPAREN type_param_spec_list RPAREN )?
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==LPAREN) ) {
alt110=1;
}
switch (alt110) {
case 1 :
// MFortranParser2018.g:1254:15: LPAREN type_param_spec_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_derived_type_spec5356); if (state.failed) return;
pushFollow(FOLLOW_type_param_spec_list_in_derived_type_spec5358);
type_param_spec_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasList=true;}
match(input,RPAREN,FOLLOW_RPAREN_in_derived_type_spec5362); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.derived_type_spec(IDENT92, hasList); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "derived_type_spec"
// $ANTLR start "type_param_spec"
// MFortranParser2018.g:1261:1: type_param_spec : ( keyword EQUALS )? type_param_value ;
public final void type_param_spec() throws RecognitionException {
Token keyword93 =null;
Token keyWord=null;
try {
// MFortranParser2018.g:1265:5: ( ( keyword EQUALS )? type_param_value )
// MFortranParser2018.g:1265:7: ( keyword EQUALS )? type_param_value
{
// MFortranParser2018.g:1265:7: ( keyword EQUALS )?
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==IDENT) ) {
int LA111_1 = input.LA(2);
if ( (LA111_1==EQUALS) ) {
alt111=1;
}
}
switch (alt111) {
case 1 :
// MFortranParser2018.g:1265:9: keyword EQUALS
{
pushFollow(FOLLOW_keyword_in_type_param_spec5400);
keyword93=keyword();
state._fsp--;
if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_type_param_spec5402); if (state.failed) return;
if ( state.backtracking==0 ) {keyWord=keyword93;}
}
break;
}
pushFollow(FOLLOW_type_param_value_in_type_param_spec5408);
type_param_value();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_param_spec(keyWord);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_spec"
// $ANTLR start "type_param_spec_list"
// MFortranParser2018.g:1269:1: type_param_spec_list : type_param_spec ( COMMA type_param_spec )* ;
public final void type_param_spec_list() throws RecognitionException {
int numTPS = 1;
try {
// MFortranParser2018.g:1276:5: ( type_param_spec ( COMMA type_param_spec )* )
// MFortranParser2018.g:1276:7: type_param_spec ( COMMA type_param_spec )*
{
pushFollow(FOLLOW_type_param_spec_in_type_param_spec_list5443);
type_param_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1277:7: ( COMMA type_param_spec )*
loop112:
while (true) {
int alt112=2;
int LA112_0 = input.LA(1);
if ( (LA112_0==COMMA) ) {
alt112=1;
}
switch (alt112) {
case 1 :
// MFortranParser2018.g:1277:9: COMMA type_param_spec
{
match(input,COMMA,FOLLOW_COMMA_in_type_param_spec_list5454); if (state.failed) return;
pushFollow(FOLLOW_type_param_spec_in_type_param_spec_list5456);
type_param_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numTPS++;}
}
break;
default :
break loop112;
}
}
}
if ( state.backtracking==0 ) {
MFPA.type_param_spec_list(numTPS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_param_spec_list"
// $ANTLR start "structure_constructor"
// MFortranParser2018.g:1290:1: structure_constructor : IDENT LPAREN type_param_spec_list RPAREN ( LPAREN ( component_spec_list )? RPAREN )? ;
public final void structure_constructor() throws RecognitionException {
Token IDENT94=null;
try {
// MFortranParser2018.g:1291:5: ( IDENT LPAREN type_param_spec_list RPAREN ( LPAREN ( component_spec_list )? RPAREN )? )
// MFortranParser2018.g:1291:7: IDENT LPAREN type_param_spec_list RPAREN ( LPAREN ( component_spec_list )? RPAREN )?
{
IDENT94=(Token)match(input,IDENT,FOLLOW_IDENT_in_structure_constructor5479); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_structure_constructor5481); if (state.failed) return;
pushFollow(FOLLOW_type_param_spec_list_in_structure_constructor5483);
type_param_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_structure_constructor5485); if (state.failed) return;
// MFortranParser2018.g:1292:7: ( LPAREN ( component_spec_list )? RPAREN )?
int alt114=2;
int LA114_0 = input.LA(1);
if ( (LA114_0==LPAREN) ) {
alt114=1;
}
switch (alt114) {
case 1 :
// MFortranParser2018.g:1292:8: LPAREN ( component_spec_list )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_structure_constructor5494); if (state.failed) return;
// MFortranParser2018.g:1292:15: ( component_spec_list )?
int alt113=2;
int LA113_0 = input.LA(1);
if ( (LA113_0==BIN_CONST||LA113_0==CHAR_CONST||(LA113_0 >= DEFINED_OP && LA113_0 <= DIGIT_STR)||LA113_0==FALSE||(LA113_0 >= HEX_CONST && LA113_0 <= IDENT)||LA113_0==LBRACKET||LA113_0==LPAREN||LA113_0==MINUS||LA113_0==M_REAL_CONST||LA113_0==NOT||LA113_0==OCT_CONST||LA113_0==PLUS||LA113_0==TRUE) ) {
alt113=1;
}
switch (alt113) {
case 1 :
// MFortranParser2018.g:1292:17: component_spec_list
{
pushFollow(FOLLOW_component_spec_list_in_structure_constructor5498);
component_spec_list();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_structure_constructor5503); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.structure_constructor(IDENT94); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "structure_constructor"
// $ANTLR start "component_spec"
// MFortranParser2018.g:1299:1: component_spec : ( keyword EQUALS )? component_data_source ;
public final void component_spec() throws RecognitionException {
Token keyword95 =null;
Token keyWord = null;
try {
// MFortranParser2018.g:1303:5: ( ( keyword EQUALS )? component_data_source )
// MFortranParser2018.g:1303:7: ( keyword EQUALS )? component_data_source
{
// MFortranParser2018.g:1303:7: ( keyword EQUALS )?
int alt115=2;
int LA115_0 = input.LA(1);
if ( (LA115_0==IDENT) ) {
int LA115_1 = input.LA(2);
if ( (LA115_1==EQUALS) ) {
alt115=1;
}
}
switch (alt115) {
case 1 :
// MFortranParser2018.g:1303:9: keyword EQUALS
{
pushFollow(FOLLOW_keyword_in_component_spec5540);
keyword95=keyword();
state._fsp--;
if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_component_spec5542); if (state.failed) return;
if ( state.backtracking==0 ) { keyWord=keyword95; }
}
break;
}
pushFollow(FOLLOW_component_data_source_in_component_spec5548);
component_data_source();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.component_spec(keyWord); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_spec"
// $ANTLR start "component_spec_list"
// MFortranParser2018.g:1307:1: component_spec_list : component_spec ( COMMA component_spec )* ;
public final void component_spec_list() throws RecognitionException {
int numCS = 1;
try {
// MFortranParser2018.g:1314:5: ( component_spec ( COMMA component_spec )* )
// MFortranParser2018.g:1314:7: component_spec ( COMMA component_spec )*
{
pushFollow(FOLLOW_component_spec_in_component_spec_list5583);
component_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1315:7: ( COMMA component_spec )*
loop116:
while (true) {
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==COMMA) ) {
alt116=1;
}
switch (alt116) {
case 1 :
// MFortranParser2018.g:1315:9: COMMA component_spec
{
match(input,COMMA,FOLLOW_COMMA_in_component_spec_list5594); if (state.failed) return;
pushFollow(FOLLOW_component_spec_in_component_spec_list5596);
component_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCS++;}
}
break;
default :
break loop116;
}
}
}
if ( state.backtracking==0 ) {
MFPA.component_spec_list(numCS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_spec_list"
// $ANTLR start "component_data_source"
// MFortranParser2018.g:1323:1: component_data_source : expr ;
public final void component_data_source() throws RecognitionException {
try {
// MFortranParser2018.g:1324:5: ( expr )
// MFortranParser2018.g:1324:7: expr
{
pushFollow(FOLLOW_expr_in_component_data_source5619);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.component_data_source(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "component_data_source"
// $ANTLR start "enum_def"
// MFortranParser2018.g:1330:1: enum_def : enum_def_stmt enumerator_def_stmt ( enumerator_def_stmt )* end_enum_stmt ;
public final void enum_def() throws RecognitionException {
int numEDS = 1;
try {
// MFortranParser2018.g:1337:5: ( enum_def_stmt enumerator_def_stmt ( enumerator_def_stmt )* end_enum_stmt )
// MFortranParser2018.g:1337:7: enum_def_stmt enumerator_def_stmt ( enumerator_def_stmt )* end_enum_stmt
{
pushFollow(FOLLOW_enum_def_stmt_in_enum_def5648);
enum_def_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_enumerator_def_stmt_in_enum_def5657);
enumerator_def_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1339:7: ( enumerator_def_stmt )*
loop117:
while (true) {
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==DIGIT_STR) ) {
int LA117_1 = input.LA(2);
if ( (LA117_1==ENUMERATOR) ) {
alt117=1;
}
}
else if ( (LA117_0==ENUMERATOR) ) {
alt117=1;
}
switch (alt117) {
case 1 :
// MFortranParser2018.g:1339:9: enumerator_def_stmt
{
pushFollow(FOLLOW_enumerator_def_stmt_in_enum_def5667);
enumerator_def_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numEDS++;}
}
break;
default :
break loop117;
}
}
pushFollow(FOLLOW_end_enum_stmt_in_enum_def5680);
end_enum_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.enum_def(numEDS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "enum_def"
// $ANTLR start "enum_def_stmt"
// MFortranParser2018.g:1346:1: enum_def_stmt : (lbl= label )? ENUM COMMA BIND LPAREN IDENT RPAREN end_of_stmt ;
public final void enum_def_stmt() throws RecognitionException {
Token ENUM96=null;
Token BIND97=null;
Token IDENT98=null;
Token lbl =null;
Token end_of_stmt99 =null;
try {
// MFortranParser2018.g:1352:5: ( (lbl= label )? ENUM COMMA BIND LPAREN IDENT RPAREN end_of_stmt )
// MFortranParser2018.g:1352:7: (lbl= label )? ENUM COMMA BIND LPAREN IDENT RPAREN end_of_stmt
{
// MFortranParser2018.g:1352:7: (lbl= label )?
int alt118=2;
int LA118_0 = input.LA(1);
if ( (LA118_0==DIGIT_STR) ) {
alt118=1;
}
switch (alt118) {
case 1 :
// MFortranParser2018.g:1352:8: lbl= label
{
pushFollow(FOLLOW_label_in_enum_def_stmt5711);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ENUM96=(Token)match(input,ENUM,FOLLOW_ENUM_in_enum_def_stmt5730); if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_enum_def_stmt5732); if (state.failed) return;
BIND97=(Token)match(input,BIND,FOLLOW_BIND_in_enum_def_stmt5734); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_enum_def_stmt5736); if (state.failed) return;
IDENT98=(Token)match(input,IDENT,FOLLOW_IDENT_in_enum_def_stmt5738); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_enum_def_stmt5740); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_enum_def_stmt5742);
end_of_stmt99=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.enum_def_stmt(
lbl, ENUM96, BIND97, IDENT98, end_of_stmt99);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "enum_def_stmt"
// $ANTLR start "enumerator_def_stmt"
// MFortranParser2018.g:1362:1: enumerator_def_stmt : (lbl= label )? ENUMERATOR ( COLON_COLON )? enumerator_list end_of_stmt ;
public final void enumerator_def_stmt() throws RecognitionException {
Token ENUMERATOR100=null;
Token lbl =null;
Token end_of_stmt101 =null;
try {
// MFortranParser2018.g:1368:5: ( (lbl= label )? ENUMERATOR ( COLON_COLON )? enumerator_list end_of_stmt )
// MFortranParser2018.g:1368:7: (lbl= label )? ENUMERATOR ( COLON_COLON )? enumerator_list end_of_stmt
{
// MFortranParser2018.g:1368:7: (lbl= label )?
int alt119=2;
int LA119_0 = input.LA(1);
if ( (LA119_0==DIGIT_STR) ) {
alt119=1;
}
switch (alt119) {
case 1 :
// MFortranParser2018.g:1368:8: lbl= label
{
pushFollow(FOLLOW_label_in_enumerator_def_stmt5783);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ENUMERATOR100=(Token)match(input,ENUMERATOR,FOLLOW_ENUMERATOR_in_enumerator_def_stmt5795); if (state.failed) return;
// MFortranParser2018.g:1369:18: ( COLON_COLON )?
int alt120=2;
int LA120_0 = input.LA(1);
if ( (LA120_0==COLON_COLON) ) {
alt120=1;
}
switch (alt120) {
case 1 :
// MFortranParser2018.g:1369:20: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_enumerator_def_stmt5799); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_enumerator_list_in_enumerator_def_stmt5804);
enumerator_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_enumerator_def_stmt5806);
end_of_stmt101=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.enumerator_def_stmt(
lbl, ENUMERATOR100, end_of_stmt101); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "enumerator_def_stmt"
// $ANTLR start "enumerator"
// MFortranParser2018.g:1379:1: enumerator : IDENT ( EQUALS expr )? ;
public final void enumerator() throws RecognitionException {
Token IDENT102=null;
boolean hasExpr = false;
try {
// MFortranParser2018.g:1383:5: ( IDENT ( EQUALS expr )? )
// MFortranParser2018.g:1383:7: IDENT ( EQUALS expr )?
{
IDENT102=(Token)match(input,IDENT,FOLLOW_IDENT_in_enumerator5839); if (state.failed) return;
// MFortranParser2018.g:1383:13: ( EQUALS expr )?
int alt121=2;
int LA121_0 = input.LA(1);
if ( (LA121_0==EQUALS) ) {
alt121=1;
}
switch (alt121) {
case 1 :
// MFortranParser2018.g:1383:15: EQUALS expr
{
match(input,EQUALS,FOLLOW_EQUALS_in_enumerator5843); if (state.failed) return;
pushFollow(FOLLOW_expr_in_enumerator5845);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasExpr = true; }
}
break;
}
if ( state.backtracking==0 ) { MFPA.enumerator(IDENT102, hasExpr); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "enumerator"
// $ANTLR start "enumerator_list"
// MFortranParser2018.g:1387:1: enumerator_list : enumerator ( COMMA enumerator )* ;
public final void enumerator_list() throws RecognitionException {
int numE = 1;
try {
// MFortranParser2018.g:1394:5: ( enumerator ( COMMA enumerator )* )
// MFortranParser2018.g:1394:7: enumerator ( COMMA enumerator )*
{
pushFollow(FOLLOW_enumerator_in_enumerator_list5883);
enumerator();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1395:7: ( COMMA enumerator )*
loop122:
while (true) {
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==COMMA) ) {
alt122=1;
}
switch (alt122) {
case 1 :
// MFortranParser2018.g:1395:9: COMMA enumerator
{
match(input,COMMA,FOLLOW_COMMA_in_enumerator_list5893); if (state.failed) return;
pushFollow(FOLLOW_enumerator_in_enumerator_list5895);
enumerator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numE++;}
}
break;
default :
break loop122;
}
}
}
if ( state.backtracking==0 ) {
MFPA.enumerator_list(numE);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "enumerator_list"
// $ANTLR start "end_enum_stmt"
// MFortranParser2018.g:1401:1: end_enum_stmt : (lbl= label )? END ENUM end_of_stmt ;
public final void end_enum_stmt() throws RecognitionException {
Token END103=null;
Token ENUM104=null;
Token lbl =null;
Token end_of_stmt105 =null;
try {
// MFortranParser2018.g:1407:5: ( (lbl= label )? END ENUM end_of_stmt )
// MFortranParser2018.g:1407:7: (lbl= label )? END ENUM end_of_stmt
{
// MFortranParser2018.g:1407:7: (lbl= label )?
int alt123=2;
int LA123_0 = input.LA(1);
if ( (LA123_0==DIGIT_STR) ) {
alt123=1;
}
switch (alt123) {
case 1 :
// MFortranParser2018.g:1407:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_enum_stmt5929);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END103=(Token)match(input,END,FOLLOW_END_in_end_enum_stmt5941); if (state.failed) return;
ENUM104=(Token)match(input,ENUM,FOLLOW_ENUM_in_end_enum_stmt5943); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_end_enum_stmt5945);
end_of_stmt105=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_enum_stmt(lbl, END103, ENUM104, end_of_stmt105); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_enum_stmt"
// $ANTLR start "boz_literal_constant"
// MFortranParser2018.g:1415:1: boz_literal_constant : ( BIN_CONST | OCT_CONST | HEX_CONST );
public final void boz_literal_constant() throws RecognitionException {
Token BIN_CONST106=null;
Token OCT_CONST107=null;
Token HEX_CONST108=null;
try {
// MFortranParser2018.g:1416:5: ( BIN_CONST | OCT_CONST | HEX_CONST )
int alt124=3;
switch ( input.LA(1) ) {
case BIN_CONST:
{
alt124=1;
}
break;
case OCT_CONST:
{
alt124=2;
}
break;
case HEX_CONST:
{
alt124=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 124, 0, input);
throw nvae;
}
switch (alt124) {
case 1 :
// MFortranParser2018.g:1416:7: BIN_CONST
{
BIN_CONST106=(Token)match(input,BIN_CONST,FOLLOW_BIN_CONST_in_boz_literal_constant5973); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.boz_literal_constant(BIN_CONST106); }
}
break;
case 2 :
// MFortranParser2018.g:1417:7: OCT_CONST
{
OCT_CONST107=(Token)match(input,OCT_CONST,FOLLOW_OCT_CONST_in_boz_literal_constant5983); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.boz_literal_constant(OCT_CONST107); }
}
break;
case 3 :
// MFortranParser2018.g:1418:7: HEX_CONST
{
HEX_CONST108=(Token)match(input,HEX_CONST,FOLLOW_HEX_CONST_in_boz_literal_constant5994); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.boz_literal_constant(HEX_CONST108); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "boz_literal_constant"
// $ANTLR start "array_constructor"
// MFortranParser2018.g:1433:1: array_constructor : ( LPAREN SLASH ac_spec SLASH RPAREN | LBRACKET ac_spec RBRACKET );
public final void array_constructor() throws RecognitionException {
try {
// MFortranParser2018.g:1437:5: ( LPAREN SLASH ac_spec SLASH RPAREN | LBRACKET ac_spec RBRACKET )
int alt125=2;
int LA125_0 = input.LA(1);
if ( (LA125_0==LPAREN) ) {
alt125=1;
}
else if ( (LA125_0==LBRACKET) ) {
alt125=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 125, 0, input);
throw nvae;
}
switch (alt125) {
case 1 :
// MFortranParser2018.g:1437:7: LPAREN SLASH ac_spec SLASH RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_array_constructor6025); if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_array_constructor6027); if (state.failed) return;
pushFollow(FOLLOW_ac_spec_in_array_constructor6029);
ac_spec();
state._fsp--;
if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_array_constructor6031); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_array_constructor6033); if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:1438:7: LBRACKET ac_spec RBRACKET
{
match(input,LBRACKET,FOLLOW_LBRACKET_in_array_constructor6041); if (state.failed) return;
pushFollow(FOLLOW_ac_spec_in_array_constructor6043);
ac_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_array_constructor6045); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.array_constructor();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "array_constructor"
// $ANTLR start "ac_spec"
// MFortranParser2018.g:1444:1: ac_spec options {backtrack=true; } : ( type_spec COLON_COLON ( ac_value_list )? | ac_value_list );
public final void ac_spec() throws RecognitionException {
boolean hsACVal = false;
boolean hasTypeSpec = false;
try {
// MFortranParser2018.g:1453:5: ( type_spec COLON_COLON ( ac_value_list )? | ac_value_list )
int alt127=2;
switch ( input.LA(1) ) {
case CHARACTER:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case INTEGER:
case LOGICAL:
case REAL:
{
alt127=1;
}
break;
case IDENT:
{
int LA127_9 = input.LA(2);
if ( (synpred6_MFortranParser2018()) ) {
alt127=1;
}
else if ( (true) ) {
alt127=2;
}
}
break;
case BIN_CONST:
case CHAR_CONST:
case DEFINED_OP:
case DIGIT_STR:
case FALSE:
case HEX_CONST:
case LBRACKET:
case LPAREN:
case MINUS:
case M_REAL_CONST:
case NOT:
case OCT_CONST:
case PLUS:
case TRUE:
{
alt127=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 127, 0, input);
throw nvae;
}
switch (alt127) {
case 1 :
// MFortranParser2018.g:1453:7: type_spec COLON_COLON ( ac_value_list )?
{
pushFollow(FOLLOW_type_spec_in_ac_spec6080);
type_spec();
state._fsp--;
if (state.failed) return;
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_ac_spec6082); if (state.failed) return;
// MFortranParser2018.g:1454:6: ( ac_value_list )?
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==BIN_CONST||LA126_0==CHAR_CONST||(LA126_0 >= DEFINED_OP && LA126_0 <= DIGIT_STR)||LA126_0==FALSE||(LA126_0 >= HEX_CONST && LA126_0 <= IDENT)||LA126_0==LBRACKET||LA126_0==LPAREN||LA126_0==MINUS||LA126_0==M_REAL_CONST||LA126_0==NOT||LA126_0==OCT_CONST||LA126_0==PLUS||LA126_0==TRUE) ) {
alt126=1;
}
switch (alt126) {
case 1 :
// MFortranParser2018.g:1454:7: ac_value_list
{
pushFollow(FOLLOW_ac_value_list_in_ac_spec6091);
ac_value_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hsACVal = true;}
}
break;
}
if ( state.backtracking==0 ) {hasTypeSpec = true;}
}
break;
case 2 :
// MFortranParser2018.g:1456:7: ac_value_list
{
pushFollow(FOLLOW_ac_value_list_in_ac_spec6111);
ac_value_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hsACVal = true;}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.ac_spec(hasTypeSpec, hsACVal);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "ac_spec"
// $ANTLR start "ac_value"
// MFortranParser2018.g:1468:1: ac_value options {backtrack=true; } : ( expr | ac_implied_do );
public final void ac_value() throws RecognitionException {
try {
// MFortranParser2018.g:1473:5: ( expr | ac_implied_do )
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==BIN_CONST||LA128_0==CHAR_CONST||(LA128_0 >= DEFINED_OP && LA128_0 <= DIGIT_STR)||LA128_0==FALSE||(LA128_0 >= HEX_CONST && LA128_0 <= IDENT)||LA128_0==LBRACKET||LA128_0==MINUS||LA128_0==M_REAL_CONST||LA128_0==NOT||LA128_0==OCT_CONST||LA128_0==PLUS||LA128_0==TRUE) ) {
alt128=1;
}
else if ( (LA128_0==LPAREN) ) {
int LA128_9 = input.LA(2);
if ( (synpred7_MFortranParser2018()) ) {
alt128=1;
}
else if ( (true) ) {
alt128=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 128, 0, input);
throw nvae;
}
switch (alt128) {
case 1 :
// MFortranParser2018.g:1473:7: expr
{
pushFollow(FOLLOW_expr_in_ac_value6147);
expr();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:1474:7: ac_implied_do
{
pushFollow(FOLLOW_ac_implied_do_in_ac_value6155);
ac_implied_do();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.ac_value();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "ac_value"
// $ANTLR start "ac_value_list"
// MFortranParser2018.g:1477:1: ac_value_list : ac_value ( COMMA ac_value )* ;
public final void ac_value_list() throws RecognitionException {
int numAV = 1;
try {
// MFortranParser2018.g:1484:5: ( ac_value ( COMMA ac_value )* )
// MFortranParser2018.g:1484:7: ac_value ( COMMA ac_value )*
{
pushFollow(FOLLOW_ac_value_in_ac_value_list6180);
ac_value();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1485:7: ( COMMA ac_value )*
loop129:
while (true) {
int alt129=2;
int LA129_0 = input.LA(1);
if ( (LA129_0==COMMA) ) {
int LA129_2 = input.LA(2);
if ( (LA129_2==IDENT) ) {
int LA129_3 = input.LA(3);
if ( (LA129_3==EOF||LA129_3==AND||LA129_3==ASTERISK||LA129_3==CHAR_CONST||LA129_3==COMMA||LA129_3==DEFINED_OP||LA129_3==EQ||(LA129_3 >= EQV && LA129_3 <= EQ_EQ)||LA129_3==GE||(LA129_3 >= GREATERTHAN && LA129_3 <= GT)||(LA129_3 >= LBRACKET && LA129_3 <= LE)||(LA129_3 >= LESSTHAN && LA129_3 <= LESSTHAN_EQ)||(LA129_3 >= LPAREN && LA129_3 <= LT)||LA129_3==MINUS||(LA129_3 >= NE && LA129_3 <= NEQV)||LA129_3==OR||LA129_3==PERCENT||LA129_3==PLUS||LA129_3==POWER||LA129_3==RBRACKET||(LA129_3 >= SLASH && LA129_3 <= SLASH_SLASH)) ) {
alt129=1;
}
}
else if ( (LA129_2==BIN_CONST||LA129_2==CHAR_CONST||(LA129_2 >= DEFINED_OP && LA129_2 <= DIGIT_STR)||LA129_2==FALSE||LA129_2==HEX_CONST||LA129_2==LBRACKET||LA129_2==LPAREN||LA129_2==MINUS||LA129_2==M_REAL_CONST||LA129_2==NOT||LA129_2==OCT_CONST||LA129_2==PLUS||LA129_2==TRUE) ) {
alt129=1;
}
}
switch (alt129) {
case 1 :
// MFortranParser2018.g:1485:9: COMMA ac_value
{
match(input,COMMA,FOLLOW_COMMA_in_ac_value_list6191); if (state.failed) return;
pushFollow(FOLLOW_ac_value_in_ac_value_list6193);
ac_value();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAV++;}
}
break;
default :
break loop129;
}
}
}
if ( state.backtracking==0 ) {
MFPA.ac_value_list(numAV);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "ac_value_list"
// $ANTLR start "ac_implied_do"
// MFortranParser2018.g:1491:1: ac_implied_do : LPAREN ac_value_list COMMA ac_implied_do_control RPAREN ;
public final void ac_implied_do() throws RecognitionException {
try {
// MFortranParser2018.g:1492:5: ( LPAREN ac_value_list COMMA ac_implied_do_control RPAREN )
// MFortranParser2018.g:1492:7: LPAREN ac_value_list COMMA ac_implied_do_control RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_ac_implied_do6216); if (state.failed) return;
pushFollow(FOLLOW_ac_value_list_in_ac_implied_do6218);
ac_value_list();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_ac_implied_do6220); if (state.failed) return;
pushFollow(FOLLOW_ac_implied_do_control_in_ac_implied_do6222);
ac_implied_do_control();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_ac_implied_do6224); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.ac_implied_do();}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "ac_implied_do"
// $ANTLR start "ac_implied_do_control"
// MFortranParser2018.g:1502:1: ac_implied_do_control : IDENT EQUALS expr COMMA expr ( COMMA expr )? ;
public final void ac_implied_do_control() throws RecognitionException {
Token IDENT109=null;
boolean hasStrd=false;
try {
// MFortranParser2018.g:1506:5: ( IDENT EQUALS expr COMMA expr ( COMMA expr )? )
// MFortranParser2018.g:1506:7: IDENT EQUALS expr COMMA expr ( COMMA expr )?
{
IDENT109=(Token)match(input,IDENT,FOLLOW_IDENT_in_ac_implied_do_control6257); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_ac_implied_do_control6259); if (state.failed) return;
pushFollow(FOLLOW_expr_in_ac_implied_do_control6261);
expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_ac_implied_do_control6263); if (state.failed) return;
pushFollow(FOLLOW_expr_in_ac_implied_do_control6265);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1507:7: ( COMMA expr )?
int alt130=2;
int LA130_0 = input.LA(1);
if ( (LA130_0==COMMA) ) {
alt130=1;
}
switch (alt130) {
case 1 :
// MFortranParser2018.g:1507:9: COMMA expr
{
match(input,COMMA,FOLLOW_COMMA_in_ac_implied_do_control6276); if (state.failed) return;
pushFollow(FOLLOW_expr_in_ac_implied_do_control6278);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasStrd=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.ac_implied_do_control(IDENT109, hasStrd); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "ac_implied_do_control"
// $ANTLR start "type_declaration_stmt"
// MFortranParser2018.g:1514:1: type_declaration_stmt : (lbl= label )? declaration_type_spec ( ( COMMA attr_spec )* COLON_COLON )? entity_decl_list end_of_stmt ;
public final void type_declaration_stmt() throws RecognitionException {
Token lbl =null;
Token end_of_stmt110 =null;
int numAS = 0;
try {
// MFortranParser2018.g:1521:5: ( (lbl= label )? declaration_type_spec ( ( COMMA attr_spec )* COLON_COLON )? entity_decl_list end_of_stmt )
// MFortranParser2018.g:1521:7: (lbl= label )? declaration_type_spec ( ( COMMA attr_spec )* COLON_COLON )? entity_decl_list end_of_stmt
{
// MFortranParser2018.g:1521:7: (lbl= label )?
int alt131=2;
int LA131_0 = input.LA(1);
if ( (LA131_0==DIGIT_STR) ) {
alt131=1;
}
switch (alt131) {
case 1 :
// MFortranParser2018.g:1521:8: lbl= label
{
pushFollow(FOLLOW_label_in_type_declaration_stmt6324);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_declaration_type_spec_in_type_declaration_stmt6336);
declaration_type_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1523:7: ( ( COMMA attr_spec )* COLON_COLON )?
int alt133=2;
int LA133_0 = input.LA(1);
if ( ((LA133_0 >= COLON_COLON && LA133_0 <= COMMA)) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// MFortranParser2018.g:1523:9: ( COMMA attr_spec )* COLON_COLON
{
// MFortranParser2018.g:1523:9: ( COMMA attr_spec )*
loop132:
while (true) {
int alt132=2;
int LA132_0 = input.LA(1);
if ( (LA132_0==COMMA) ) {
alt132=1;
}
switch (alt132) {
case 1 :
// MFortranParser2018.g:1523:10: COMMA attr_spec
{
match(input,COMMA,FOLLOW_COMMA_in_type_declaration_stmt6347); if (state.failed) return;
pushFollow(FOLLOW_attr_spec_in_type_declaration_stmt6349);
attr_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAS ++;}
}
break;
default :
break loop132;
}
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_type_declaration_stmt6355); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_entity_decl_list_in_type_declaration_stmt6366);
entity_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_type_declaration_stmt6368);
end_of_stmt110=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_declaration_stmt(lbl, numAS, end_of_stmt110); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_declaration_stmt"
// $ANTLR start "attr_spec"
// MFortranParser2018.g:1531:1: attr_spec : ( access_spec | ALLOCATABLE | ASYNCHRONOUS | CODIMENSION LBRACKET coarray_spec RBRACKET | CONTIGUOUS | DIMENSION LPAREN array_spec RPAREN | EXTERNAL | INTENT LPAREN intent_spec RPAREN | INTRINSIC | language_binding_spec | OPTIONAL | PARAMETER | POINTER | PROTECTED | SAVE | TARGET | VALUE | VOLATILE | attr_spec_extension );
public final void attr_spec() throws RecognitionException {
Token ALLOCATABLE111=null;
Token ASYNCHRONOUS112=null;
Token CODIMENSION113=null;
Token CONTIGUOUS114=null;
Token DIMENSION115=null;
Token EXTERNAL116=null;
Token INTENT117=null;
Token INTRINSIC118=null;
Token OPTIONAL119=null;
Token PARAMETER120=null;
Token POINTER121=null;
Token PROTECTED122=null;
Token SAVE123=null;
Token TARGET124=null;
Token VALUE125=null;
Token VOLATILE126=null;
try {
// MFortranParser2018.g:1532:5: ( access_spec | ALLOCATABLE | ASYNCHRONOUS | CODIMENSION LBRACKET coarray_spec RBRACKET | CONTIGUOUS | DIMENSION LPAREN array_spec RPAREN | EXTERNAL | INTENT LPAREN intent_spec RPAREN | INTRINSIC | language_binding_spec | OPTIONAL | PARAMETER | POINTER | PROTECTED | SAVE | TARGET | VALUE | VOLATILE | attr_spec_extension )
int alt134=19;
switch ( input.LA(1) ) {
case PRIVATE:
case PUBLIC:
{
alt134=1;
}
break;
case ALLOCATABLE:
{
alt134=2;
}
break;
case ASYNCHRONOUS:
{
alt134=3;
}
break;
case CODIMENSION:
{
alt134=4;
}
break;
case CONTIGUOUS:
{
alt134=5;
}
break;
case DIMENSION:
{
alt134=6;
}
break;
case EXTERNAL:
{
alt134=7;
}
break;
case INTENT:
{
alt134=8;
}
break;
case INTRINSIC:
{
alt134=9;
}
break;
case BIND:
{
alt134=10;
}
break;
case OPTIONAL:
{
alt134=11;
}
break;
case PARAMETER:
{
alt134=12;
}
break;
case POINTER:
{
alt134=13;
}
break;
case PROTECTED:
{
alt134=14;
}
break;
case SAVE:
{
alt134=15;
}
break;
case TARGET:
{
alt134=16;
}
break;
case VALUE:
{
alt134=17;
}
break;
case VOLATILE:
{
alt134=18;
}
break;
case NO_LANG_EXT:
{
alt134=19;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 134, 0, input);
throw nvae;
}
switch (alt134) {
case 1 :
// MFortranParser2018.g:1532:7: access_spec
{
pushFollow(FOLLOW_access_spec_in_attr_spec6397);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.attr_spec(null,
MFPUtils.ATTR_ACCESS); }
}
break;
case 2 :
// MFortranParser2018.g:1535:7: ALLOCATABLE
{
ALLOCATABLE111=(Token)match(input,ALLOCATABLE,FOLLOW_ALLOCATABLE_in_attr_spec6415); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.attr_spec(ALLOCATABLE111,
MFPUtils.ATTR_ALLOCATABLE);}
}
break;
case 3 :
// MFortranParser2018.g:1538:7: ASYNCHRONOUS
{
ASYNCHRONOUS112=(Token)match(input,ASYNCHRONOUS,FOLLOW_ASYNCHRONOUS_in_attr_spec6433); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.attr_spec(ASYNCHRONOUS112,
MFPUtils.ATTR_ASYNCHRONOUS);}
}
break;
case 4 :
// MFortranParser2018.g:1541:7: CODIMENSION LBRACKET coarray_spec RBRACKET
{
CODIMENSION113=(Token)match(input,CODIMENSION,FOLLOW_CODIMENSION_in_attr_spec6451); if (state.failed) return;
match(input,LBRACKET,FOLLOW_LBRACKET_in_attr_spec6453); if (state.failed) return;
pushFollow(FOLLOW_coarray_spec_in_attr_spec6455);
coarray_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_attr_spec6457); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(CODIMENSION113,
MFPUtils.ATTR_CODIMENSION);}
}
break;
case 5 :
// MFortranParser2018.g:1544:7: CONTIGUOUS
{
CONTIGUOUS114=(Token)match(input,CONTIGUOUS,FOLLOW_CONTIGUOUS_in_attr_spec6475); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(CONTIGUOUS114,
MFPUtils.ATTR_CONTIGUOUS);}
}
break;
case 6 :
// MFortranParser2018.g:1547:7: DIMENSION LPAREN array_spec RPAREN
{
DIMENSION115=(Token)match(input,DIMENSION,FOLLOW_DIMENSION_in_attr_spec6493); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_attr_spec6495); if (state.failed) return;
pushFollow(FOLLOW_array_spec_in_attr_spec6497);
array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_attr_spec6499); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(DIMENSION115,
MFPUtils.ATTR_DIMENSION);}
}
break;
case 7 :
// MFortranParser2018.g:1550:7: EXTERNAL
{
EXTERNAL116=(Token)match(input,EXTERNAL,FOLLOW_EXTERNAL_in_attr_spec6517); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(EXTERNAL116,
MFPUtils.ATTR_EXTERNAL);}
}
break;
case 8 :
// MFortranParser2018.g:1553:7: INTENT LPAREN intent_spec RPAREN
{
INTENT117=(Token)match(input,INTENT,FOLLOW_INTENT_in_attr_spec6535); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_attr_spec6537); if (state.failed) return;
pushFollow(FOLLOW_intent_spec_in_attr_spec6539);
intent_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_attr_spec6541); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(INTENT117,
MFPUtils.ATTR_INTENT);}
}
break;
case 9 :
// MFortranParser2018.g:1556:7: INTRINSIC
{
INTRINSIC118=(Token)match(input,INTRINSIC,FOLLOW_INTRINSIC_in_attr_spec6559); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(INTRINSIC118,
MFPUtils.ATTR_INTRINSIC);}
}
break;
case 10 :
// MFortranParser2018.g:1559:7: language_binding_spec
{
pushFollow(FOLLOW_language_binding_spec_in_attr_spec6577);
language_binding_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(null,
MFPUtils.ATTR_BIND);}
}
break;
case 11 :
// MFortranParser2018.g:1562:7: OPTIONAL
{
OPTIONAL119=(Token)match(input,OPTIONAL,FOLLOW_OPTIONAL_in_attr_spec6595); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(OPTIONAL119,
MFPUtils.ATTR_OPTIONAL);}
}
break;
case 12 :
// MFortranParser2018.g:1565:7: PARAMETER
{
PARAMETER120=(Token)match(input,PARAMETER,FOLLOW_PARAMETER_in_attr_spec6613); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(PARAMETER120,
MFPUtils.ATTR_PARAMETER);}
}
break;
case 13 :
// MFortranParser2018.g:1568:7: POINTER
{
POINTER121=(Token)match(input,POINTER,FOLLOW_POINTER_in_attr_spec6631); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(POINTER121,
MFPUtils.ATTR_POINTER);}
}
break;
case 14 :
// MFortranParser2018.g:1571:7: PROTECTED
{
PROTECTED122=(Token)match(input,PROTECTED,FOLLOW_PROTECTED_in_attr_spec6649); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(PROTECTED122,
MFPUtils.ATTR_PROTECTED);}
}
break;
case 15 :
// MFortranParser2018.g:1574:7: SAVE
{
SAVE123=(Token)match(input,SAVE,FOLLOW_SAVE_in_attr_spec6667); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(SAVE123,
MFPUtils.ATTR_SAVE);}
}
break;
case 16 :
// MFortranParser2018.g:1577:7: TARGET
{
TARGET124=(Token)match(input,TARGET,FOLLOW_TARGET_in_attr_spec6685); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(TARGET124,
MFPUtils.ATTR_TARGET);}
}
break;
case 17 :
// MFortranParser2018.g:1580:7: VALUE
{
VALUE125=(Token)match(input,VALUE,FOLLOW_VALUE_in_attr_spec6703); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(VALUE125,
MFPUtils.ATTR_VALUE);}
}
break;
case 18 :
// MFortranParser2018.g:1583:7: VOLATILE
{
VOLATILE126=(Token)match(input,VOLATILE,FOLLOW_VOLATILE_in_attr_spec6721); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(VOLATILE126,
MFPUtils.ATTR_VOLATILE);}
}
break;
case 19 :
// MFortranParser2018.g:1586:7: attr_spec_extension
{
pushFollow(FOLLOW_attr_spec_extension_in_attr_spec6739);
attr_spec_extension();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec(null,
MFPUtils.ATTR_OTHER);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "attr_spec"
// $ANTLR start "attr_spec_extension"
// MFortranParser2018.g:1591:1: attr_spec_extension : NO_LANG_EXT ;
public final void attr_spec_extension() throws RecognitionException {
Token NO_LANG_EXT127=null;
try {
// MFortranParser2018.g:1592:5: ( NO_LANG_EXT )
// MFortranParser2018.g:1592:7: NO_LANG_EXT
{
NO_LANG_EXT127=(Token)match(input,NO_LANG_EXT,FOLLOW_NO_LANG_EXT_in_attr_spec_extension6766); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.attr_spec_extension(NO_LANG_EXT127,
MFPUtils.ATTR_EXT_NONE);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "attr_spec_extension"
// $ANTLR start "entity_decl"
// MFortranParser2018.g:1603:1: entity_decl : IDENT ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ( ASTERISK char_length )? ( initialization )? ;
public final void entity_decl() throws RecognitionException {
Token IDENT128=null;
boolean hasAS=false;
boolean hasCS=false;
boolean hasCL=false;
boolean hasInit=false;
try {
// MFortranParser2018.g:1610:5: ( IDENT ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ( ASTERISK char_length )? ( initialization )? )
// MFortranParser2018.g:1610:7: IDENT ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ( ASTERISK char_length )? ( initialization )?
{
IDENT128=(Token)match(input,IDENT,FOLLOW_IDENT_in_entity_decl6799); if (state.failed) return;
// MFortranParser2018.g:1611:7: ( LPAREN array_spec RPAREN )?
int alt135=2;
int LA135_0 = input.LA(1);
if ( (LA135_0==LPAREN) ) {
alt135=1;
}
switch (alt135) {
case 1 :
// MFortranParser2018.g:1611:9: LPAREN array_spec RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_entity_decl6810); if (state.failed) return;
pushFollow(FOLLOW_array_spec_in_entity_decl6812);
array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_entity_decl6814); if (state.failed) return;
if ( state.backtracking==0 ) {hasAS=true;}
}
break;
}
// MFortranParser2018.g:1612:7: ( LBRACKET coarray_spec RBRACKET )?
int alt136=2;
int LA136_0 = input.LA(1);
if ( (LA136_0==LBRACKET) ) {
alt136=1;
}
switch (alt136) {
case 1 :
// MFortranParser2018.g:1612:9: LBRACKET coarray_spec RBRACKET
{
match(input,LBRACKET,FOLLOW_LBRACKET_in_entity_decl6830); if (state.failed) return;
pushFollow(FOLLOW_coarray_spec_in_entity_decl6832);
coarray_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_entity_decl6834); if (state.failed) return;
if ( state.backtracking==0 ) {hasCS=true;}
}
break;
}
// MFortranParser2018.g:1613:7: ( ASTERISK char_length )?
int alt137=2;
int LA137_0 = input.LA(1);
if ( (LA137_0==ASTERISK) ) {
alt137=1;
}
switch (alt137) {
case 1 :
// MFortranParser2018.g:1613:9: ASTERISK char_length
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_entity_decl6850); if (state.failed) return;
pushFollow(FOLLOW_char_length_in_entity_decl6852);
char_length();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasCL=true;}
}
break;
}
// MFortranParser2018.g:1614:7: ( initialization )?
int alt138=2;
int LA138_0 = input.LA(1);
if ( (LA138_0==EQUALS||LA138_0==EQ_GT) ) {
alt138=1;
}
switch (alt138) {
case 1 :
// MFortranParser2018.g:1614:9: initialization
{
pushFollow(FOLLOW_initialization_in_entity_decl6868);
initialization();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasInit=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.entity_decl(IDENT128, hasAS, hasCS, hasCL, hasInit); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "entity_decl"
// $ANTLR start "entity_decl_list"
// MFortranParser2018.g:1618:1: entity_decl_list : entity_decl ( COMMA entity_decl )* ;
public final void entity_decl_list() throws RecognitionException {
int numED = 1;
try {
// MFortranParser2018.g:1625:5: ( entity_decl ( COMMA entity_decl )* )
// MFortranParser2018.g:1625:7: entity_decl ( COMMA entity_decl )*
{
pushFollow(FOLLOW_entity_decl_in_entity_decl_list6908);
entity_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1626:7: ( COMMA entity_decl )*
loop139:
while (true) {
int alt139=2;
int LA139_0 = input.LA(1);
if ( (LA139_0==COMMA) ) {
alt139=1;
}
switch (alt139) {
case 1 :
// MFortranParser2018.g:1626:9: COMMA entity_decl
{
match(input,COMMA,FOLLOW_COMMA_in_entity_decl_list6919); if (state.failed) return;
pushFollow(FOLLOW_entity_decl_in_entity_decl_list6921);
entity_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numED ++;}
}
break;
default :
break loop139;
}
}
}
if ( state.backtracking==0 ) {
MFPA.entity_decl_list(numED);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "entity_decl_list"
// $ANTLR start "object_name"
// MFortranParser2018.g:1632:1: object_name returns [Token t] : IDENT ;
public final Token object_name() throws RecognitionException {
Token t = null;
Token IDENT129=null;
try {
// MFortranParser2018.g:1633:5: ( IDENT )
// MFortranParser2018.g:1633:7: IDENT
{
IDENT129=(Token)match(input,IDENT,FOLLOW_IDENT_in_object_name6949); if (state.failed) return t;
if ( state.backtracking==0 ) {t = IDENT129;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "object_name"
// $ANTLR start "initialization"
// MFortranParser2018.g:1641:1: initialization : ( EQUALS expr | EQ_GT designator );
public final void initialization() throws RecognitionException {
try {
// MFortranParser2018.g:1642:5: ( EQUALS expr | EQ_GT designator )
int alt140=2;
int LA140_0 = input.LA(1);
if ( (LA140_0==EQUALS) ) {
alt140=1;
}
else if ( (LA140_0==EQ_GT) ) {
alt140=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 140, 0, input);
throw nvae;
}
switch (alt140) {
case 1 :
// MFortranParser2018.g:1642:7: EQUALS expr
{
match(input,EQUALS,FOLLOW_EQUALS_in_initialization6970); if (state.failed) return;
pushFollow(FOLLOW_expr_in_initialization6972);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.initialization(MFPUtils.INIT_VAL); }
}
break;
case 2 :
// MFortranParser2018.g:1646:7: EQ_GT designator
{
match(input,EQ_GT,FOLLOW_EQ_GT_in_initialization6991); if (state.failed) return;
pushFollow(FOLLOW_designator_in_initialization6993);
designator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.initialization(MFPUtils.INIT_NUL); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "initialization"
// $ANTLR start "null_init"
// MFortranParser2018.g:1654:1: null_init : IDENT LPAREN RPAREN ;
public final void null_init() throws RecognitionException {
Token IDENT130=null;
try {
// MFortranParser2018.g:1656:5: ( IDENT LPAREN RPAREN )
// MFortranParser2018.g:1656:7: IDENT LPAREN RPAREN
{
IDENT130=(Token)match(input,IDENT,FOLLOW_IDENT_in_null_init7022); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_null_init7024); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_null_init7026); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.null_init(IDENT130); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "null_init"
// $ANTLR start "access_spec"
// MFortranParser2018.g:1663:1: access_spec : ( PUBLIC | PRIVATE );
public final void access_spec() throws RecognitionException {
Token PUBLIC131=null;
Token PRIVATE132=null;
try {
// MFortranParser2018.g:1664:5: ( PUBLIC | PRIVATE )
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==PUBLIC) ) {
alt141=1;
}
else if ( (LA141_0==PRIVATE) ) {
alt141=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 141, 0, input);
throw nvae;
}
switch (alt141) {
case 1 :
// MFortranParser2018.g:1664:7: PUBLIC
{
PUBLIC131=(Token)match(input,PUBLIC,FOLLOW_PUBLIC_in_access_spec7053); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.access_spec(PUBLIC131, MFPUtils.ATTR_PUBLIC);}
}
break;
case 2 :
// MFortranParser2018.g:1666:7: PRIVATE
{
PRIVATE132=(Token)match(input,PRIVATE,FOLLOW_PRIVATE_in_access_spec7069); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.access_spec(PRIVATE132, MFPUtils.ATTR_PRIVATE);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "access_spec"
// $ANTLR start "language_binding_spec"
// MFortranParser2018.g:1674:1: language_binding_spec : BIND LPAREN IDENT ( COMMA name EQUALS expr )? RPAREN ;
public final void language_binding_spec() throws RecognitionException {
Token BIND133=null;
Token IDENT134=null;
boolean hasName = false;
try {
// MFortranParser2018.g:1679:5: ( BIND LPAREN IDENT ( COMMA name EQUALS expr )? RPAREN )
// MFortranParser2018.g:1679:7: BIND LPAREN IDENT ( COMMA name EQUALS expr )? RPAREN
{
BIND133=(Token)match(input,BIND,FOLLOW_BIND_in_language_binding_spec7101); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_language_binding_spec7103); if (state.failed) return;
IDENT134=(Token)match(input,IDENT,FOLLOW_IDENT_in_language_binding_spec7105); if (state.failed) return;
// MFortranParser2018.g:1680:7: ( COMMA name EQUALS expr )?
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==COMMA) ) {
alt142=1;
}
switch (alt142) {
case 1 :
// MFortranParser2018.g:1680:8: COMMA name EQUALS expr
{
match(input,COMMA,FOLLOW_COMMA_in_language_binding_spec7115); if (state.failed) return;
pushFollow(FOLLOW_name_in_language_binding_spec7117);
name();
state._fsp--;
if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_language_binding_spec7119); if (state.failed) return;
pushFollow(FOLLOW_expr_in_language_binding_spec7121);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasName=true; }
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_language_binding_spec7127); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.language_binding_spec(BIND133, IDENT134, hasName); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "language_binding_spec"
// $ANTLR start "coarray_spec"
// MFortranParser2018.g:1698:1: coarray_spec : array_spec_element ( COMMA array_spec_element )* ;
public final void coarray_spec() throws RecognitionException {
int numCS = 1;
try {
// MFortranParser2018.g:1702:4: ( array_spec_element ( COMMA array_spec_element )* )
// MFortranParser2018.g:1702:6: array_spec_element ( COMMA array_spec_element )*
{
pushFollow(FOLLOW_array_spec_element_in_coarray_spec7159);
array_spec_element();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1703:6: ( COMMA array_spec_element )*
loop143:
while (true) {
int alt143=2;
int LA143_0 = input.LA(1);
if ( (LA143_0==COMMA) ) {
alt143=1;
}
switch (alt143) {
case 1 :
// MFortranParser2018.g:1703:7: COMMA array_spec_element
{
match(input,COMMA,FOLLOW_COMMA_in_coarray_spec7168); if (state.failed) return;
pushFollow(FOLLOW_array_spec_element_in_coarray_spec7170);
array_spec_element();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCS++;}
}
break;
default :
break loop143;
}
}
if ( state.backtracking==0 ) { MFPA.coarray_spec(numCS); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "coarray_spec"
// $ANTLR start "dimension_spec"
// MFortranParser2018.g:1710:1: dimension_spec : DIMENSION LPAREN array_spec RPAREN ;
public final void dimension_spec() throws RecognitionException {
Token DIMENSION135=null;
try {
// MFortranParser2018.g:1711:5: ( DIMENSION LPAREN array_spec RPAREN )
// MFortranParser2018.g:1711:7: DIMENSION LPAREN array_spec RPAREN
{
DIMENSION135=(Token)match(input,DIMENSION,FOLLOW_DIMENSION_in_dimension_spec7201); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_dimension_spec7203); if (state.failed) return;
pushFollow(FOLLOW_array_spec_in_dimension_spec7205);
array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_dimension_spec7207); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.dimension_spec(DIMENSION135); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dimension_spec"
// $ANTLR start "array_spec"
// MFortranParser2018.g:1743:1: array_spec : array_spec_element ( COMMA array_spec_element )* ;
public final void array_spec() throws RecognitionException {
int numAS = 1;
try {
// MFortranParser2018.g:1747:5: ( array_spec_element ( COMMA array_spec_element )* )
// MFortranParser2018.g:1747:7: array_spec_element ( COMMA array_spec_element )*
{
pushFollow(FOLLOW_array_spec_element_in_array_spec7238);
array_spec_element();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1748:7: ( COMMA array_spec_element )*
loop144:
while (true) {
int alt144=2;
int LA144_0 = input.LA(1);
if ( (LA144_0==COMMA) ) {
alt144=1;
}
switch (alt144) {
case 1 :
// MFortranParser2018.g:1748:8: COMMA array_spec_element
{
match(input,COMMA,FOLLOW_COMMA_in_array_spec7247); if (state.failed) return;
pushFollow(FOLLOW_array_spec_element_in_array_spec7249);
array_spec_element();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAS++;}
}
break;
default :
break loop144;
}
}
if ( state.backtracking==0 ) { MFPA.array_spec(numAS);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "array_spec"
// $ANTLR start "array_spec_element"
// MFortranParser2018.g:1752:1: array_spec_element : ( expr ( COLON ( expr | ASTERISK )? )? | ASTERISK | COLON | DODOT );
public final void array_spec_element() throws RecognitionException {
int type = MFPUtils.ASE_1U;
try {
// MFortranParser2018.g:1759:5: ( expr ( COLON ( expr | ASTERISK )? )? | ASTERISK | COLON | DODOT )
int alt147=4;
switch ( input.LA(1) ) {
case BIN_CONST:
case CHAR_CONST:
case DEFINED_OP:
case DIGIT_STR:
case FALSE:
case HEX_CONST:
case IDENT:
case LBRACKET:
case LPAREN:
case MINUS:
case M_REAL_CONST:
case NOT:
case OCT_CONST:
case PLUS:
case TRUE:
{
alt147=1;
}
break;
case ASTERISK:
{
alt147=2;
}
break;
case COLON:
{
alt147=3;
}
break;
case DODOT:
{
alt147=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 147, 0, input);
throw nvae;
}
switch (alt147) {
case 1 :
// MFortranParser2018.g:1759:7: expr ( COLON ( expr | ASTERISK )? )?
{
pushFollow(FOLLOW_expr_in_array_spec_element7288);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1759:12: ( COLON ( expr | ASTERISK )? )?
int alt146=2;
int LA146_0 = input.LA(1);
if ( (LA146_0==COLON) ) {
alt146=1;
}
switch (alt146) {
case 1 :
// MFortranParser2018.g:1759:14: COLON ( expr | ASTERISK )?
{
match(input,COLON,FOLLOW_COLON_in_array_spec_element7292); if (state.failed) return;
if ( state.backtracking==0 ) {type=MFPUtils.ASE_LN;}
// MFortranParser2018.g:1760:14: ( expr | ASTERISK )?
int alt145=3;
int LA145_0 = input.LA(1);
if ( (LA145_0==BIN_CONST||LA145_0==CHAR_CONST||(LA145_0 >= DEFINED_OP && LA145_0 <= DIGIT_STR)||LA145_0==FALSE||(LA145_0 >= HEX_CONST && LA145_0 <= IDENT)||LA145_0==LBRACKET||LA145_0==LPAREN||LA145_0==MINUS||LA145_0==M_REAL_CONST||LA145_0==NOT||LA145_0==OCT_CONST||LA145_0==PLUS||LA145_0==TRUE) ) {
alt145=1;
}
else if ( (LA145_0==ASTERISK) ) {
alt145=2;
}
switch (alt145) {
case 1 :
// MFortranParser2018.g:1760:16: expr
{
pushFollow(FOLLOW_expr_in_array_spec_element7311);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {type=MFPUtils.ASE_LU;}
}
break;
case 2 :
// MFortranParser2018.g:1761:16: ASTERISK
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_array_spec_element7330); if (state.failed) return;
if ( state.backtracking==0 ) {type=MFPUtils.ASE_LX;}
}
break;
}
}
break;
}
}
break;
case 2 :
// MFortranParser2018.g:1764:7: ASTERISK
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_array_spec_element7371); if (state.failed) return;
if ( state.backtracking==0 ) { type=MFPUtils.ASE_1X; }
}
break;
case 3 :
// MFortranParser2018.g:1765:7: COLON
{
match(input,COLON,FOLLOW_COLON_in_array_spec_element7381); if (state.failed) return;
if ( state.backtracking==0 ) { type=MFPUtils.ASE_NN; }
}
break;
case 4 :
// MFortranParser2018.g:1766:7: DODOT
{
match(input,DODOT,FOLLOW_DODOT_in_array_spec_element7391); if (state.failed) return;
if ( state.backtracking==0 ) { type=MFPUtils.ASE_RK; }
}
break;
}
if ( state.backtracking==0 ) {
MFPA.array_spec_element(type);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "array_spec_element"
// $ANTLR start "explicit_shape_spec"
// MFortranParser2018.g:1774:1: explicit_shape_spec : expr ( COLON expr )? ;
public final void explicit_shape_spec() throws RecognitionException {
boolean hasUB = false;
try {
// MFortranParser2018.g:1778:5: ( expr ( COLON expr )? )
// MFortranParser2018.g:1778:7: expr ( COLON expr )?
{
pushFollow(FOLLOW_expr_in_explicit_shape_spec7417);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1778:12: ( COLON expr )?
int alt148=2;
int LA148_0 = input.LA(1);
if ( (LA148_0==COLON) ) {
alt148=1;
}
switch (alt148) {
case 1 :
// MFortranParser2018.g:1778:13: COLON expr
{
match(input,COLON,FOLLOW_COLON_in_explicit_shape_spec7420); if (state.failed) return;
pushFollow(FOLLOW_expr_in_explicit_shape_spec7422);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasUB=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.explicit_shape_spec(hasUB);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "explicit_shape_spec"
// $ANTLR start "explicit_shape_spec_list"
// MFortranParser2018.g:1782:1: explicit_shape_spec_list : explicit_shape_spec ( COMMA explicit_shape_spec )* ;
public final void explicit_shape_spec_list() throws RecognitionException {
int numESS = 1;
try {
// MFortranParser2018.g:1786:5: ( explicit_shape_spec ( COMMA explicit_shape_spec )* )
// MFortranParser2018.g:1786:7: explicit_shape_spec ( COMMA explicit_shape_spec )*
{
pushFollow(FOLLOW_explicit_shape_spec_in_explicit_shape_spec_list7457);
explicit_shape_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1787:7: ( COMMA explicit_shape_spec )*
loop149:
while (true) {
int alt149=2;
int LA149_0 = input.LA(1);
if ( (LA149_0==COMMA) ) {
alt149=1;
}
switch (alt149) {
case 1 :
// MFortranParser2018.g:1787:9: COMMA explicit_shape_spec
{
match(input,COMMA,FOLLOW_COMMA_in_explicit_shape_spec_list7467); if (state.failed) return;
pushFollow(FOLLOW_explicit_shape_spec_in_explicit_shape_spec_list7469);
explicit_shape_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numESS++;}
}
break;
default :
break loop149;
}
}
if ( state.backtracking==0 ) { MFPA.explicit_shape_spec_list(numESS);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "explicit_shape_spec_list"
// $ANTLR start "deferred_shape_spec_list"
// MFortranParser2018.g:1801:1: deferred_shape_spec_list : COLON ( COMMA COLON )* ;
public final void deferred_shape_spec_list() throws RecognitionException {
int numDSS = 1;
try {
// MFortranParser2018.g:1808:5: ( COLON ( COMMA COLON )* )
// MFortranParser2018.g:1808:7: COLON ( COMMA COLON )*
{
match(input,COLON,FOLLOW_COLON_in_deferred_shape_spec_list7513); if (state.failed) return;
// MFortranParser2018.g:1809:7: ( COMMA COLON )*
loop150:
while (true) {
int alt150=2;
int LA150_0 = input.LA(1);
if ( (LA150_0==COMMA) ) {
alt150=1;
}
switch (alt150) {
case 1 :
// MFortranParser2018.g:1809:9: COMMA COLON
{
match(input,COMMA,FOLLOW_COMMA_in_deferred_shape_spec_list7524); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_deferred_shape_spec_list7526); if (state.failed) return;
if ( state.backtracking==0 ) {numDSS++;}
}
break;
default :
break loop150;
}
}
}
if ( state.backtracking==0 ) {
MFPA.deferred_shape_spec_list(numDSS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "deferred_shape_spec_list"
// $ANTLR start "intent_spec"
// MFortranParser2018.g:1815:1: intent_spec : ( IN | OUT | IN OUT | INOUT );
public final void intent_spec() throws RecognitionException {
Token IN136=null;
Token OUT137=null;
Token IN138=null;
Token OUT139=null;
Token INOUT140=null;
try {
// MFortranParser2018.g:1816:5: ( IN | OUT | IN OUT | INOUT )
int alt151=4;
switch ( input.LA(1) ) {
case IN:
{
int LA151_1 = input.LA(2);
if ( (LA151_1==OUT) ) {
alt151=3;
}
else if ( (LA151_1==RPAREN) ) {
alt151=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 151, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case OUT:
{
alt151=2;
}
break;
case INOUT:
{
alt151=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 151, 0, input);
throw nvae;
}
switch (alt151) {
case 1 :
// MFortranParser2018.g:1816:7: IN
{
IN136=(Token)match(input,IN,FOLLOW_IN_in_intent_spec7550); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intent_spec(
IN136, null); }
}
break;
case 2 :
// MFortranParser2018.g:1818:7: OUT
{
OUT137=(Token)match(input,OUT,FOLLOW_OUT_in_intent_spec7560); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intent_spec(
null, OUT137); }
}
break;
case 3 :
// MFortranParser2018.g:1820:7: IN OUT
{
IN138=(Token)match(input,IN,FOLLOW_IN_in_intent_spec7570); if (state.failed) return;
OUT139=(Token)match(input,OUT,FOLLOW_OUT_in_intent_spec7572); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intent_spec(
IN138, OUT139); }
}
break;
case 4 :
// MFortranParser2018.g:1822:7: INOUT
{
INOUT140=(Token)match(input,INOUT,FOLLOW_INOUT_in_intent_spec7582); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intent_spec(
INOUT140, INOUT140); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "intent_spec"
// $ANTLR start "access_stmt"
// MFortranParser2018.g:1829:1: access_stmt : (lbl= label )? access_spec ( ( COLON_COLON )? access_id_list )? end_of_stmt ;
public final void access_stmt() throws RecognitionException {
Token lbl =null;
Token end_of_stmt141 =null;
boolean hasList=false;
try {
// MFortranParser2018.g:1836:5: ( (lbl= label )? access_spec ( ( COLON_COLON )? access_id_list )? end_of_stmt )
// MFortranParser2018.g:1836:7: (lbl= label )? access_spec ( ( COLON_COLON )? access_id_list )? end_of_stmt
{
// MFortranParser2018.g:1836:7: (lbl= label )?
int alt152=2;
int LA152_0 = input.LA(1);
if ( (LA152_0==DIGIT_STR) ) {
alt152=1;
}
switch (alt152) {
case 1 :
// MFortranParser2018.g:1836:8: lbl= label
{
pushFollow(FOLLOW_label_in_access_stmt7615);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_access_spec_in_access_stmt7627);
access_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1837:19: ( ( COLON_COLON )? access_id_list )?
int alt154=2;
int LA154_0 = input.LA(1);
if ( (LA154_0==ASSIGNMENT||LA154_0==COLON_COLON||LA154_0==IDENT||LA154_0==OPERATOR||LA154_0==READ||LA154_0==WRITE) ) {
alt154=1;
}
switch (alt154) {
case 1 :
// MFortranParser2018.g:1838:9: ( COLON_COLON )? access_id_list
{
// MFortranParser2018.g:1838:9: ( COLON_COLON )?
int alt153=2;
int LA153_0 = input.LA(1);
if ( (LA153_0==COLON_COLON) ) {
alt153=1;
}
switch (alt153) {
case 1 :
// MFortranParser2018.g:1838:11: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_access_stmt7642); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_access_id_list_in_access_stmt7656);
access_id_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasList=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_access_stmt7669);
end_of_stmt141=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.access_stmt(lbl,end_of_stmt141,hasList); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "access_stmt"
// $ANTLR start "access_id"
// MFortranParser2018.g:1849:1: access_id : generic_spec ;
public final void access_id() throws RecognitionException {
try {
// MFortranParser2018.g:1850:5: ( generic_spec )
// MFortranParser2018.g:1850:7: generic_spec
{
pushFollow(FOLLOW_generic_spec_in_access_id7698);
generic_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.access_id(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "access_id"
// $ANTLR start "access_id_list"
// MFortranParser2018.g:1853:1: access_id_list : access_id ( COMMA access_id )* ;
public final void access_id_list() throws RecognitionException {
int numAI = 1;
try {
// MFortranParser2018.g:1860:5: ( access_id ( COMMA access_id )* )
// MFortranParser2018.g:1860:7: access_id ( COMMA access_id )*
{
pushFollow(FOLLOW_access_id_in_access_id_list7725);
access_id();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1861:7: ( COMMA access_id )*
loop155:
while (true) {
int alt155=2;
int LA155_0 = input.LA(1);
if ( (LA155_0==COMMA) ) {
alt155=1;
}
switch (alt155) {
case 1 :
// MFortranParser2018.g:1861:9: COMMA access_id
{
match(input,COMMA,FOLLOW_COMMA_in_access_id_list7736); if (state.failed) return;
pushFollow(FOLLOW_access_id_in_access_id_list7738);
access_id();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAI++;}
}
break;
default :
break loop155;
}
}
}
if ( state.backtracking==0 ) {
MFPA.access_id_list(numAI);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "access_id_list"
// $ANTLR start "allocatable_stmt"
// MFortranParser2018.g:1867:1: allocatable_stmt : (lbl= label )? ALLOCATABLE ( COLON_COLON )? allocatable_decl_list end_of_stmt ;
public final void allocatable_stmt() throws RecognitionException {
Token ALLOCATABLE142=null;
Token lbl =null;
Token end_of_stmt143 =null;
try {
// MFortranParser2018.g:1873:5: ( (lbl= label )? ALLOCATABLE ( COLON_COLON )? allocatable_decl_list end_of_stmt )
// MFortranParser2018.g:1873:7: (lbl= label )? ALLOCATABLE ( COLON_COLON )? allocatable_decl_list end_of_stmt
{
// MFortranParser2018.g:1873:7: (lbl= label )?
int alt156=2;
int LA156_0 = input.LA(1);
if ( (LA156_0==DIGIT_STR) ) {
alt156=1;
}
switch (alt156) {
case 1 :
// MFortranParser2018.g:1873:8: lbl= label
{
pushFollow(FOLLOW_label_in_allocatable_stmt7774);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ALLOCATABLE142=(Token)match(input,ALLOCATABLE,FOLLOW_ALLOCATABLE_in_allocatable_stmt7785); if (state.failed) return;
// MFortranParser2018.g:1874:19: ( COLON_COLON )?
int alt157=2;
int LA157_0 = input.LA(1);
if ( (LA157_0==COLON_COLON) ) {
alt157=1;
}
switch (alt157) {
case 1 :
// MFortranParser2018.g:1874:21: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_allocatable_stmt7789); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_allocatable_decl_list_in_allocatable_stmt7794);
allocatable_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_allocatable_stmt7796);
end_of_stmt143=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.allocatable_stmt(lbl, ALLOCATABLE142, end_of_stmt143);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocatable_stmt"
// $ANTLR start "allocatable_decl"
// MFortranParser2018.g:1881:1: allocatable_decl : object_name ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ;
public final void allocatable_decl() throws RecognitionException {
Token object_name144 =null;
Token objName=null;
boolean hasAS=false;
boolean hasCS=false;
try {
// MFortranParser2018.g:1887:5: ( object_name ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? )
// MFortranParser2018.g:1887:7: object_name ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )?
{
pushFollow(FOLLOW_object_name_in_allocatable_decl7832);
object_name144=object_name();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {objName=object_name144;}
// MFortranParser2018.g:1888:7: ( LPAREN array_spec RPAREN )?
int alt158=2;
int LA158_0 = input.LA(1);
if ( (LA158_0==LPAREN) ) {
alt158=1;
}
switch (alt158) {
case 1 :
// MFortranParser2018.g:1888:9: LPAREN array_spec RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_allocatable_decl7844); if (state.failed) return;
pushFollow(FOLLOW_array_spec_in_allocatable_decl7846);
array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_allocatable_decl7848); if (state.failed) return;
if ( state.backtracking==0 ) {hasAS=true;}
}
break;
}
// MFortranParser2018.g:1889:7: ( LBRACKET coarray_spec RBRACKET )?
int alt159=2;
int LA159_0 = input.LA(1);
if ( (LA159_0==LBRACKET) ) {
alt159=1;
}
switch (alt159) {
case 1 :
// MFortranParser2018.g:1889:9: LBRACKET coarray_spec RBRACKET
{
match(input,LBRACKET,FOLLOW_LBRACKET_in_allocatable_decl7863); if (state.failed) return;
pushFollow(FOLLOW_coarray_spec_in_allocatable_decl7865);
coarray_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_allocatable_decl7867); if (state.failed) return;
if ( state.backtracking==0 ) {hasCS=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.allocatable_decl(objName, hasAS, hasCS);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocatable_decl"
// $ANTLR start "allocatable_decl_list"
// MFortranParser2018.g:1893:1: allocatable_decl_list : allocatable_decl ( COMMA allocatable_decl )* ;
public final void allocatable_decl_list() throws RecognitionException {
int numAD = 1;
try {
// MFortranParser2018.g:1900:5: ( allocatable_decl ( COMMA allocatable_decl )* )
// MFortranParser2018.g:1900:7: allocatable_decl ( COMMA allocatable_decl )*
{
pushFollow(FOLLOW_allocatable_decl_in_allocatable_decl_list7907);
allocatable_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1901:7: ( COMMA allocatable_decl )*
loop160:
while (true) {
int alt160=2;
int LA160_0 = input.LA(1);
if ( (LA160_0==COMMA) ) {
alt160=1;
}
switch (alt160) {
case 1 :
// MFortranParser2018.g:1901:9: COMMA allocatable_decl
{
match(input,COMMA,FOLLOW_COMMA_in_allocatable_decl_list7918); if (state.failed) return;
pushFollow(FOLLOW_allocatable_decl_in_allocatable_decl_list7920);
allocatable_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAD++;}
}
break;
default :
break loop160;
}
}
}
if ( state.backtracking==0 ) {
MFPA.allocatable_decl_list(numAD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocatable_decl_list"
// $ANTLR start "asynchronous_stmt"
// MFortranParser2018.g:1908:1: asynchronous_stmt : (lbl= label )? ASYNCHRONOUS ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void asynchronous_stmt() throws RecognitionException {
Token ASYNCHRONOUS145=null;
Token lbl =null;
Token end_of_stmt146 =null;
try {
// MFortranParser2018.g:1914:5: ( (lbl= label )? ASYNCHRONOUS ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:1914:7: (lbl= label )? ASYNCHRONOUS ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:1914:7: (lbl= label )?
int alt161=2;
int LA161_0 = input.LA(1);
if ( (LA161_0==DIGIT_STR) ) {
alt161=1;
}
switch (alt161) {
case 1 :
// MFortranParser2018.g:1914:8: lbl= label
{
pushFollow(FOLLOW_label_in_asynchronous_stmt7956);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ASYNCHRONOUS145=(Token)match(input,ASYNCHRONOUS,FOLLOW_ASYNCHRONOUS_in_asynchronous_stmt7968); if (state.failed) return;
// MFortranParser2018.g:1915:20: ( COLON_COLON )?
int alt162=2;
int LA162_0 = input.LA(1);
if ( (LA162_0==COLON_COLON) ) {
alt162=1;
}
switch (alt162) {
case 1 :
// MFortranParser2018.g:1915:22: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_asynchronous_stmt7972); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_asynchronous_stmt7977);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_asynchronous_stmt7986);
end_of_stmt146=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.asynchronous_stmt(lbl,ASYNCHRONOUS145,end_of_stmt146); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "asynchronous_stmt"
// $ANTLR start "bind_stmt"
// MFortranParser2018.g:1923:1: bind_stmt : (lbl= label )? language_binding_spec ( COLON_COLON )? bind_entity_list end_of_stmt ;
public final void bind_stmt() throws RecognitionException {
Token lbl =null;
Token end_of_stmt147 =null;
try {
// MFortranParser2018.g:1929:5: ( (lbl= label )? language_binding_spec ( COLON_COLON )? bind_entity_list end_of_stmt )
// MFortranParser2018.g:1929:7: (lbl= label )? language_binding_spec ( COLON_COLON )? bind_entity_list end_of_stmt
{
// MFortranParser2018.g:1929:7: (lbl= label )?
int alt163=2;
int LA163_0 = input.LA(1);
if ( (LA163_0==DIGIT_STR) ) {
alt163=1;
}
switch (alt163) {
case 1 :
// MFortranParser2018.g:1929:8: lbl= label
{
pushFollow(FOLLOW_label_in_bind_stmt8026);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_language_binding_spec_in_bind_stmt8038);
language_binding_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1930:29: ( COLON_COLON )?
int alt164=2;
int LA164_0 = input.LA(1);
if ( (LA164_0==COLON_COLON) ) {
alt164=1;
}
switch (alt164) {
case 1 :
// MFortranParser2018.g:1930:31: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_bind_stmt8042); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_bind_entity_list_in_bind_stmt8047);
bind_entity_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_bind_stmt8056);
end_of_stmt147=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.bind_stmt(lbl, end_of_stmt147); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "bind_stmt"
// $ANTLR start "bind_entity"
// MFortranParser2018.g:1940:1: bind_entity : ( IDENT | SLASH IDENT SLASH );
public final void bind_entity() throws RecognitionException {
Token IDENT148=null;
Token IDENT149=null;
try {
// MFortranParser2018.g:1941:5: ( IDENT | SLASH IDENT SLASH )
int alt165=2;
int LA165_0 = input.LA(1);
if ( (LA165_0==IDENT) ) {
alt165=1;
}
else if ( (LA165_0==SLASH) ) {
alt165=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 165, 0, input);
throw nvae;
}
switch (alt165) {
case 1 :
// MFortranParser2018.g:1941:7: IDENT
{
IDENT148=(Token)match(input,IDENT,FOLLOW_IDENT_in_bind_entity8083); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.bind_entity(IDENT148, false); }
}
break;
case 2 :
// MFortranParser2018.g:1943:7: SLASH IDENT SLASH
{
match(input,SLASH,FOLLOW_SLASH_in_bind_entity8100); if (state.failed) return;
IDENT149=(Token)match(input,IDENT,FOLLOW_IDENT_in_bind_entity8102); if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_bind_entity8104); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.bind_entity(IDENT149, true); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "bind_entity"
// $ANTLR start "bind_entity_list"
// MFortranParser2018.g:1947:1: bind_entity_list : bind_entity ( COMMA bind_entity )* ;
public final void bind_entity_list() throws RecognitionException {
int numBE = 1;
try {
// MFortranParser2018.g:1954:5: ( bind_entity ( COMMA bind_entity )* )
// MFortranParser2018.g:1954:7: bind_entity ( COMMA bind_entity )*
{
pushFollow(FOLLOW_bind_entity_in_bind_entity_list8138);
bind_entity();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1955:7: ( COMMA bind_entity )*
loop166:
while (true) {
int alt166=2;
int LA166_0 = input.LA(1);
if ( (LA166_0==COMMA) ) {
alt166=1;
}
switch (alt166) {
case 1 :
// MFortranParser2018.g:1955:9: COMMA bind_entity
{
match(input,COMMA,FOLLOW_COMMA_in_bind_entity_list8148); if (state.failed) return;
pushFollow(FOLLOW_bind_entity_in_bind_entity_list8150);
bind_entity();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numBE++;}
}
break;
default :
break loop166;
}
}
}
if ( state.backtracking==0 ) {
MFPA.bind_entity_list(numBE);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "bind_entity_list"
// $ANTLR start "codimension_stmt"
// MFortranParser2018.g:1961:1: codimension_stmt : (lbl= label )? CODIMENSION ( COLON_COLON )? codimension_decl_list end_of_stmt ;
public final void codimension_stmt() throws RecognitionException {
Token CODIMENSION150=null;
Token lbl =null;
Token end_of_stmt151 =null;
try {
// MFortranParser2018.g:1967:5: ( (lbl= label )? CODIMENSION ( COLON_COLON )? codimension_decl_list end_of_stmt )
// MFortranParser2018.g:1967:7: (lbl= label )? CODIMENSION ( COLON_COLON )? codimension_decl_list end_of_stmt
{
// MFortranParser2018.g:1967:7: (lbl= label )?
int alt167=2;
int LA167_0 = input.LA(1);
if ( (LA167_0==DIGIT_STR) ) {
alt167=1;
}
switch (alt167) {
case 1 :
// MFortranParser2018.g:1967:8: lbl= label
{
pushFollow(FOLLOW_label_in_codimension_stmt8185);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CODIMENSION150=(Token)match(input,CODIMENSION,FOLLOW_CODIMENSION_in_codimension_stmt8196); if (state.failed) return;
// MFortranParser2018.g:1968:19: ( COLON_COLON )?
int alt168=2;
int LA168_0 = input.LA(1);
if ( (LA168_0==COLON_COLON) ) {
alt168=1;
}
switch (alt168) {
case 1 :
// MFortranParser2018.g:1968:21: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_codimension_stmt8200); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_codimension_decl_list_in_codimension_stmt8205);
codimension_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_codimension_stmt8214);
end_of_stmt151=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.codimension_stmt(lbl, CODIMENSION150, end_of_stmt151); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "codimension_stmt"
// $ANTLR start "codimension_decl"
// MFortranParser2018.g:1976:1: codimension_decl : IDENT LBRACKET coarray_spec RBRACKET ;
public final void codimension_decl() throws RecognitionException {
Token IDENT152=null;
Token LBRACKET153=null;
Token RBRACKET154=null;
try {
// MFortranParser2018.g:1977:5: ( IDENT LBRACKET coarray_spec RBRACKET )
// MFortranParser2018.g:1977:7: IDENT LBRACKET coarray_spec RBRACKET
{
IDENT152=(Token)match(input,IDENT,FOLLOW_IDENT_in_codimension_decl8241); if (state.failed) return;
LBRACKET153=(Token)match(input,LBRACKET,FOLLOW_LBRACKET_in_codimension_decl8243); if (state.failed) return;
pushFollow(FOLLOW_coarray_spec_in_codimension_decl8245);
coarray_spec();
state._fsp--;
if (state.failed) return;
RBRACKET154=(Token)match(input,RBRACKET,FOLLOW_RBRACKET_in_codimension_decl8247); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.codimension_decl(IDENT152, LBRACKET153, RBRACKET154);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "codimension_decl"
// $ANTLR start "codimension_decl_list"
// MFortranParser2018.g:1981:1: codimension_decl_list : codimension_decl ( COMMA codimension_decl )* ;
public final void codimension_decl_list() throws RecognitionException {
int numCD = 1;
try {
// MFortranParser2018.g:1988:5: ( codimension_decl ( COMMA codimension_decl )* )
// MFortranParser2018.g:1988:7: codimension_decl ( COMMA codimension_decl )*
{
pushFollow(FOLLOW_codimension_decl_in_codimension_decl_list8280);
codimension_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:1989:7: ( COMMA codimension_decl )*
loop169:
while (true) {
int alt169=2;
int LA169_0 = input.LA(1);
if ( (LA169_0==COMMA) ) {
alt169=1;
}
switch (alt169) {
case 1 :
// MFortranParser2018.g:1989:9: COMMA codimension_decl
{
match(input,COMMA,FOLLOW_COMMA_in_codimension_decl_list8290); if (state.failed) return;
pushFollow(FOLLOW_codimension_decl_in_codimension_decl_list8292);
codimension_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCD++;}
}
break;
default :
break loop169;
}
}
}
if ( state.backtracking==0 ) {
MFPA.codimension_decl_list(numCD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "codimension_decl_list"
// $ANTLR start "contiguous_stmt"
// MFortranParser2018.g:1995:1: contiguous_stmt : (lbl= label )? CONTIGUOUS ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void contiguous_stmt() throws RecognitionException {
Token CONTIGUOUS155=null;
Token lbl =null;
Token end_of_stmt156 =null;
try {
// MFortranParser2018.g:2001:5: ( (lbl= label )? CONTIGUOUS ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:2001:7: (lbl= label )? CONTIGUOUS ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:2001:7: (lbl= label )?
int alt170=2;
int LA170_0 = input.LA(1);
if ( (LA170_0==DIGIT_STR) ) {
alt170=1;
}
switch (alt170) {
case 1 :
// MFortranParser2018.g:2001:8: lbl= label
{
pushFollow(FOLLOW_label_in_contiguous_stmt8327);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CONTIGUOUS155=(Token)match(input,CONTIGUOUS,FOLLOW_CONTIGUOUS_in_contiguous_stmt8338); if (state.failed) return;
// MFortranParser2018.g:2002:18: ( COLON_COLON )?
int alt171=2;
int LA171_0 = input.LA(1);
if ( (LA171_0==COLON_COLON) ) {
alt171=1;
}
switch (alt171) {
case 1 :
// MFortranParser2018.g:2002:20: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_contiguous_stmt8342); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_contiguous_stmt8347);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_contiguous_stmt8356);
end_of_stmt156=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.contiguous_stmt(lbl, CONTIGUOUS155, end_of_stmt156); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "contiguous_stmt"
// $ANTLR start "data_stmt"
// MFortranParser2018.g:2010:1: data_stmt : (lbl= label )? DATA data_stmt_set ( ( COMMA )? data_stmt_set )* end_of_stmt ;
public final void data_stmt() throws RecognitionException {
Token DATA157=null;
Token lbl =null;
Token end_of_stmt158 =null;
int numDSS = 1;
try {
// MFortranParser2018.g:2017:5: ( (lbl= label )? DATA data_stmt_set ( ( COMMA )? data_stmt_set )* end_of_stmt )
// MFortranParser2018.g:2017:7: (lbl= label )? DATA data_stmt_set ( ( COMMA )? data_stmt_set )* end_of_stmt
{
// MFortranParser2018.g:2017:7: (lbl= label )?
int alt172=2;
int LA172_0 = input.LA(1);
if ( (LA172_0==DIGIT_STR) ) {
alt172=1;
}
switch (alt172) {
case 1 :
// MFortranParser2018.g:2017:8: lbl= label
{
pushFollow(FOLLOW_label_in_data_stmt8396);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
DATA157=(Token)match(input,DATA,FOLLOW_DATA_in_data_stmt8408); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_set_in_data_stmt8410);
data_stmt_set();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2019:7: ( ( COMMA )? data_stmt_set )*
loop174:
while (true) {
int alt174=2;
int LA174_0 = input.LA(1);
if ( (LA174_0==CHAR_CONST||LA174_0==COMMA||LA174_0==DIGIT_STR||LA174_0==IDENT||LA174_0==LPAREN) ) {
alt174=1;
}
switch (alt174) {
case 1 :
// MFortranParser2018.g:2019:9: ( COMMA )? data_stmt_set
{
// MFortranParser2018.g:2019:9: ( COMMA )?
int alt173=2;
int LA173_0 = input.LA(1);
if ( (LA173_0==COMMA) ) {
alt173=1;
}
switch (alt173) {
case 1 :
// MFortranParser2018.g:2019:11: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_data_stmt8423); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_data_stmt_set_in_data_stmt8428);
data_stmt_set();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numDSS++;}
}
break;
default :
break loop174;
}
}
pushFollow(FOLLOW_end_of_stmt_in_data_stmt8441);
end_of_stmt158=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.data_stmt(lbl, DATA157, end_of_stmt158, numDSS); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_stmt"
// $ANTLR start "data_stmt_set"
// MFortranParser2018.g:2027:1: data_stmt_set : data_stmt_object_list SLASH data_stmt_value_list SLASH ;
public final void data_stmt_set() throws RecognitionException {
try {
// MFortranParser2018.g:2028:5: ( data_stmt_object_list SLASH data_stmt_value_list SLASH )
// MFortranParser2018.g:2028:7: data_stmt_object_list SLASH data_stmt_value_list SLASH
{
pushFollow(FOLLOW_data_stmt_object_list_in_data_stmt_set8468);
data_stmt_object_list();
state._fsp--;
if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_data_stmt_set8476); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_value_list_in_data_stmt_set8478);
data_stmt_value_list();
state._fsp--;
if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_data_stmt_set8480); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.data_stmt_set(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_stmt_set"
// $ANTLR start "data_stmt_object"
// MFortranParser2018.g:2036:1: data_stmt_object : ( variable | data_implied_do );
public final void data_stmt_object() throws RecognitionException {
try {
// MFortranParser2018.g:2040:5: ( variable | data_implied_do )
int alt175=2;
int LA175_0 = input.LA(1);
if ( (LA175_0==CHAR_CONST||LA175_0==DIGIT_STR||LA175_0==IDENT) ) {
alt175=1;
}
else if ( (LA175_0==LPAREN) ) {
alt175=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 175, 0, input);
throw nvae;
}
switch (alt175) {
case 1 :
// MFortranParser2018.g:2040:7: variable
{
pushFollow(FOLLOW_variable_in_data_stmt_object8512);
variable();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:2041:7: data_implied_do
{
pushFollow(FOLLOW_data_implied_do_in_data_stmt_object8520);
data_implied_do();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.data_stmt_object();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_stmt_object"
// $ANTLR start "data_stmt_object_list"
// MFortranParser2018.g:2044:1: data_stmt_object_list : data_stmt_object ( COMMA data_stmt_object )* ;
public final void data_stmt_object_list() throws RecognitionException {
int numDSO = 1;
try {
// MFortranParser2018.g:2051:5: ( data_stmt_object ( COMMA data_stmt_object )* )
// MFortranParser2018.g:2051:7: data_stmt_object ( COMMA data_stmt_object )*
{
pushFollow(FOLLOW_data_stmt_object_in_data_stmt_object_list8545);
data_stmt_object();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2052:7: ( COMMA data_stmt_object )*
loop176:
while (true) {
int alt176=2;
int LA176_0 = input.LA(1);
if ( (LA176_0==COMMA) ) {
alt176=1;
}
switch (alt176) {
case 1 :
// MFortranParser2018.g:2052:9: COMMA data_stmt_object
{
match(input,COMMA,FOLLOW_COMMA_in_data_stmt_object_list8555); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_object_in_data_stmt_object_list8557);
data_stmt_object();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numDSO++;}
}
break;
default :
break loop176;
}
}
}
if ( state.backtracking==0 ) {
MFPA.data_stmt_object_list(numDSO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_stmt_object_list"
// $ANTLR start "data_implied_do"
// MFortranParser2018.g:2061:1: data_implied_do : LPAREN data_i_do_object_list COMMA IDENT EQUALS expr COMMA expr ( COMMA expr )? RPAREN ;
public final void data_implied_do() throws RecognitionException {
Token IDENT159=null;
boolean hasStrd = false;
try {
// MFortranParser2018.g:2065:5: ( LPAREN data_i_do_object_list COMMA IDENT EQUALS expr COMMA expr ( COMMA expr )? RPAREN )
// MFortranParser2018.g:2065:7: LPAREN data_i_do_object_list COMMA IDENT EQUALS expr COMMA expr ( COMMA expr )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_data_implied_do8585); if (state.failed) return;
pushFollow(FOLLOW_data_i_do_object_list_in_data_implied_do8587);
data_i_do_object_list();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_data_implied_do8596); if (state.failed) return;
IDENT159=(Token)match(input,IDENT,FOLLOW_IDENT_in_data_implied_do8598); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_data_implied_do8600); if (state.failed) return;
pushFollow(FOLLOW_expr_in_data_implied_do8602);
expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_data_implied_do8611); if (state.failed) return;
pushFollow(FOLLOW_expr_in_data_implied_do8613);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2068:7: ( COMMA expr )?
int alt177=2;
int LA177_0 = input.LA(1);
if ( (LA177_0==COMMA) ) {
alt177=1;
}
switch (alt177) {
case 1 :
// MFortranParser2018.g:2068:9: COMMA expr
{
match(input,COMMA,FOLLOW_COMMA_in_data_implied_do8624); if (state.failed) return;
pushFollow(FOLLOW_expr_in_data_implied_do8626);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasStrd = true; }
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_data_implied_do8632); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.data_implied_do(IDENT159, hasStrd); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_implied_do"
// $ANTLR start "data_i_do_object"
// MFortranParser2018.g:2076:1: data_i_do_object : ( data_ref | data_implied_do );
public final void data_i_do_object() throws RecognitionException {
try {
// MFortranParser2018.g:2080:5: ( data_ref | data_implied_do )
int alt178=2;
int LA178_0 = input.LA(1);
if ( (LA178_0==IDENT) ) {
alt178=1;
}
else if ( (LA178_0==LPAREN) ) {
alt178=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 178, 0, input);
throw nvae;
}
switch (alt178) {
case 1 :
// MFortranParser2018.g:2080:7: data_ref
{
pushFollow(FOLLOW_data_ref_in_data_i_do_object8666);
data_ref();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:2081:7: data_implied_do
{
pushFollow(FOLLOW_data_implied_do_in_data_i_do_object8674);
data_implied_do();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.data_i_do_object();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_i_do_object"
// $ANTLR start "data_i_do_object_list"
// MFortranParser2018.g:2084:1: data_i_do_object_list : data_i_do_object ( COMMA data_i_do_object )* ;
public final void data_i_do_object_list() throws RecognitionException {
int numDIDO = 1;
try {
// MFortranParser2018.g:2091:5: ( data_i_do_object ( COMMA data_i_do_object )* )
// MFortranParser2018.g:2091:7: data_i_do_object ( COMMA data_i_do_object )*
{
pushFollow(FOLLOW_data_i_do_object_in_data_i_do_object_list8699);
data_i_do_object();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2092:7: ( COMMA data_i_do_object )*
loop179:
while (true) {
int alt179=2;
int LA179_0 = input.LA(1);
if ( (LA179_0==COMMA) ) {
int LA179_1 = input.LA(2);
if ( (LA179_1==IDENT) ) {
int LA179_2 = input.LA(3);
if ( (LA179_2==COMMA||LA179_2==LBRACKET||LA179_2==LPAREN||LA179_2==PERCENT) ) {
alt179=1;
}
}
else if ( (LA179_1==LPAREN) ) {
alt179=1;
}
}
switch (alt179) {
case 1 :
// MFortranParser2018.g:2092:9: COMMA data_i_do_object
{
match(input,COMMA,FOLLOW_COMMA_in_data_i_do_object_list8710); if (state.failed) return;
pushFollow(FOLLOW_data_i_do_object_in_data_i_do_object_list8712);
data_i_do_object();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numDIDO++;}
}
break;
default :
break loop179;
}
}
}
if ( state.backtracking==0 ) {
MFPA.data_i_do_object_list(numDIDO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_i_do_object_list"
// $ANTLR start "data_stmt_value"
// MFortranParser2018.g:2110:1: data_stmt_value options {backtrack=true; k=3; } : ( designator ( ASTERISK data_stmt_constant )? | int_literal_constant ( ASTERISK data_stmt_constant )? | signed_int_literal_constant | signed_real_literal_constant | complex_literal_constant | logical_literal_constant | char_literal_constant | boz_literal_constant | structure_constructor );
public final void data_stmt_value() throws RecognitionException {
Token ASTERISK160=null;
Token ASTERISK161=null;
Token t = null;
try {
// MFortranParser2018.g:2118:5: ( designator ( ASTERISK data_stmt_constant )? | int_literal_constant ( ASTERISK data_stmt_constant )? | signed_int_literal_constant | signed_real_literal_constant | complex_literal_constant | logical_literal_constant | char_literal_constant | boz_literal_constant | structure_constructor )
int alt182=9;
switch ( input.LA(1) ) {
case IDENT:
{
switch ( input.LA(2) ) {
case LPAREN:
{
switch ( input.LA(3) ) {
case NOT:
{
int LA182_33 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case PLUS:
{
int LA182_34 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case MINUS:
{
int LA182_35 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case DEFINED_OP:
{
int LA182_36 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case IDENT:
{
int LA182_37 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case DIGIT_STR:
{
int LA182_38 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case CHAR_CONST:
{
int LA182_39 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case M_REAL_CONST:
{
int LA182_40 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case LPAREN:
{
int LA182_41 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case TRUE:
{
int LA182_42 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case FALSE:
{
int LA182_43 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case BIN_CONST:
{
int LA182_44 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case OCT_CONST:
{
int LA182_45 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case HEX_CONST:
{
int LA182_46 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case LBRACKET:
{
int LA182_47 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case COLON:
{
int LA182_48 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
case COLON_COLON:
case COMMA:
case RPAREN:
{
alt182=1;
}
break;
case ASTERISK:
{
int LA182_50 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (true) ) {
alt182=9;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 182, 13, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR_CONST:
{
int LA182_14 = input.LA(3);
if ( (LA182_14==LPAREN) ) {
alt182=1;
}
else if ( (LA182_14==COMMA||LA182_14==SLASH) ) {
alt182=7;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 182, 14, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ASTERISK:
case COMMA:
case LBRACKET:
case PERCENT:
case SLASH:
{
alt182=1;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 182, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIGIT_STR:
{
int LA182_2 = input.LA(2);
if ( (LA182_2==UNDERSCORE) ) {
int LA182_20 = input.LA(3);
if ( (LA182_20==CHAR_CONST) ) {
int LA182_56 = input.LA(4);
if ( (synpred8_MFortranParser2018()) ) {
alt182=1;
}
else if ( (synpred14_MFortranParser2018()) ) {
alt182=7;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 182, 56, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 182, 20, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (synpred9_MFortranParser2018()) ) {
alt182=2;
}
else if ( (synpred10_MFortranParser2018()) ) {
alt182=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 182, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR_CONST:
{
int LA182_3 = input.LA(2);
if ( (LA182_3==LPAREN) ) {
alt182=1;
}
else if ( (LA182_3==COMMA||LA182_3==SLASH) ) {
alt182=7;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 182, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PLUS:
{
int LA182_4 = input.LA(2);
if ( (LA182_4==DIGIT_STR) ) {
alt182=3;
}
else if ( (LA182_4==M_REAL_CONST) ) {
alt182=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 182, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MINUS:
{
int LA182_5 = input.LA(2);
if ( (LA182_5==DIGIT_STR) ) {
alt182=3;
}
else if ( (LA182_5==M_REAL_CONST) ) {
alt182=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 182, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case M_REAL_CONST:
{
alt182=4;
}
break;
case LPAREN:
{
alt182=5;
}
break;
case FALSE:
case TRUE:
{
alt182=6;
}
break;
case BIN_CONST:
case HEX_CONST:
case OCT_CONST:
{
alt182=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 182, 0, input);
throw nvae;
}
switch (alt182) {
case 1 :
// MFortranParser2018.g:2118:7: designator ( ASTERISK data_stmt_constant )?
{
pushFollow(FOLLOW_designator_in_data_stmt_value8757);
designator();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2118:18: ( ASTERISK data_stmt_constant )?
int alt180=2;
int LA180_0 = input.LA(1);
if ( (LA180_0==ASTERISK) ) {
alt180=1;
}
switch (alt180) {
case 1 :
// MFortranParser2018.g:2118:19: ASTERISK data_stmt_constant
{
ASTERISK160=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_data_stmt_value8760); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_constant_in_data_stmt_value8762);
data_stmt_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {t=ASTERISK160;}
}
break;
}
}
break;
case 2 :
// MFortranParser2018.g:2119:7: int_literal_constant ( ASTERISK data_stmt_constant )?
{
pushFollow(FOLLOW_int_literal_constant_in_data_stmt_value8774);
int_literal_constant();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2119:28: ( ASTERISK data_stmt_constant )?
int alt181=2;
int LA181_0 = input.LA(1);
if ( (LA181_0==ASTERISK) ) {
alt181=1;
}
switch (alt181) {
case 1 :
// MFortranParser2018.g:2119:29: ASTERISK data_stmt_constant
{
ASTERISK161=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_data_stmt_value8777); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_constant_in_data_stmt_value8779);
data_stmt_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {t=ASTERISK161;}
}
break;
}
}
break;
case 3 :
// MFortranParser2018.g:2120:7: signed_int_literal_constant
{
pushFollow(FOLLOW_signed_int_literal_constant_in_data_stmt_value8791);
signed_int_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:2121:7: signed_real_literal_constant
{
pushFollow(FOLLOW_signed_real_literal_constant_in_data_stmt_value8799);
signed_real_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:2122:7: complex_literal_constant
{
pushFollow(FOLLOW_complex_literal_constant_in_data_stmt_value8807);
complex_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// MFortranParser2018.g:2123:7: logical_literal_constant
{
pushFollow(FOLLOW_logical_literal_constant_in_data_stmt_value8815);
logical_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 7 :
// MFortranParser2018.g:2124:7: char_literal_constant
{
pushFollow(FOLLOW_char_literal_constant_in_data_stmt_value8823);
char_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 8 :
// MFortranParser2018.g:2125:7: boz_literal_constant
{
pushFollow(FOLLOW_boz_literal_constant_in_data_stmt_value8831);
boz_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 9 :
// MFortranParser2018.g:2126:7: structure_constructor
{
pushFollow(FOLLOW_structure_constructor_in_data_stmt_value8839);
structure_constructor();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.data_stmt_value(t);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_stmt_value"
// $ANTLR start "data_stmt_value_list"
// MFortranParser2018.g:2129:1: data_stmt_value_list : data_stmt_value ( COMMA data_stmt_value )* ;
public final void data_stmt_value_list() throws RecognitionException {
int numDSV = 1;
try {
// MFortranParser2018.g:2136:5: ( data_stmt_value ( COMMA data_stmt_value )* )
// MFortranParser2018.g:2136:7: data_stmt_value ( COMMA data_stmt_value )*
{
pushFollow(FOLLOW_data_stmt_value_in_data_stmt_value_list8864);
data_stmt_value();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2137:7: ( COMMA data_stmt_value )*
loop183:
while (true) {
int alt183=2;
int LA183_0 = input.LA(1);
if ( (LA183_0==COMMA) ) {
alt183=1;
}
switch (alt183) {
case 1 :
// MFortranParser2018.g:2137:9: COMMA data_stmt_value
{
match(input,COMMA,FOLLOW_COMMA_in_data_stmt_value_list8874); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_value_in_data_stmt_value_list8876);
data_stmt_value();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numDSV++;}
}
break;
default :
break loop183;
}
}
}
if ( state.backtracking==0 ) {
MFPA.data_stmt_value_list(numDSV);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_stmt_value_list"
// $ANTLR start "data_stmt_constant"
// MFortranParser2018.g:2148:1: data_stmt_constant options {backtrack=true; k=3; } : ( designator | signed_int_literal_constant | signed_real_literal_constant | complex_literal_constant | logical_literal_constant | char_literal_constant | boz_literal_constant | structure_constructor );
public final void data_stmt_constant() throws RecognitionException {
try {
// MFortranParser2018.g:2153:5: ( designator | signed_int_literal_constant | signed_real_literal_constant | complex_literal_constant | logical_literal_constant | char_literal_constant | boz_literal_constant | structure_constructor )
int alt184=8;
alt184 = dfa184.predict(input);
switch (alt184) {
case 1 :
// MFortranParser2018.g:2153:7: designator
{
pushFollow(FOLLOW_designator_in_data_stmt_constant8917);
designator();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:2154:7: signed_int_literal_constant
{
pushFollow(FOLLOW_signed_int_literal_constant_in_data_stmt_constant8925);
signed_int_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:2155:7: signed_real_literal_constant
{
pushFollow(FOLLOW_signed_real_literal_constant_in_data_stmt_constant8933);
signed_real_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:2156:7: complex_literal_constant
{
pushFollow(FOLLOW_complex_literal_constant_in_data_stmt_constant8941);
complex_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:2157:7: logical_literal_constant
{
pushFollow(FOLLOW_logical_literal_constant_in_data_stmt_constant8949);
logical_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// MFortranParser2018.g:2158:7: char_literal_constant
{
pushFollow(FOLLOW_char_literal_constant_in_data_stmt_constant8957);
char_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 7 :
// MFortranParser2018.g:2159:7: boz_literal_constant
{
pushFollow(FOLLOW_boz_literal_constant_in_data_stmt_constant8965);
boz_literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 8 :
// MFortranParser2018.g:2160:7: structure_constructor
{
pushFollow(FOLLOW_structure_constructor_in_data_stmt_constant8973);
structure_constructor();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.data_stmt_constant();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_stmt_constant"
// $ANTLR start "dimension_stmt"
// MFortranParser2018.g:2166:1: dimension_stmt : (lbl= label )? DIMENSION ( COLON_COLON )? dimension_decl ( COMMA dimension_decl )* end_of_stmt ;
public final void dimension_stmt() throws RecognitionException {
Token DIMENSION162=null;
Token lbl =null;
Token end_of_stmt163 =null;
int numDD = 1;
try {
// MFortranParser2018.g:2173:5: ( (lbl= label )? DIMENSION ( COLON_COLON )? dimension_decl ( COMMA dimension_decl )* end_of_stmt )
// MFortranParser2018.g:2173:7: (lbl= label )? DIMENSION ( COLON_COLON )? dimension_decl ( COMMA dimension_decl )* end_of_stmt
{
// MFortranParser2018.g:2173:7: (lbl= label )?
int alt185=2;
int LA185_0 = input.LA(1);
if ( (LA185_0==DIGIT_STR) ) {
alt185=1;
}
switch (alt185) {
case 1 :
// MFortranParser2018.g:2173:8: lbl= label
{
pushFollow(FOLLOW_label_in_dimension_stmt9004);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
DIMENSION162=(Token)match(input,DIMENSION,FOLLOW_DIMENSION_in_dimension_stmt9015); if (state.failed) return;
// MFortranParser2018.g:2174:17: ( COLON_COLON )?
int alt186=2;
int LA186_0 = input.LA(1);
if ( (LA186_0==COLON_COLON) ) {
alt186=1;
}
switch (alt186) {
case 1 :
// MFortranParser2018.g:2174:19: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_dimension_stmt9019); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_dimension_decl_in_dimension_stmt9031);
dimension_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2175:22: ( COMMA dimension_decl )*
loop187:
while (true) {
int alt187=2;
int LA187_0 = input.LA(1);
if ( (LA187_0==COMMA) ) {
alt187=1;
}
switch (alt187) {
case 1 :
// MFortranParser2018.g:2175:24: COMMA dimension_decl
{
match(input,COMMA,FOLLOW_COMMA_in_dimension_stmt9035); if (state.failed) return;
pushFollow(FOLLOW_dimension_decl_in_dimension_stmt9037);
dimension_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numDD++;}
}
break;
default :
break loop187;
}
}
pushFollow(FOLLOW_end_of_stmt_in_dimension_stmt9050);
end_of_stmt163=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.dimension_stmt(lbl, DIMENSION162, end_of_stmt163, numDD); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dimension_stmt"
// $ANTLR start "dimension_decl"
// MFortranParser2018.g:2180:1: dimension_decl : IDENT LPAREN array_spec RPAREN ;
public final void dimension_decl() throws RecognitionException {
Token IDENT164=null;
try {
// MFortranParser2018.g:2181:5: ( IDENT LPAREN array_spec RPAREN )
// MFortranParser2018.g:2181:7: IDENT LPAREN array_spec RPAREN
{
IDENT164=(Token)match(input,IDENT,FOLLOW_IDENT_in_dimension_decl9077); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_dimension_decl9079); if (state.failed) return;
pushFollow(FOLLOW_array_spec_in_dimension_decl9081);
array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_dimension_decl9083); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.dimension_decl(IDENT164);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dimension_decl"
// $ANTLR start "intent_stmt"
// MFortranParser2018.g:2189:1: intent_stmt : (lbl= label )? INTENT LPAREN intent_spec RPAREN ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void intent_stmt() throws RecognitionException {
Token INTENT165=null;
Token lbl =null;
Token end_of_stmt166 =null;
try {
// MFortranParser2018.g:2195:5: ( (lbl= label )? INTENT LPAREN intent_spec RPAREN ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:2195:7: (lbl= label )? INTENT LPAREN intent_spec RPAREN ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:2195:7: (lbl= label )?
int alt188=2;
int LA188_0 = input.LA(1);
if ( (LA188_0==DIGIT_STR) ) {
alt188=1;
}
switch (alt188) {
case 1 :
// MFortranParser2018.g:2195:8: lbl= label
{
pushFollow(FOLLOW_label_in_intent_stmt9123);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
INTENT165=(Token)match(input,INTENT,FOLLOW_INTENT_in_intent_stmt9135); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_intent_stmt9137); if (state.failed) return;
pushFollow(FOLLOW_intent_spec_in_intent_stmt9139);
intent_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_intent_stmt9141); if (state.failed) return;
// MFortranParser2018.g:2196:40: ( COLON_COLON )?
int alt189=2;
int LA189_0 = input.LA(1);
if ( (LA189_0==COLON_COLON) ) {
alt189=1;
}
switch (alt189) {
case 1 :
// MFortranParser2018.g:2196:42: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_intent_stmt9145); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_intent_stmt9150);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_intent_stmt9159);
end_of_stmt166=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intent_stmt(lbl,INTENT165,end_of_stmt166);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "intent_stmt"
// $ANTLR start "optional_stmt"
// MFortranParser2018.g:2205:1: optional_stmt : (lbl= label )? OPTIONAL ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void optional_stmt() throws RecognitionException {
Token OPTIONAL167=null;
Token lbl =null;
Token end_of_stmt168 =null;
try {
// MFortranParser2018.g:2211:5: ( (lbl= label )? OPTIONAL ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:2211:7: (lbl= label )? OPTIONAL ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:2211:7: (lbl= label )?
int alt190=2;
int LA190_0 = input.LA(1);
if ( (LA190_0==DIGIT_STR) ) {
alt190=1;
}
switch (alt190) {
case 1 :
// MFortranParser2018.g:2211:8: lbl= label
{
pushFollow(FOLLOW_label_in_optional_stmt9200);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
OPTIONAL167=(Token)match(input,OPTIONAL,FOLLOW_OPTIONAL_in_optional_stmt9212); if (state.failed) return;
// MFortranParser2018.g:2212:16: ( COLON_COLON )?
int alt191=2;
int LA191_0 = input.LA(1);
if ( (LA191_0==COLON_COLON) ) {
alt191=1;
}
switch (alt191) {
case 1 :
// MFortranParser2018.g:2212:18: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_optional_stmt9216); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_optional_stmt9221);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_optional_stmt9230);
end_of_stmt168=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.optional_stmt(lbl, OPTIONAL167, end_of_stmt168); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "optional_stmt"
// $ANTLR start "parameter_stmt"
// MFortranParser2018.g:2220:1: parameter_stmt : (lbl= label )? PARAMETER LPAREN named_constant_def_list RPAREN end_of_stmt ;
public final void parameter_stmt() throws RecognitionException {
Token PARAMETER169=null;
Token lbl =null;
Token end_of_stmt170 =null;
try {
// MFortranParser2018.g:2226:5: ( (lbl= label )? PARAMETER LPAREN named_constant_def_list RPAREN end_of_stmt )
// MFortranParser2018.g:2226:7: (lbl= label )? PARAMETER LPAREN named_constant_def_list RPAREN end_of_stmt
{
// MFortranParser2018.g:2226:7: (lbl= label )?
int alt192=2;
int LA192_0 = input.LA(1);
if ( (LA192_0==DIGIT_STR) ) {
alt192=1;
}
switch (alt192) {
case 1 :
// MFortranParser2018.g:2226:8: lbl= label
{
pushFollow(FOLLOW_label_in_parameter_stmt9270);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PARAMETER169=(Token)match(input,PARAMETER,FOLLOW_PARAMETER_in_parameter_stmt9281); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_parameter_stmt9283); if (state.failed) return;
pushFollow(FOLLOW_named_constant_def_list_in_parameter_stmt9285);
named_constant_def_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_parameter_stmt9287); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_parameter_stmt9295);
end_of_stmt170=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.parameter_stmt(lbl,PARAMETER169,end_of_stmt170);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "parameter_stmt"
// $ANTLR start "named_constant_def"
// MFortranParser2018.g:2237:1: named_constant_def : IDENT EQUALS expr ;
public final void named_constant_def() throws RecognitionException {
Token IDENT171=null;
try {
// MFortranParser2018.g:2238:5: ( IDENT EQUALS expr )
// MFortranParser2018.g:2238:7: IDENT EQUALS expr
{
IDENT171=(Token)match(input,IDENT,FOLLOW_IDENT_in_named_constant_def9324); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_named_constant_def9326); if (state.failed) return;
pushFollow(FOLLOW_expr_in_named_constant_def9328);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.named_constant_def(IDENT171);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "named_constant_def"
// $ANTLR start "named_constant_def_list"
// MFortranParser2018.g:2242:1: named_constant_def_list : named_constant_def ( COMMA named_constant_def )* ;
public final void named_constant_def_list() throws RecognitionException {
int numNCD = 1;
try {
// MFortranParser2018.g:2249:5: ( named_constant_def ( COMMA named_constant_def )* )
// MFortranParser2018.g:2249:7: named_constant_def ( COMMA named_constant_def )*
{
pushFollow(FOLLOW_named_constant_def_in_named_constant_def_list9363);
named_constant_def();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2250:7: ( COMMA named_constant_def )*
loop193:
while (true) {
int alt193=2;
int LA193_0 = input.LA(1);
if ( (LA193_0==COMMA) ) {
alt193=1;
}
switch (alt193) {
case 1 :
// MFortranParser2018.g:2250:9: COMMA named_constant_def
{
match(input,COMMA,FOLLOW_COMMA_in_named_constant_def_list9373); if (state.failed) return;
pushFollow(FOLLOW_named_constant_def_in_named_constant_def_list9375);
named_constant_def();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numNCD++;}
}
break;
default :
break loop193;
}
}
}
if ( state.backtracking==0 ) {
MFPA.named_constant_def_list(numNCD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "named_constant_def_list"
// $ANTLR start "pointer_stmt"
// MFortranParser2018.g:2256:1: pointer_stmt : (lbl= label )? POINTER ( cray_pointer_assoc_list | ( ( COLON_COLON )? pointer_decl_list ) ) end_of_stmt ;
public final void pointer_stmt() throws RecognitionException {
Token POINTER172=null;
Token lbl =null;
Token end_of_stmt173 =null;
boolean isCrayPointer=false;
try {
// MFortranParser2018.g:2263:5: ( (lbl= label )? POINTER ( cray_pointer_assoc_list | ( ( COLON_COLON )? pointer_decl_list ) ) end_of_stmt )
// MFortranParser2018.g:2263:7: (lbl= label )? POINTER ( cray_pointer_assoc_list | ( ( COLON_COLON )? pointer_decl_list ) ) end_of_stmt
{
// MFortranParser2018.g:2263:7: (lbl= label )?
int alt194=2;
int LA194_0 = input.LA(1);
if ( (LA194_0==DIGIT_STR) ) {
alt194=1;
}
switch (alt194) {
case 1 :
// MFortranParser2018.g:2263:8: lbl= label
{
pushFollow(FOLLOW_label_in_pointer_stmt9410);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
POINTER172=(Token)match(input,POINTER,FOLLOW_POINTER_in_pointer_stmt9422); if (state.failed) return;
// MFortranParser2018.g:2265:7: ( cray_pointer_assoc_list | ( ( COLON_COLON )? pointer_decl_list ) )
int alt196=2;
int LA196_0 = input.LA(1);
if ( (LA196_0==LPAREN) ) {
alt196=1;
}
else if ( (LA196_0==COLON_COLON||LA196_0==IDENT) ) {
alt196=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 196, 0, input);
throw nvae;
}
switch (alt196) {
case 1 :
// MFortranParser2018.g:2265:9: cray_pointer_assoc_list
{
pushFollow(FOLLOW_cray_pointer_assoc_list_in_pointer_stmt9432);
cray_pointer_assoc_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {isCrayPointer = true;}
}
break;
case 2 :
// MFortranParser2018.g:2266:9: ( ( COLON_COLON )? pointer_decl_list )
{
// MFortranParser2018.g:2266:9: ( ( COLON_COLON )? pointer_decl_list )
// MFortranParser2018.g:2266:11: ( COLON_COLON )? pointer_decl_list
{
// MFortranParser2018.g:2266:11: ( COLON_COLON )?
int alt195=2;
int LA195_0 = input.LA(1);
if ( (LA195_0==COLON_COLON) ) {
alt195=1;
}
switch (alt195) {
case 1 :
// MFortranParser2018.g:2266:13: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_pointer_stmt9449); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_pointer_decl_list_in_pointer_stmt9454);
pointer_decl_list();
state._fsp--;
if (state.failed) return;
}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_pointer_stmt9473);
end_of_stmt173=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { if (isCrayPointer) {
MFPA.cray_pointer_stmt(lbl,POINTER172,end_of_stmt173);
} else {
MFPA.pointer_stmt(lbl,POINTER172,end_of_stmt173);
}
}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pointer_stmt"
// $ANTLR start "pointer_decl"
// MFortranParser2018.g:2282:1: pointer_decl : IDENT ( LPAREN deferred_shape_spec_list RPAREN )? ;
public final void pointer_decl() throws RecognitionException {
Token IDENT174=null;
boolean hasSL = false;
try {
// MFortranParser2018.g:2286:5: ( IDENT ( LPAREN deferred_shape_spec_list RPAREN )? )
// MFortranParser2018.g:2286:7: IDENT ( LPAREN deferred_shape_spec_list RPAREN )?
{
IDENT174=(Token)match(input,IDENT,FOLLOW_IDENT_in_pointer_decl9506); if (state.failed) return;
// MFortranParser2018.g:2287:7: ( LPAREN deferred_shape_spec_list RPAREN )?
int alt197=2;
int LA197_0 = input.LA(1);
if ( (LA197_0==LPAREN) ) {
alt197=1;
}
switch (alt197) {
case 1 :
// MFortranParser2018.g:2287:9: LPAREN deferred_shape_spec_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_pointer_decl9517); if (state.failed) return;
pushFollow(FOLLOW_deferred_shape_spec_list_in_pointer_decl9519);
deferred_shape_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_pointer_decl9521); if (state.failed) return;
if ( state.backtracking==0 ) {hasSL=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.pointer_decl(IDENT174,hasSL);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pointer_decl"
// $ANTLR start "cray_pointer_assoc"
// MFortranParser2018.g:2291:1: cray_pointer_assoc : LPAREN pointer= IDENT COMMA pointee= IDENT RPAREN ;
public final void cray_pointer_assoc() throws RecognitionException {
Token pointer=null;
Token pointee=null;
try {
// MFortranParser2018.g:2292:5: ( LPAREN pointer= IDENT COMMA pointee= IDENT RPAREN )
// MFortranParser2018.g:2292:7: LPAREN pointer= IDENT COMMA pointee= IDENT RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_cray_pointer_assoc9552); if (state.failed) return;
pointer=(Token)match(input,IDENT,FOLLOW_IDENT_in_cray_pointer_assoc9556); if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_cray_pointer_assoc9558); if (state.failed) return;
pointee=(Token)match(input,IDENT,FOLLOW_IDENT_in_cray_pointer_assoc9562); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_cray_pointer_assoc9564); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.cray_pointer_assoc(pointer, pointee);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "cray_pointer_assoc"
// $ANTLR start "pointer_decl_list"
// MFortranParser2018.g:2296:1: pointer_decl_list : pointer_decl ( COMMA pointer_decl )* ;
public final void pointer_decl_list() throws RecognitionException {
int numPD = 1;
try {
// MFortranParser2018.g:2303:5: ( pointer_decl ( COMMA pointer_decl )* )
// MFortranParser2018.g:2303:7: pointer_decl ( COMMA pointer_decl )*
{
pushFollow(FOLLOW_pointer_decl_in_pointer_decl_list9599);
pointer_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2304:7: ( COMMA pointer_decl )*
loop198:
while (true) {
int alt198=2;
int LA198_0 = input.LA(1);
if ( (LA198_0==COMMA) ) {
alt198=1;
}
switch (alt198) {
case 1 :
// MFortranParser2018.g:2304:9: COMMA pointer_decl
{
match(input,COMMA,FOLLOW_COMMA_in_pointer_decl_list9609); if (state.failed) return;
pushFollow(FOLLOW_pointer_decl_in_pointer_decl_list9611);
pointer_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPD++;}
}
break;
default :
break loop198;
}
}
}
if ( state.backtracking==0 ) {
MFPA.pointer_decl_list(numPD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pointer_decl_list"
// $ANTLR start "cray_pointer_assoc_list"
// MFortranParser2018.g:2307:1: cray_pointer_assoc_list : cray_pointer_assoc ( COMMA cray_pointer_assoc )* ;
public final void cray_pointer_assoc_list() throws RecognitionException {
int numCPA = 1;
try {
// MFortranParser2018.g:2314:5: ( cray_pointer_assoc ( COMMA cray_pointer_assoc )* )
// MFortranParser2018.g:2314:7: cray_pointer_assoc ( COMMA cray_pointer_assoc )*
{
pushFollow(FOLLOW_cray_pointer_assoc_in_cray_pointer_assoc_list9641);
cray_pointer_assoc();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2315:7: ( COMMA cray_pointer_assoc )*
loop199:
while (true) {
int alt199=2;
int LA199_0 = input.LA(1);
if ( (LA199_0==COMMA) ) {
alt199=1;
}
switch (alt199) {
case 1 :
// MFortranParser2018.g:2315:9: COMMA cray_pointer_assoc
{
match(input,COMMA,FOLLOW_COMMA_in_cray_pointer_assoc_list9651); if (state.failed) return;
pushFollow(FOLLOW_cray_pointer_assoc_in_cray_pointer_assoc_list9653);
cray_pointer_assoc();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCPA++;}
}
break;
default :
break loop199;
}
}
}
if ( state.backtracking==0 ) {
MFPA.cray_pointer_assoc_list(numCPA);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "cray_pointer_assoc_list"
// $ANTLR start "protected_stmt"
// MFortranParser2018.g:2322:1: protected_stmt : (lbl= label )? PROTECTED ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void protected_stmt() throws RecognitionException {
Token PROTECTED175=null;
Token lbl =null;
Token end_of_stmt176 =null;
try {
// MFortranParser2018.g:2328:5: ( (lbl= label )? PROTECTED ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:2328:7: (lbl= label )? PROTECTED ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:2328:7: (lbl= label )?
int alt200=2;
int LA200_0 = input.LA(1);
if ( (LA200_0==DIGIT_STR) ) {
alt200=1;
}
switch (alt200) {
case 1 :
// MFortranParser2018.g:2328:8: lbl= label
{
pushFollow(FOLLOW_label_in_protected_stmt9688);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PROTECTED175=(Token)match(input,PROTECTED,FOLLOW_PROTECTED_in_protected_stmt9699); if (state.failed) return;
// MFortranParser2018.g:2329:17: ( COLON_COLON )?
int alt201=2;
int LA201_0 = input.LA(1);
if ( (LA201_0==COLON_COLON) ) {
alt201=1;
}
switch (alt201) {
case 1 :
// MFortranParser2018.g:2329:19: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_protected_stmt9703); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_protected_stmt9708);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_protected_stmt9716);
end_of_stmt176=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.protected_stmt(lbl,PROTECTED175,end_of_stmt176);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "protected_stmt"
// $ANTLR start "save_stmt"
// MFortranParser2018.g:2337:1: save_stmt : (lbl= label )? SAVE ( ( COLON_COLON )? saved_entity_list )? end_of_stmt ;
public final void save_stmt() throws RecognitionException {
Token SAVE177=null;
Token lbl =null;
Token end_of_stmt178 =null;
boolean hasSEL = false;
try {
// MFortranParser2018.g:2344:5: ( (lbl= label )? SAVE ( ( COLON_COLON )? saved_entity_list )? end_of_stmt )
// MFortranParser2018.g:2344:7: (lbl= label )? SAVE ( ( COLON_COLON )? saved_entity_list )? end_of_stmt
{
// MFortranParser2018.g:2344:7: (lbl= label )?
int alt202=2;
int LA202_0 = input.LA(1);
if ( (LA202_0==DIGIT_STR) ) {
alt202=1;
}
switch (alt202) {
case 1 :
// MFortranParser2018.g:2344:8: lbl= label
{
pushFollow(FOLLOW_label_in_save_stmt9756);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SAVE177=(Token)match(input,SAVE,FOLLOW_SAVE_in_save_stmt9768); if (state.failed) return;
// MFortranParser2018.g:2345:12: ( ( COLON_COLON )? saved_entity_list )?
int alt204=2;
int LA204_0 = input.LA(1);
if ( (LA204_0==COLON_COLON||LA204_0==IDENT||LA204_0==SLASH) ) {
alt204=1;
}
switch (alt204) {
case 1 :
// MFortranParser2018.g:2345:14: ( COLON_COLON )? saved_entity_list
{
// MFortranParser2018.g:2345:14: ( COLON_COLON )?
int alt203=2;
int LA203_0 = input.LA(1);
if ( (LA203_0==COLON_COLON) ) {
alt203=1;
}
switch (alt203) {
case 1 :
// MFortranParser2018.g:2345:16: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_save_stmt9774); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_saved_entity_list_in_save_stmt9779);
saved_entity_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSEL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_save_stmt9793);
end_of_stmt178=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.save_stmt(lbl,SAVE177,end_of_stmt178,hasSEL);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "save_stmt"
// $ANTLR start "saved_entity"
// MFortranParser2018.g:2357:1: saved_entity : (id= IDENT | SLASH id= IDENT SLASH );
public final void saved_entity() throws RecognitionException {
Token id=null;
try {
// MFortranParser2018.g:2358:5: (id= IDENT | SLASH id= IDENT SLASH )
int alt205=2;
int LA205_0 = input.LA(1);
if ( (LA205_0==IDENT) ) {
alt205=1;
}
else if ( (LA205_0==SLASH) ) {
alt205=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 205, 0, input);
throw nvae;
}
switch (alt205) {
case 1 :
// MFortranParser2018.g:2358:7: id= IDENT
{
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_saved_entity9824); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.saved_entity(id, false);}
}
break;
case 2 :
// MFortranParser2018.g:2360:7: SLASH id= IDENT SLASH
{
match(input,SLASH,FOLLOW_SLASH_in_saved_entity9842); if (state.failed) return;
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_saved_entity9846); if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_saved_entity9848); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.saved_entity(id, true);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "saved_entity"
// $ANTLR start "saved_entity_list"
// MFortranParser2018.g:2364:1: saved_entity_list : saved_entity ( COMMA saved_entity )* ;
public final void saved_entity_list() throws RecognitionException {
int numSE = 1;
try {
// MFortranParser2018.g:2371:5: ( saved_entity ( COMMA saved_entity )* )
// MFortranParser2018.g:2371:7: saved_entity ( COMMA saved_entity )*
{
pushFollow(FOLLOW_saved_entity_in_saved_entity_list9884);
saved_entity();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2372:7: ( COMMA saved_entity )*
loop206:
while (true) {
int alt206=2;
int LA206_0 = input.LA(1);
if ( (LA206_0==COMMA) ) {
alt206=1;
}
switch (alt206) {
case 1 :
// MFortranParser2018.g:2372:9: COMMA saved_entity
{
match(input,COMMA,FOLLOW_COMMA_in_saved_entity_list9894); if (state.failed) return;
pushFollow(FOLLOW_saved_entity_in_saved_entity_list9896);
saved_entity();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numSE++;}
}
break;
default :
break loop206;
}
}
}
if ( state.backtracking==0 ) {
MFPA.saved_entity_list(numSE);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "saved_entity_list"
// $ANTLR start "target_stmt"
// MFortranParser2018.g:2379:1: target_stmt : (lbl= label )? TARGET ( COLON_COLON )? target_decl_list end_of_stmt ;
public final void target_stmt() throws RecognitionException {
Token TARGET179=null;
Token lbl =null;
Token end_of_stmt180 =null;
try {
// MFortranParser2018.g:2385:5: ( (lbl= label )? TARGET ( COLON_COLON )? target_decl_list end_of_stmt )
// MFortranParser2018.g:2385:7: (lbl= label )? TARGET ( COLON_COLON )? target_decl_list end_of_stmt
{
// MFortranParser2018.g:2385:7: (lbl= label )?
int alt207=2;
int LA207_0 = input.LA(1);
if ( (LA207_0==DIGIT_STR) ) {
alt207=1;
}
switch (alt207) {
case 1 :
// MFortranParser2018.g:2385:8: lbl= label
{
pushFollow(FOLLOW_label_in_target_stmt9931);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
TARGET179=(Token)match(input,TARGET,FOLLOW_TARGET_in_target_stmt9942); if (state.failed) return;
// MFortranParser2018.g:2386:14: ( COLON_COLON )?
int alt208=2;
int LA208_0 = input.LA(1);
if ( (LA208_0==COLON_COLON) ) {
alt208=1;
}
switch (alt208) {
case 1 :
// MFortranParser2018.g:2386:16: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_target_stmt9946); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_target_decl_list_in_target_stmt9951);
target_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_target_stmt9959);
end_of_stmt180=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.target_stmt(lbl,TARGET179,end_of_stmt180);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "target_stmt"
// $ANTLR start "target_decl"
// MFortranParser2018.g:2394:1: target_decl : IDENT ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? ;
public final void target_decl() throws RecognitionException {
Token IDENT181=null;
boolean hasAS=false;
boolean hasCS=false;
try {
// MFortranParser2018.g:2399:5: ( IDENT ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )? )
// MFortranParser2018.g:2399:7: IDENT ( LPAREN array_spec RPAREN )? ( LBRACKET coarray_spec RBRACKET )?
{
IDENT181=(Token)match(input,IDENT,FOLLOW_IDENT_in_target_decl9992); if (state.failed) return;
// MFortranParser2018.g:2400:7: ( LPAREN array_spec RPAREN )?
int alt209=2;
int LA209_0 = input.LA(1);
if ( (LA209_0==LPAREN) ) {
alt209=1;
}
switch (alt209) {
case 1 :
// MFortranParser2018.g:2400:8: LPAREN array_spec RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_target_decl10002); if (state.failed) return;
pushFollow(FOLLOW_array_spec_in_target_decl10004);
array_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_target_decl10006); if (state.failed) return;
if ( state.backtracking==0 ) {hasAS=true;}
}
break;
}
// MFortranParser2018.g:2401:7: ( LBRACKET coarray_spec RBRACKET )?
int alt210=2;
int LA210_0 = input.LA(1);
if ( (LA210_0==LBRACKET) ) {
alt210=1;
}
switch (alt210) {
case 1 :
// MFortranParser2018.g:2401:8: LBRACKET coarray_spec RBRACKET
{
match(input,LBRACKET,FOLLOW_LBRACKET_in_target_decl10020); if (state.failed) return;
pushFollow(FOLLOW_coarray_spec_in_target_decl10022);
coarray_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_target_decl10024); if (state.failed) return;
if ( state.backtracking==0 ) {hasCS=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.target_decl(IDENT181,hasAS,hasCS);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "target_decl"
// $ANTLR start "target_decl_list"
// MFortranParser2018.g:2405:1: target_decl_list : target_decl ( COMMA target_decl )* ;
public final void target_decl_list() throws RecognitionException {
int numTD = 1;
try {
// MFortranParser2018.g:2412:5: ( target_decl ( COMMA target_decl )* )
// MFortranParser2018.g:2412:7: target_decl ( COMMA target_decl )*
{
pushFollow(FOLLOW_target_decl_in_target_decl_list10064);
target_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2413:7: ( COMMA target_decl )*
loop211:
while (true) {
int alt211=2;
int LA211_0 = input.LA(1);
if ( (LA211_0==COMMA) ) {
alt211=1;
}
switch (alt211) {
case 1 :
// MFortranParser2018.g:2413:9: COMMA target_decl
{
match(input,COMMA,FOLLOW_COMMA_in_target_decl_list10075); if (state.failed) return;
pushFollow(FOLLOW_target_decl_in_target_decl_list10077);
target_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numTD++;}
}
break;
default :
break loop211;
}
}
}
if ( state.backtracking==0 ) {
MFPA.target_decl_list(numTD);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "target_decl_list"
// $ANTLR start "value_stmt"
// MFortranParser2018.g:2420:1: value_stmt : (lbl= label )? VALUE ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void value_stmt() throws RecognitionException {
Token VALUE182=null;
Token lbl =null;
Token end_of_stmt183 =null;
try {
// MFortranParser2018.g:2426:5: ( (lbl= label )? VALUE ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:2426:7: (lbl= label )? VALUE ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:2426:7: (lbl= label )?
int alt212=2;
int LA212_0 = input.LA(1);
if ( (LA212_0==DIGIT_STR) ) {
alt212=1;
}
switch (alt212) {
case 1 :
// MFortranParser2018.g:2426:8: lbl= label
{
pushFollow(FOLLOW_label_in_value_stmt10112);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
VALUE182=(Token)match(input,VALUE,FOLLOW_VALUE_in_value_stmt10123); if (state.failed) return;
// MFortranParser2018.g:2427:13: ( COLON_COLON )?
int alt213=2;
int LA213_0 = input.LA(1);
if ( (LA213_0==COLON_COLON) ) {
alt213=1;
}
switch (alt213) {
case 1 :
// MFortranParser2018.g:2427:15: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_value_stmt10127); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_value_stmt10132);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_value_stmt10141);
end_of_stmt183=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.value_stmt(lbl,VALUE182,end_of_stmt183);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "value_stmt"
// $ANTLR start "volatile_stmt"
// MFortranParser2018.g:2436:1: volatile_stmt : (lbl= label )? VOLATILE ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void volatile_stmt() throws RecognitionException {
Token VOLATILE184=null;
Token lbl =null;
Token end_of_stmt185 =null;
try {
// MFortranParser2018.g:2442:5: ( (lbl= label )? VOLATILE ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:2442:7: (lbl= label )? VOLATILE ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:2442:7: (lbl= label )?
int alt214=2;
int LA214_0 = input.LA(1);
if ( (LA214_0==DIGIT_STR) ) {
alt214=1;
}
switch (alt214) {
case 1 :
// MFortranParser2018.g:2442:8: lbl= label
{
pushFollow(FOLLOW_label_in_volatile_stmt10181);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
VOLATILE184=(Token)match(input,VOLATILE,FOLLOW_VOLATILE_in_volatile_stmt10193); if (state.failed) return;
// MFortranParser2018.g:2443:16: ( COLON_COLON )?
int alt215=2;
int LA215_0 = input.LA(1);
if ( (LA215_0==COLON_COLON) ) {
alt215=1;
}
switch (alt215) {
case 1 :
// MFortranParser2018.g:2443:18: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_volatile_stmt10197); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_volatile_stmt10202);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_volatile_stmt10211);
end_of_stmt185=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.volatile_stmt(lbl,VOLATILE184,end_of_stmt185);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "volatile_stmt"
// $ANTLR start "implicit_stmt"
// MFortranParser2018.g:2451:1: implicit_stmt : ( (lbl= label )? IMPLICIT implicit_spec_list end_of_stmt | (lbl= label )? IMPLICIT NONE ( LPAREN (ins= implicit_none_spec )? RPAREN )? end_of_stmt );
public final void implicit_stmt() throws RecognitionException {
Token IMPLICIT186=null;
Token IMPLICIT188=null;
Token NONE189=null;
Token lbl =null;
Token ins =null;
Token end_of_stmt187 =null;
Token end_of_stmt190 =null;
try {
// MFortranParser2018.g:2455:5: ( (lbl= label )? IMPLICIT implicit_spec_list end_of_stmt | (lbl= label )? IMPLICIT NONE ( LPAREN (ins= implicit_none_spec )? RPAREN )? end_of_stmt )
int alt220=2;
int LA220_0 = input.LA(1);
if ( (LA220_0==DIGIT_STR) ) {
int LA220_1 = input.LA(2);
if ( (LA220_1==IMPLICIT) ) {
int LA220_2 = input.LA(3);
if ( (LA220_2==NONE) ) {
alt220=2;
}
else if ( (LA220_2==CHARACTER||LA220_2==CLASS||LA220_2==COMPLEX||(LA220_2 >= DOUBLE && LA220_2 <= DOUBLEPRECISION)||LA220_2==INTEGER||LA220_2==LOGICAL||LA220_2==REAL||LA220_2==TYPE) ) {
alt220=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 220, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 220, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA220_0==IMPLICIT) ) {
int LA220_2 = input.LA(2);
if ( (LA220_2==NONE) ) {
alt220=2;
}
else if ( (LA220_2==CHARACTER||LA220_2==CLASS||LA220_2==COMPLEX||(LA220_2 >= DOUBLE && LA220_2 <= DOUBLEPRECISION)||LA220_2==INTEGER||LA220_2==LOGICAL||LA220_2==REAL||LA220_2==TYPE) ) {
alt220=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 220, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 220, 0, input);
throw nvae;
}
switch (alt220) {
case 1 :
// MFortranParser2018.g:2455:7: (lbl= label )? IMPLICIT implicit_spec_list end_of_stmt
{
// MFortranParser2018.g:2455:7: (lbl= label )?
int alt216=2;
int LA216_0 = input.LA(1);
if ( (LA216_0==DIGIT_STR) ) {
alt216=1;
}
switch (alt216) {
case 1 :
// MFortranParser2018.g:2455:8: lbl= label
{
pushFollow(FOLLOW_label_in_implicit_stmt10247);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
IMPLICIT186=(Token)match(input,IMPLICIT,FOLLOW_IMPLICIT_in_implicit_stmt10259); if (state.failed) return;
pushFollow(FOLLOW_implicit_spec_list_in_implicit_stmt10268);
implicit_spec_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_implicit_stmt10277);
end_of_stmt187=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.implicit_stmt(
lbl, IMPLICIT186, null, ins, end_of_stmt187);}
}
break;
case 2 :
// MFortranParser2018.g:2461:7: (lbl= label )? IMPLICIT NONE ( LPAREN (ins= implicit_none_spec )? RPAREN )? end_of_stmt
{
// MFortranParser2018.g:2461:7: (lbl= label )?
int alt217=2;
int LA217_0 = input.LA(1);
if ( (LA217_0==DIGIT_STR) ) {
alt217=1;
}
switch (alt217) {
case 1 :
// MFortranParser2018.g:2461:8: lbl= label
{
pushFollow(FOLLOW_label_in_implicit_stmt10299);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
IMPLICIT188=(Token)match(input,IMPLICIT,FOLLOW_IMPLICIT_in_implicit_stmt10311); if (state.failed) return;
NONE189=(Token)match(input,NONE,FOLLOW_NONE_in_implicit_stmt10313); if (state.failed) return;
// MFortranParser2018.g:2463:7: ( LPAREN (ins= implicit_none_spec )? RPAREN )?
int alt219=2;
int LA219_0 = input.LA(1);
if ( (LA219_0==LPAREN) ) {
alt219=1;
}
switch (alt219) {
case 1 :
// MFortranParser2018.g:2463:8: LPAREN (ins= implicit_none_spec )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_implicit_stmt10323); if (state.failed) return;
// MFortranParser2018.g:2463:15: (ins= implicit_none_spec )?
int alt218=2;
int LA218_0 = input.LA(1);
if ( (LA218_0==EXTERNAL||LA218_0==TYPE) ) {
alt218=1;
}
switch (alt218) {
case 1 :
// MFortranParser2018.g:2463:16: ins= implicit_none_spec
{
pushFollow(FOLLOW_implicit_none_spec_in_implicit_stmt10330);
ins=implicit_none_spec();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_implicit_stmt10334); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_implicit_stmt10345);
end_of_stmt190=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.implicit_stmt(
lbl, IMPLICIT188, NONE189, ins, end_of_stmt190);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "implicit_stmt"
// $ANTLR start "implicit_spec"
// MFortranParser2018.g:2472:1: implicit_spec : declaration_type_spec LPAREN letter_spec_list RPAREN ;
public final void implicit_spec() throws RecognitionException {
try {
// MFortranParser2018.g:2473:5: ( declaration_type_spec LPAREN letter_spec_list RPAREN )
// MFortranParser2018.g:2473:7: declaration_type_spec LPAREN letter_spec_list RPAREN
{
pushFollow(FOLLOW_declaration_type_spec_in_implicit_spec10374);
declaration_type_spec();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_implicit_spec10376); if (state.failed) return;
pushFollow(FOLLOW_letter_spec_list_in_implicit_spec10378);
letter_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_implicit_spec10380); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.implicit_spec(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "implicit_spec"
// $ANTLR start "implicit_spec_list"
// MFortranParser2018.g:2477:1: implicit_spec_list : implicit_spec ( COMMA implicit_spec )* ;
public final void implicit_spec_list() throws RecognitionException {
int numIS = 1;
try {
// MFortranParser2018.g:2484:5: ( implicit_spec ( COMMA implicit_spec )* )
// MFortranParser2018.g:2484:7: implicit_spec ( COMMA implicit_spec )*
{
pushFollow(FOLLOW_implicit_spec_in_implicit_spec_list10415);
implicit_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2485:5: ( COMMA implicit_spec )*
loop221:
while (true) {
int alt221=2;
int LA221_0 = input.LA(1);
if ( (LA221_0==COMMA) ) {
alt221=1;
}
switch (alt221) {
case 1 :
// MFortranParser2018.g:2485:7: COMMA implicit_spec
{
match(input,COMMA,FOLLOW_COMMA_in_implicit_spec_list10423); if (state.failed) return;
pushFollow(FOLLOW_implicit_spec_in_implicit_spec_list10425);
implicit_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numIS++;}
}
break;
default :
break loop221;
}
}
}
if ( state.backtracking==0 ) {
MFPA.implicit_spec_list(numIS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "implicit_spec_list"
// $ANTLR start "letter_spec"
// MFortranParser2018.g:2494:1: letter_spec : id1= IDENT ( MINUS id2= IDENT )? ;
public final void letter_spec() throws RecognitionException {
Token id1=null;
Token id2=null;
try {
// MFortranParser2018.g:2495:5: (id1= IDENT ( MINUS id2= IDENT )? )
// MFortranParser2018.g:2495:7: id1= IDENT ( MINUS id2= IDENT )?
{
id1=(Token)match(input,IDENT,FOLLOW_IDENT_in_letter_spec10452); if (state.failed) return;
// MFortranParser2018.g:2495:17: ( MINUS id2= IDENT )?
int alt222=2;
int LA222_0 = input.LA(1);
if ( (LA222_0==MINUS) ) {
alt222=1;
}
switch (alt222) {
case 1 :
// MFortranParser2018.g:2495:19: MINUS id2= IDENT
{
match(input,MINUS,FOLLOW_MINUS_in_letter_spec10456); if (state.failed) return;
id2=(Token)match(input,IDENT,FOLLOW_IDENT_in_letter_spec10460); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.letter_spec(id1, id2); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "letter_spec"
// $ANTLR start "letter_spec_list"
// MFortranParser2018.g:2499:1: letter_spec_list : letter_spec ( COMMA letter_spec )* ;
public final void letter_spec_list() throws RecognitionException {
int numLS = 1;
try {
// MFortranParser2018.g:2506:5: ( letter_spec ( COMMA letter_spec )* )
// MFortranParser2018.g:2506:7: letter_spec ( COMMA letter_spec )*
{
pushFollow(FOLLOW_letter_spec_in_letter_spec_list10499);
letter_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2507:7: ( COMMA letter_spec )*
loop223:
while (true) {
int alt223=2;
int LA223_0 = input.LA(1);
if ( (LA223_0==COMMA) ) {
alt223=1;
}
switch (alt223) {
case 1 :
// MFortranParser2018.g:2507:9: COMMA letter_spec
{
match(input,COMMA,FOLLOW_COMMA_in_letter_spec_list10509); if (state.failed) return;
pushFollow(FOLLOW_letter_spec_in_letter_spec_list10511);
letter_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numLS++;}
}
break;
default :
break loop223;
}
}
}
if ( state.backtracking==0 ) {
MFPA.letter_spec_list(numLS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "letter_spec_list"
// $ANTLR start "implicit_none_spec"
// MFortranParser2018.g:2513:1: implicit_none_spec returns [Token t] : ( EXTERNAL | TYPE );
public final Token implicit_none_spec() throws RecognitionException {
Token t = null;
Token EXTERNAL191=null;
Token TYPE192=null;
try {
// MFortranParser2018.g:2514:5: ( EXTERNAL | TYPE )
int alt224=2;
int LA224_0 = input.LA(1);
if ( (LA224_0==EXTERNAL) ) {
alt224=1;
}
else if ( (LA224_0==TYPE) ) {
alt224=2;
}
else {
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 224, 0, input);
throw nvae;
}
switch (alt224) {
case 1 :
// MFortranParser2018.g:2514:7: EXTERNAL
{
EXTERNAL191=(Token)match(input,EXTERNAL,FOLLOW_EXTERNAL_in_implicit_none_spec10539); if (state.failed) return t;
if ( state.backtracking==0 ) { t = EXTERNAL191;}
}
break;
case 2 :
// MFortranParser2018.g:2515:7: TYPE
{
TYPE192=(Token)match(input,TYPE,FOLLOW_TYPE_in_implicit_none_spec10549); if (state.failed) return t;
if ( state.backtracking==0 ) { t = TYPE192;}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "implicit_none_spec"
// $ANTLR start "import_stmt"
// MFortranParser2018.g:2522:1: import_stmt : ( (lbl= label )? IMPORT ( ( COLON_COLON )? generic_name_list )? end_of_stmt | (lbl= label )? IMPORT COMMA ONLY COLON generic_name_list end_of_stmt | (lbl= label )? IMPORT COMMA NONE end_of_stmt | (lbl= label )? IMPORT COMMA ALL end_of_stmt );
public final void import_stmt() throws RecognitionException {
Token IMPORT193=null;
Token IMPORT195=null;
Token ONLY196=null;
Token IMPORT198=null;
Token NONE199=null;
Token IMPORT201=null;
Token ALL202=null;
Token lbl =null;
Token end_of_stmt194 =null;
Token end_of_stmt197 =null;
Token end_of_stmt200 =null;
Token end_of_stmt203 =null;
boolean hasINL = false;
try {
// MFortranParser2018.g:2529:5: ( (lbl= label )? IMPORT ( ( COLON_COLON )? generic_name_list )? end_of_stmt | (lbl= label )? IMPORT COMMA ONLY COLON generic_name_list end_of_stmt | (lbl= label )? IMPORT COMMA NONE end_of_stmt | (lbl= label )? IMPORT COMMA ALL end_of_stmt )
int alt231=4;
int LA231_0 = input.LA(1);
if ( (LA231_0==DIGIT_STR) ) {
int LA231_1 = input.LA(2);
if ( (LA231_1==IMPORT) ) {
int LA231_2 = input.LA(3);
if ( (LA231_2==COMMA) ) {
switch ( input.LA(4) ) {
case ONLY:
{
alt231=2;
}
break;
case NONE:
{
alt231=3;
}
break;
case ALL:
{
alt231=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 231, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA231_2==EOF||LA231_2==COLON_COLON||LA231_2==EOS||LA231_2==IDENT) ) {
alt231=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 231, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 231, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA231_0==IMPORT) ) {
int LA231_2 = input.LA(2);
if ( (LA231_2==COMMA) ) {
switch ( input.LA(3) ) {
case ONLY:
{
alt231=2;
}
break;
case NONE:
{
alt231=3;
}
break;
case ALL:
{
alt231=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 231, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA231_2==EOF||LA231_2==COLON_COLON||LA231_2==EOS||LA231_2==IDENT) ) {
alt231=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 231, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 231, 0, input);
throw nvae;
}
switch (alt231) {
case 1 :
// MFortranParser2018.g:2529:7: (lbl= label )? IMPORT ( ( COLON_COLON )? generic_name_list )? end_of_stmt
{
// MFortranParser2018.g:2529:7: (lbl= label )?
int alt225=2;
int LA225_0 = input.LA(1);
if ( (LA225_0==DIGIT_STR) ) {
alt225=1;
}
switch (alt225) {
case 1 :
// MFortranParser2018.g:2529:8: lbl= label
{
pushFollow(FOLLOW_label_in_import_stmt10581);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
IMPORT193=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_import_stmt10592); if (state.failed) return;
// MFortranParser2018.g:2530:14: ( ( COLON_COLON )? generic_name_list )?
int alt227=2;
int LA227_0 = input.LA(1);
if ( (LA227_0==COLON_COLON||LA227_0==IDENT) ) {
alt227=1;
}
switch (alt227) {
case 1 :
// MFortranParser2018.g:2530:16: ( COLON_COLON )? generic_name_list
{
// MFortranParser2018.g:2530:16: ( COLON_COLON )?
int alt226=2;
int LA226_0 = input.LA(1);
if ( (LA226_0==COLON_COLON) ) {
alt226=1;
}
switch (alt226) {
case 1 :
// MFortranParser2018.g:2530:18: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_import_stmt10598); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_import_stmt10603);
generic_name_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasINL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_import_stmt10616);
end_of_stmt194=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.import_stmt(lbl, IMPORT193, null, end_of_stmt194, hasINL);}
}
break;
case 2 :
// MFortranParser2018.g:2533:7: (lbl= label )? IMPORT COMMA ONLY COLON generic_name_list end_of_stmt
{
// MFortranParser2018.g:2533:7: (lbl= label )?
int alt228=2;
int LA228_0 = input.LA(1);
if ( (LA228_0==DIGIT_STR) ) {
alt228=1;
}
switch (alt228) {
case 1 :
// MFortranParser2018.g:2533:8: lbl= label
{
pushFollow(FOLLOW_label_in_import_stmt10637);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
IMPORT195=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_import_stmt10648); if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_import_stmt10650); if (state.failed) return;
ONLY196=(Token)match(input,ONLY,FOLLOW_ONLY_in_import_stmt10652); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_import_stmt10654); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_import_stmt10656);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_import_stmt10665);
end_of_stmt197=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.import_stmt(lbl, IMPORT195, ONLY196, end_of_stmt197, true);}
}
break;
case 3 :
// MFortranParser2018.g:2537:7: (lbl= label )? IMPORT COMMA NONE end_of_stmt
{
// MFortranParser2018.g:2537:7: (lbl= label )?
int alt229=2;
int LA229_0 = input.LA(1);
if ( (LA229_0==DIGIT_STR) ) {
alt229=1;
}
switch (alt229) {
case 1 :
// MFortranParser2018.g:2537:8: lbl= label
{
pushFollow(FOLLOW_label_in_import_stmt10686);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
IMPORT198=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_import_stmt10697); if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_import_stmt10699); if (state.failed) return;
NONE199=(Token)match(input,NONE,FOLLOW_NONE_in_import_stmt10701); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_import_stmt10710);
end_of_stmt200=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.import_stmt(lbl, IMPORT198, NONE199, end_of_stmt200, false);}
}
break;
case 4 :
// MFortranParser2018.g:2541:7: (lbl= label )? IMPORT COMMA ALL end_of_stmt
{
// MFortranParser2018.g:2541:7: (lbl= label )?
int alt230=2;
int LA230_0 = input.LA(1);
if ( (LA230_0==DIGIT_STR) ) {
alt230=1;
}
switch (alt230) {
case 1 :
// MFortranParser2018.g:2541:8: lbl= label
{
pushFollow(FOLLOW_label_in_import_stmt10731);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
IMPORT201=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_import_stmt10742); if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_import_stmt10744); if (state.failed) return;
ALL202=(Token)match(input,ALL,FOLLOW_ALL_in_import_stmt10746); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_import_stmt10755);
end_of_stmt203=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.import_stmt(lbl, IMPORT201, ALL202, end_of_stmt203, false);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "import_stmt"
// $ANTLR start "namelist_stmt"
// MFortranParser2018.g:2551:1: namelist_stmt : (lbl= label )? NAMELIST SLASH nlName= IDENT SLASH namelist_group_object_list ( ( COMMA )? SLASH nlName= IDENT SLASH namelist_group_object_list )* end_of_stmt ;
public final void namelist_stmt() throws RecognitionException {
Token nlName=null;
Token NAMELIST204=null;
Token lbl =null;
Token end_of_stmt205 =null;
int numNL =1;
try {
// MFortranParser2018.g:2558:5: ( (lbl= label )? NAMELIST SLASH nlName= IDENT SLASH namelist_group_object_list ( ( COMMA )? SLASH nlName= IDENT SLASH namelist_group_object_list )* end_of_stmt )
// MFortranParser2018.g:2558:7: (lbl= label )? NAMELIST SLASH nlName= IDENT SLASH namelist_group_object_list ( ( COMMA )? SLASH nlName= IDENT SLASH namelist_group_object_list )* end_of_stmt
{
// MFortranParser2018.g:2558:7: (lbl= label )?
int alt232=2;
int LA232_0 = input.LA(1);
if ( (LA232_0==DIGIT_STR) ) {
alt232=1;
}
switch (alt232) {
case 1 :
// MFortranParser2018.g:2558:8: lbl= label
{
pushFollow(FOLLOW_label_in_namelist_stmt10796);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
NAMELIST204=(Token)match(input,NAMELIST,FOLLOW_NAMELIST_in_namelist_stmt10807); if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_namelist_stmt10809); if (state.failed) return;
nlName=(Token)match(input,IDENT,FOLLOW_IDENT_in_namelist_stmt10813); if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_namelist_stmt10815); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.namelist_group_name(nlName);}
pushFollow(FOLLOW_namelist_group_object_list_in_namelist_stmt10833);
namelist_group_object_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2562:7: ( ( COMMA )? SLASH nlName= IDENT SLASH namelist_group_object_list )*
loop234:
while (true) {
int alt234=2;
int LA234_0 = input.LA(1);
if ( (LA234_0==COMMA||LA234_0==SLASH) ) {
alt234=1;
}
switch (alt234) {
case 1 :
// MFortranParser2018.g:2562:9: ( COMMA )? SLASH nlName= IDENT SLASH namelist_group_object_list
{
// MFortranParser2018.g:2562:9: ( COMMA )?
int alt233=2;
int LA233_0 = input.LA(1);
if ( (LA233_0==COMMA) ) {
alt233=1;
}
switch (alt233) {
case 1 :
// MFortranParser2018.g:2562:11: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_namelist_stmt10845); if (state.failed) return;
}
break;
}
match(input,SLASH,FOLLOW_SLASH_in_namelist_stmt10850); if (state.failed) return;
nlName=(Token)match(input,IDENT,FOLLOW_IDENT_in_namelist_stmt10854); if (state.failed) return;
match(input,SLASH,FOLLOW_SLASH_in_namelist_stmt10856); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.namelist_group_name(nlName);}
pushFollow(FOLLOW_namelist_group_object_list_in_namelist_stmt10882);
namelist_group_object_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numNL++;}
}
break;
default :
break loop234;
}
}
pushFollow(FOLLOW_end_of_stmt_in_namelist_stmt10902);
end_of_stmt205=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.namelist_stmt(lbl,NAMELIST204,end_of_stmt205,numNL);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "namelist_stmt"
// $ANTLR start "namelist_group_object_list"
// MFortranParser2018.g:2574:1: namelist_group_object_list : goName= IDENT ( COMMA goName= IDENT )* ;
public final void namelist_group_object_list() throws RecognitionException {
Token goName=null;
int numNGO = 1;
try {
// MFortranParser2018.g:2581:5: (goName= IDENT ( COMMA goName= IDENT )* )
// MFortranParser2018.g:2581:7: goName= IDENT ( COMMA goName= IDENT )*
{
goName=(Token)match(input,IDENT,FOLLOW_IDENT_in_namelist_group_object_list10941); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.namelist_group_object(goName);}
// MFortranParser2018.g:2582:7: ( COMMA goName= IDENT )*
loop235:
while (true) {
int alt235=2;
int LA235_0 = input.LA(1);
if ( (LA235_0==COMMA) ) {
int LA235_1 = input.LA(2);
if ( (LA235_1==IDENT) ) {
alt235=1;
}
}
switch (alt235) {
case 1 :
// MFortranParser2018.g:2582:9: COMMA goName= IDENT
{
match(input,COMMA,FOLLOW_COMMA_in_namelist_group_object_list10953); if (state.failed) return;
goName=(Token)match(input,IDENT,FOLLOW_IDENT_in_namelist_group_object_list10957); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.namelist_group_object(goName); numNGO++;}
}
break;
default :
break loop235;
}
}
}
if ( state.backtracking==0 ) {
MFPA.namelist_group_object_list(numNGO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "namelist_group_object_list"
// $ANTLR start "equivalence_stmt"
// MFortranParser2018.g:2589:1: equivalence_stmt : (lbl= label )? EQUIVALENCE equivalence_set_list end_of_stmt ;
public final void equivalence_stmt() throws RecognitionException {
Token EQUIVALENCE206=null;
Token lbl =null;
Token end_of_stmt207 =null;
try {
// MFortranParser2018.g:2595:5: ( (lbl= label )? EQUIVALENCE equivalence_set_list end_of_stmt )
// MFortranParser2018.g:2595:7: (lbl= label )? EQUIVALENCE equivalence_set_list end_of_stmt
{
// MFortranParser2018.g:2595:7: (lbl= label )?
int alt236=2;
int LA236_0 = input.LA(1);
if ( (LA236_0==DIGIT_STR) ) {
alt236=1;
}
switch (alt236) {
case 1 :
// MFortranParser2018.g:2595:8: lbl= label
{
pushFollow(FOLLOW_label_in_equivalence_stmt11003);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
EQUIVALENCE206=(Token)match(input,EQUIVALENCE,FOLLOW_EQUIVALENCE_in_equivalence_stmt11014); if (state.failed) return;
pushFollow(FOLLOW_equivalence_set_list_in_equivalence_stmt11016);
equivalence_set_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_equivalence_stmt11024);
end_of_stmt207=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.equivalence_stmt(lbl, EQUIVALENCE206, end_of_stmt207);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "equivalence_stmt"
// $ANTLR start "equivalence_set"
// MFortranParser2018.g:2604:1: equivalence_set : LPAREN equivalence_object COMMA equivalence_object_list RPAREN ;
public final void equivalence_set() throws RecognitionException {
try {
// MFortranParser2018.g:2605:5: ( LPAREN equivalence_object COMMA equivalence_object_list RPAREN )
// MFortranParser2018.g:2605:7: LPAREN equivalence_object COMMA equivalence_object_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_equivalence_set11053); if (state.failed) return;
pushFollow(FOLLOW_equivalence_object_in_equivalence_set11055);
equivalence_object();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_equivalence_set11057); if (state.failed) return;
pushFollow(FOLLOW_equivalence_object_list_in_equivalence_set11059);
equivalence_object_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_equivalence_set11061); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.equivalence_set(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "equivalence_set"
// $ANTLR start "equivalence_set_list"
// MFortranParser2018.g:2609:1: equivalence_set_list : equivalence_set ( COMMA equivalence_set )* ;
public final void equivalence_set_list() throws RecognitionException {
int numES = 1;
try {
// MFortranParser2018.g:2613:5: ( equivalence_set ( COMMA equivalence_set )* )
// MFortranParser2018.g:2613:7: equivalence_set ( COMMA equivalence_set )*
{
pushFollow(FOLLOW_equivalence_set_in_equivalence_set_list11092);
equivalence_set();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2614:7: ( COMMA equivalence_set )*
loop237:
while (true) {
int alt237=2;
int LA237_0 = input.LA(1);
if ( (LA237_0==COMMA) ) {
alt237=1;
}
switch (alt237) {
case 1 :
// MFortranParser2018.g:2614:9: COMMA equivalence_set
{
match(input,COMMA,FOLLOW_COMMA_in_equivalence_set_list11103); if (state.failed) return;
pushFollow(FOLLOW_equivalence_set_in_equivalence_set_list11105);
equivalence_set();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numES++;}
}
break;
default :
break loop237;
}
}
if ( state.backtracking==0 ) { MFPA.equivalence_set_list(numES);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "equivalence_set_list"
// $ANTLR start "equivalence_object"
// MFortranParser2018.g:2625:1: equivalence_object : substring ;
public final void equivalence_object() throws RecognitionException {
try {
// MFortranParser2018.g:2626:5: ( substring )
// MFortranParser2018.g:2626:7: substring
{
pushFollow(FOLLOW_substring_in_equivalence_object11139);
substring();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.equivalence_object(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "equivalence_object"
// $ANTLR start "equivalence_object_list"
// MFortranParser2018.g:2629:1: equivalence_object_list : equivalence_object ( COMMA equivalence_object )* ;
public final void equivalence_object_list() throws RecognitionException {
int numEO = 1;
try {
// MFortranParser2018.g:2636:5: ( equivalence_object ( COMMA equivalence_object )* )
// MFortranParser2018.g:2636:7: equivalence_object ( COMMA equivalence_object )*
{
pushFollow(FOLLOW_equivalence_object_in_equivalence_object_list11166);
equivalence_object();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2637:7: ( COMMA equivalence_object )*
loop238:
while (true) {
int alt238=2;
int LA238_0 = input.LA(1);
if ( (LA238_0==COMMA) ) {
alt238=1;
}
switch (alt238) {
case 1 :
// MFortranParser2018.g:2637:9: COMMA equivalence_object
{
match(input,COMMA,FOLLOW_COMMA_in_equivalence_object_list11177); if (state.failed) return;
pushFollow(FOLLOW_equivalence_object_in_equivalence_object_list11179);
equivalence_object();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numEO++;}
}
break;
default :
break loop238;
}
}
}
if ( state.backtracking==0 ) {
MFPA.equivalence_object_list(numEO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "equivalence_object_list"
// $ANTLR start "common_stmt"
// MFortranParser2018.g:2644:1: common_stmt : (lbl= label )? COMMON (cb_name= common_block_name )? common_block_object_list ( ( COMMA )? cb_name= common_block_name common_block_object_list )* end_of_stmt ;
public final void common_stmt() throws RecognitionException {
Token COMMON208=null;
Token lbl =null;
Token cb_name =null;
Token end_of_stmt209 =null;
int numBlocks=1;
try {
// MFortranParser2018.g:2651:5: ( (lbl= label )? COMMON (cb_name= common_block_name )? common_block_object_list ( ( COMMA )? cb_name= common_block_name common_block_object_list )* end_of_stmt )
// MFortranParser2018.g:2651:7: (lbl= label )? COMMON (cb_name= common_block_name )? common_block_object_list ( ( COMMA )? cb_name= common_block_name common_block_object_list )* end_of_stmt
{
// MFortranParser2018.g:2651:7: (lbl= label )?
int alt239=2;
int LA239_0 = input.LA(1);
if ( (LA239_0==DIGIT_STR) ) {
alt239=1;
}
switch (alt239) {
case 1 :
// MFortranParser2018.g:2651:8: lbl= label
{
pushFollow(FOLLOW_label_in_common_stmt11215);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
COMMON208=(Token)match(input,COMMON,FOLLOW_COMMON_in_common_stmt11226); if (state.failed) return;
// MFortranParser2018.g:2652:14: (cb_name= common_block_name )?
int alt240=2;
int LA240_0 = input.LA(1);
if ( (LA240_0==SLASH||LA240_0==SLASH_SLASH) ) {
alt240=1;
}
switch (alt240) {
case 1 :
// MFortranParser2018.g:2652:16: cb_name= common_block_name
{
pushFollow(FOLLOW_common_block_name_in_common_stmt11232);
cb_name=common_block_name();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.common_block_name(cb_name); }
pushFollow(FOLLOW_common_block_object_list_in_common_stmt11254);
common_block_object_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2655:7: ( ( COMMA )? cb_name= common_block_name common_block_object_list )*
loop242:
while (true) {
int alt242=2;
int LA242_0 = input.LA(1);
if ( (LA242_0==COMMA||LA242_0==SLASH||LA242_0==SLASH_SLASH) ) {
alt242=1;
}
switch (alt242) {
case 1 :
// MFortranParser2018.g:2655:9: ( COMMA )? cb_name= common_block_name common_block_object_list
{
// MFortranParser2018.g:2655:9: ( COMMA )?
int alt241=2;
int LA241_0 = input.LA(1);
if ( (LA241_0==COMMA) ) {
alt241=1;
}
switch (alt241) {
case 1 :
// MFortranParser2018.g:2655:11: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_common_stmt11266); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_common_block_name_in_common_stmt11273);
cb_name=common_block_name();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.common_block_name(cb_name); }
pushFollow(FOLLOW_common_block_object_list_in_common_stmt11295);
common_block_object_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numBlocks++;}
}
break;
default :
break loop242;
}
}
pushFollow(FOLLOW_end_of_stmt_in_common_stmt11309);
end_of_stmt209=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.common_stmt(
lbl, COMMON208, end_of_stmt209, numBlocks);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "common_stmt"
// $ANTLR start "common_block_name"
// MFortranParser2018.g:2664:1: common_block_name returns [Token id] : ( SLASH_SLASH | SLASH ( IDENT )? SLASH );
public final Token common_block_name() throws RecognitionException {
Token id = null;
Token IDENT210=null;
try {
// MFortranParser2018.g:2665:5: ( SLASH_SLASH | SLASH ( IDENT )? SLASH )
int alt244=2;
int LA244_0 = input.LA(1);
if ( (LA244_0==SLASH_SLASH) ) {
alt244=1;
}
else if ( (LA244_0==SLASH) ) {
alt244=2;
}
else {
if (state.backtracking>0) {state.failed=true; return id;}
NoViableAltException nvae =
new NoViableAltException("", 244, 0, input);
throw nvae;
}
switch (alt244) {
case 1 :
// MFortranParser2018.g:2665:7: SLASH_SLASH
{
match(input,SLASH_SLASH,FOLLOW_SLASH_SLASH_in_common_block_name11341); if (state.failed) return id;
if ( state.backtracking==0 ) {id=null;}
}
break;
case 2 :
// MFortranParser2018.g:2666:7: SLASH ( IDENT )? SLASH
{
match(input,SLASH,FOLLOW_SLASH_in_common_block_name11351); if (state.failed) return id;
// MFortranParser2018.g:2666:13: ( IDENT )?
int alt243=2;
int LA243_0 = input.LA(1);
if ( (LA243_0==IDENT) ) {
alt243=1;
}
switch (alt243) {
case 1 :
// MFortranParser2018.g:2666:14: IDENT
{
IDENT210=(Token)match(input,IDENT,FOLLOW_IDENT_in_common_block_name11354); if (state.failed) return id;
}
break;
}
match(input,SLASH,FOLLOW_SLASH_in_common_block_name11358); if (state.failed) return id;
if ( state.backtracking==0 ) {id=IDENT210;}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return id;
}
// $ANTLR end "common_block_name"
// $ANTLR start "common_block_object"
// MFortranParser2018.g:2672:1: common_block_object : IDENT ( LPAREN explicit_shape_spec_list RPAREN )? ;
public final void common_block_object() throws RecognitionException {
Token IDENT211=null;
boolean hasSSL=false;
try {
// MFortranParser2018.g:2676:5: ( IDENT ( LPAREN explicit_shape_spec_list RPAREN )? )
// MFortranParser2018.g:2676:7: IDENT ( LPAREN explicit_shape_spec_list RPAREN )?
{
IDENT211=(Token)match(input,IDENT,FOLLOW_IDENT_in_common_block_object11383); if (state.failed) return;
// MFortranParser2018.g:2677:7: ( LPAREN explicit_shape_spec_list RPAREN )?
int alt245=2;
int LA245_0 = input.LA(1);
if ( (LA245_0==LPAREN) ) {
alt245=1;
}
switch (alt245) {
case 1 :
// MFortranParser2018.g:2677:9: LPAREN explicit_shape_spec_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_common_block_object11393); if (state.failed) return;
pushFollow(FOLLOW_explicit_shape_spec_list_in_common_block_object11395);
explicit_shape_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_common_block_object11397); if (state.failed) return;
if ( state.backtracking==0 ) {hasSSL=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.common_block_object(IDENT211,hasSSL);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "common_block_object"
// $ANTLR start "common_block_object_list"
// MFortranParser2018.g:2681:1: common_block_object_list : common_block_object ( COMMA common_block_object )* ;
public final void common_block_object_list() throws RecognitionException {
int numCBO = 1;
try {
// MFortranParser2018.g:2688:5: ( common_block_object ( COMMA common_block_object )* )
// MFortranParser2018.g:2688:7: common_block_object ( COMMA common_block_object )*
{
pushFollow(FOLLOW_common_block_object_in_common_block_object_list11436);
common_block_object();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2689:7: ( COMMA common_block_object )*
loop246:
while (true) {
int alt246=2;
int LA246_0 = input.LA(1);
if ( (LA246_0==COMMA) ) {
int LA246_1 = input.LA(2);
if ( (LA246_1==IDENT) ) {
alt246=1;
}
}
switch (alt246) {
case 1 :
// MFortranParser2018.g:2689:9: COMMA common_block_object
{
match(input,COMMA,FOLLOW_COMMA_in_common_block_object_list11446); if (state.failed) return;
pushFollow(FOLLOW_common_block_object_in_common_block_object_list11448);
common_block_object();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCBO++;}
}
break;
default :
break loop246;
}
}
}
if ( state.backtracking==0 ) {
MFPA.common_block_object_list(numCBO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "common_block_object_list"
// $ANTLR start "quantified_expr"
// MFortranParser2018.g:2696:1: quantified_expr : CIVL_PRIMITIVE LPAREN intrinsic_type_spec entity_decl_list ( COLON ( quantified_expr | expr ) )? RPAREN expr ;
public final void quantified_expr() throws RecognitionException {
Token CIVL_PRIMITIVE212=null;
boolean hasRestrict = false;
try {
// MFortranParser2018.g:2700:2: ( CIVL_PRIMITIVE LPAREN intrinsic_type_spec entity_decl_list ( COLON ( quantified_expr | expr ) )? RPAREN expr )
// MFortranParser2018.g:2700:4: CIVL_PRIMITIVE LPAREN intrinsic_type_spec entity_decl_list ( COLON ( quantified_expr | expr ) )? RPAREN expr
{
CIVL_PRIMITIVE212=(Token)match(input,CIVL_PRIMITIVE,FOLLOW_CIVL_PRIMITIVE_in_quantified_expr11473); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_quantified_expr11475); if (state.failed) return;
pushFollow(FOLLOW_intrinsic_type_spec_in_quantified_expr11477);
intrinsic_type_spec();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_entity_decl_list_in_quantified_expr11479);
entity_decl_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2701:4: ( COLON ( quantified_expr | expr ) )?
int alt248=2;
int LA248_0 = input.LA(1);
if ( (LA248_0==COLON) ) {
alt248=1;
}
switch (alt248) {
case 1 :
// MFortranParser2018.g:2701:5: COLON ( quantified_expr | expr )
{
match(input,COLON,FOLLOW_COLON_in_quantified_expr11486); if (state.failed) return;
// MFortranParser2018.g:2701:11: ( quantified_expr | expr )
int alt247=2;
int LA247_0 = input.LA(1);
if ( (LA247_0==CIVL_PRIMITIVE) ) {
alt247=1;
}
else if ( (LA247_0==BIN_CONST||LA247_0==CHAR_CONST||(LA247_0 >= DEFINED_OP && LA247_0 <= DIGIT_STR)||LA247_0==FALSE||(LA247_0 >= HEX_CONST && LA247_0 <= IDENT)||LA247_0==LBRACKET||LA247_0==LPAREN||LA247_0==MINUS||LA247_0==M_REAL_CONST||LA247_0==NOT||LA247_0==OCT_CONST||LA247_0==PLUS||LA247_0==TRUE) ) {
alt247=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 247, 0, input);
throw nvae;
}
switch (alt247) {
case 1 :
// MFortranParser2018.g:2701:12: quantified_expr
{
pushFollow(FOLLOW_quantified_expr_in_quantified_expr11489);
quantified_expr();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:2701:28: expr
{
pushFollow(FOLLOW_expr_in_quantified_expr11491);
expr();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {hasRestrict = true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_quantified_expr11499); if (state.failed) return;
pushFollow(FOLLOW_expr_in_quantified_expr11501);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.quantified_expr(CIVL_PRIMITIVE212, hasRestrict);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "quantified_expr"
// $ANTLR start "civl_stmt"
// MFortranParser2018.g:2709:1: civl_stmt : CIVL_PRIMITIVE LPAREN ( expr | quantified_expr )? RPAREN ;
public final void civl_stmt() throws RecognitionException {
Token CIVL_PRIMITIVE213=null;
boolean isQuantified = false;
int numArgs = 0;
try {
// MFortranParser2018.g:2714:2: ( CIVL_PRIMITIVE LPAREN ( expr | quantified_expr )? RPAREN )
// MFortranParser2018.g:2714:4: CIVL_PRIMITIVE LPAREN ( expr | quantified_expr )? RPAREN
{
CIVL_PRIMITIVE213=(Token)match(input,CIVL_PRIMITIVE,FOLLOW_CIVL_PRIMITIVE_in_civl_stmt11522); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_civl_stmt11524); if (state.failed) return;
// MFortranParser2018.g:2715:4: ( expr | quantified_expr )?
int alt249=3;
int LA249_0 = input.LA(1);
if ( (LA249_0==BIN_CONST||LA249_0==CHAR_CONST||(LA249_0 >= DEFINED_OP && LA249_0 <= DIGIT_STR)||LA249_0==FALSE||(LA249_0 >= HEX_CONST && LA249_0 <= IDENT)||LA249_0==LBRACKET||LA249_0==LPAREN||LA249_0==MINUS||LA249_0==M_REAL_CONST||LA249_0==NOT||LA249_0==OCT_CONST||LA249_0==PLUS||LA249_0==TRUE) ) {
alt249=1;
}
else if ( (LA249_0==CIVL_PRIMITIVE) ) {
alt249=2;
}
switch (alt249) {
case 1 :
// MFortranParser2018.g:2715:6: expr
{
pushFollow(FOLLOW_expr_in_civl_stmt11532);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numArgs++;}
}
break;
case 2 :
// MFortranParser2018.g:2716:6: quantified_expr
{
pushFollow(FOLLOW_quantified_expr_in_civl_stmt11541);
quantified_expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {isQuantified = true;numArgs++;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_civl_stmt11551); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.civl_stmt(CIVL_PRIMITIVE213, numArgs);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "civl_stmt"
// $ANTLR start "pragma_type_qualifier_stmt"
// MFortranParser2018.g:2725:1: pragma_type_qualifier_stmt : PRAGMA IDENT CIVL_PRIMITIVE end_of_stmt ;
public final void pragma_type_qualifier_stmt() throws RecognitionException {
Token IDENT214=null;
Token CIVL_PRIMITIVE215=null;
try {
// MFortranParser2018.g:2729:5: ( PRAGMA IDENT CIVL_PRIMITIVE end_of_stmt )
// MFortranParser2018.g:2729:7: PRAGMA IDENT CIVL_PRIMITIVE end_of_stmt
{
match(input,PRAGMA,FOLLOW_PRAGMA_in_pragma_type_qualifier_stmt11579); if (state.failed) return;
IDENT214=(Token)match(input,IDENT,FOLLOW_IDENT_in_pragma_type_qualifier_stmt11581); if (state.failed) return;
CIVL_PRIMITIVE215=(Token)match(input,CIVL_PRIMITIVE,FOLLOW_CIVL_PRIMITIVE_in_pragma_type_qualifier_stmt11583); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_pragma_type_qualifier_stmt11585);
end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.pragma_type_qualifier_stmt(IDENT214, CIVL_PRIMITIVE215);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pragma_type_qualifier_stmt"
// $ANTLR start "pragma_stmt"
// MFortranParser2018.g:2737:1: pragma_stmt : PRAGMA IDENT ( pragma_tokens | civl_stmt ) end_of_stmt ;
public final void pragma_stmt() throws RecognitionException {
Token IDENT216=null;
Token end_of_stmt217 =null;
boolean isCIVL = false;
try {
// MFortranParser2018.g:2744:5: ( PRAGMA IDENT ( pragma_tokens | civl_stmt ) end_of_stmt )
// MFortranParser2018.g:2744:7: PRAGMA IDENT ( pragma_tokens | civl_stmt ) end_of_stmt
{
match(input,PRAGMA,FOLLOW_PRAGMA_in_pragma_stmt11622); if (state.failed) return;
IDENT216=(Token)match(input,IDENT,FOLLOW_IDENT_in_pragma_stmt11624); if (state.failed) return;
// MFortranParser2018.g:2744:20: ( pragma_tokens | civl_stmt )
int alt250=2;
int LA250_0 = input.LA(1);
if ( ((LA250_0 >= ABSTRACT && LA250_0 <= CHAR_CONST)||(LA250_0 >= CLASS && LA250_0 <= ENUMERATOR)||(LA250_0 >= EQ && LA250_0 <= TEAM_NUMBER)) ) {
alt250=1;
}
else if ( (LA250_0==CIVL_PRIMITIVE) ) {
alt250=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 250, 0, input);
throw nvae;
}
switch (alt250) {
case 1 :
// MFortranParser2018.g:2744:21: pragma_tokens
{
pushFollow(FOLLOW_pragma_tokens_in_pragma_stmt11627);
pragma_tokens();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:2744:35: civl_stmt
{
pushFollow(FOLLOW_civl_stmt_in_pragma_stmt11629);
civl_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {isCIVL = true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_pragma_stmt11634);
end_of_stmt217=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.pragma_stmt(isCIVL, IDENT216, end_of_stmt217);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pragma_stmt"
// $ANTLR start "pragma_tokens"
// MFortranParser2018.g:2752:1: pragma_tokens : (pt= (~ ( EOS | EOF | CIVL_PRIMITIVE ) ) )+ ;
public final void pragma_tokens() throws RecognitionException {
Token pt=null;
int numPT=0;
try {
// MFortranParser2018.g:2759:5: ( (pt= (~ ( EOS | EOF | CIVL_PRIMITIVE ) ) )+ )
// MFortranParser2018.g:2759:7: (pt= (~ ( EOS | EOF | CIVL_PRIMITIVE ) ) )+
{
// MFortranParser2018.g:2759:7: (pt= (~ ( EOS | EOF | CIVL_PRIMITIVE ) ) )+
int cnt251=0;
loop251:
while (true) {
int alt251=2;
int LA251_0 = input.LA(1);
if ( ((LA251_0 >= ABSTRACT && LA251_0 <= CHAR_CONST)||(LA251_0 >= CLASS && LA251_0 <= ENUMERATOR)||(LA251_0 >= EQ && LA251_0 <= TEAM_NUMBER)) ) {
alt251=1;
}
switch (alt251) {
case 1 :
// MFortranParser2018.g:2759:9: pt= (~ ( EOS | EOF | CIVL_PRIMITIVE ) )
{
pt=input.LT(1);
if ( (input.LA(1) >= ABSTRACT && input.LA(1) <= CHAR_CONST)||(input.LA(1) >= CLASS && input.LA(1) <= ENUMERATOR)||(input.LA(1) >= EQ && input.LA(1) <= TEAM_NUMBER) ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
if ( state.backtracking==0 ) { MFPA.pragma_token(pt); numPT++;}
}
break;
default :
if ( cnt251 >= 1 ) break loop251;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(251, input);
throw eee;
}
cnt251++;
}
}
if ( state.backtracking==0 ) {
MFPA.pragma_token_list(numPT);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pragma_tokens"
// $ANTLR start "designator"
// MFortranParser2018.g:2779:1: designator : ( data_ref ( LPAREN substring_range RPAREN )? | char_literal_constant LPAREN substring_range RPAREN );
public final void designator() throws RecognitionException {
boolean hasSR = false;
try {
// MFortranParser2018.g:2783:5: ( data_ref ( LPAREN substring_range RPAREN )? | char_literal_constant LPAREN substring_range RPAREN )
int alt253=2;
int LA253_0 = input.LA(1);
if ( (LA253_0==IDENT) ) {
int LA253_1 = input.LA(2);
if ( (LA253_1==EOF||LA253_1==ASTERISK||LA253_1==COLON||LA253_1==COMMA||LA253_1==EOS||LA253_1==EQUALS||LA253_1==LBRACKET||LA253_1==LPAREN||LA253_1==PERCENT||LA253_1==RBRACKET||LA253_1==RPAREN||LA253_1==SLASH) ) {
alt253=1;
}
else if ( (LA253_1==CHAR_CONST) ) {
alt253=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 253, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA253_0==CHAR_CONST||LA253_0==DIGIT_STR) ) {
alt253=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 253, 0, input);
throw nvae;
}
switch (alt253) {
case 1 :
// MFortranParser2018.g:2783:7: data_ref ( LPAREN substring_range RPAREN )?
{
pushFollow(FOLLOW_data_ref_in_designator11731);
data_ref();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2783:16: ( LPAREN substring_range RPAREN )?
int alt252=2;
int LA252_0 = input.LA(1);
if ( (LA252_0==LPAREN) ) {
alt252=1;
}
switch (alt252) {
case 1 :
// MFortranParser2018.g:2783:17: LPAREN substring_range RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_designator11734); if (state.failed) return;
pushFollow(FOLLOW_substring_range_in_designator11736);
substring_range();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSR=true;}
match(input,RPAREN,FOLLOW_RPAREN_in_designator11740); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.designator(hasSR); }
}
break;
case 2 :
// MFortranParser2018.g:2785:7: char_literal_constant LPAREN substring_range RPAREN
{
pushFollow(FOLLOW_char_literal_constant_in_designator11760);
char_literal_constant();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_designator11762); if (state.failed) return;
pushFollow(FOLLOW_substring_range_in_designator11764);
substring_range();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_designator11766); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.substring(true); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "designator"
// $ANTLR start "designator_or_func_ref"
// MFortranParser2018.g:2798:1: designator_or_func_ref : ( data_ref ( LPAREN substring_range_or_arg_list RPAREN )? | char_literal_constant LPAREN substring_range RPAREN );
public final void designator_or_func_ref() throws RecognitionException {
int substring_range_or_arg_list218 =0;
int sType = MFPUtils.DOFR_NONE;
try {
// MFortranParser2018.g:2805:5: ( data_ref ( LPAREN substring_range_or_arg_list RPAREN )? | char_literal_constant LPAREN substring_range RPAREN )
int alt255=2;
int LA255_0 = input.LA(1);
if ( (LA255_0==IDENT) ) {
int LA255_1 = input.LA(2);
if ( (LA255_1==EOF||LA255_1==AND||LA255_1==ASTERISK||(LA255_1 >= COLON && LA255_1 <= COMMA)||LA255_1==DEFINED_OP||(LA255_1 >= EOS && LA255_1 <= EQ)||(LA255_1 >= EQV && LA255_1 <= EQ_EQ)||LA255_1==GE||(LA255_1 >= GREATERTHAN && LA255_1 <= GT)||(LA255_1 >= LBRACKET && LA255_1 <= LE)||(LA255_1 >= LESSTHAN && LA255_1 <= LESSTHAN_EQ)||(LA255_1 >= LPAREN && LA255_1 <= LT)||LA255_1==MINUS||(LA255_1 >= NE && LA255_1 <= NEQV)||LA255_1==OR||LA255_1==PERCENT||LA255_1==PLUS||LA255_1==POWER||LA255_1==RBRACKET||LA255_1==RPAREN||(LA255_1 >= SLASH && LA255_1 <= SLASH_SLASH)) ) {
alt255=1;
}
else if ( (LA255_1==CHAR_CONST) ) {
alt255=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 255, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA255_0==CHAR_CONST||LA255_0==DIGIT_STR) ) {
alt255=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 255, 0, input);
throw nvae;
}
switch (alt255) {
case 1 :
// MFortranParser2018.g:2805:7: data_ref ( LPAREN substring_range_or_arg_list RPAREN )?
{
pushFollow(FOLLOW_data_ref_in_designator_or_func_ref11805);
data_ref();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2806:7: ( LPAREN substring_range_or_arg_list RPAREN )?
int alt254=2;
int LA254_0 = input.LA(1);
if ( (LA254_0==LPAREN) ) {
alt254=1;
}
switch (alt254) {
case 1 :
// MFortranParser2018.g:2806:9: LPAREN substring_range_or_arg_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_designator_or_func_ref11816); if (state.failed) return;
pushFollow(FOLLOW_substring_range_or_arg_list_in_designator_or_func_ref11818);
substring_range_or_arg_list218=substring_range_or_arg_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_designator_or_func_ref11820); if (state.failed) return;
if ( state.backtracking==0 ) { sType = substring_range_or_arg_list218; }
}
break;
}
if ( state.backtracking==0 ) { if(sType == MFPUtils.DOFR_SRNG) {
MFPA.designator(true);
}else if (sType == MFPUtils.DOFR_ARGS) {
MFPA.function_reference();
}
}
}
break;
case 2 :
// MFortranParser2018.g:2815:7: char_literal_constant LPAREN substring_range RPAREN
{
pushFollow(FOLLOW_char_literal_constant_in_designator_or_func_ref11859);
char_literal_constant();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_designator_or_func_ref11861); if (state.failed) return;
pushFollow(FOLLOW_substring_range_in_designator_or_func_ref11863);
substring_range();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_designator_or_func_ref11865); if (state.failed) return;
if ( state.backtracking==0 ) { sType = MFPUtils.DOFR_SSTR;
MFPA.substring(true);
}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.designator_or_func_ref(sType);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "designator_or_func_ref"
// $ANTLR start "substring_range_or_arg_list"
// MFortranParser2018.g:2821:1: substring_range_or_arg_list returns [int sType] : ( COLON ( expr )? | expr substr_range_or_arg_list_suffix | IDENT EQUALS expr ( COMMA actual_arg_spec )* | ( IDENT EQUALS )? ASTERISK lbl= label ( COMMA actual_arg_spec )* );
public final int substring_range_or_arg_list() throws RecognitionException {
int sType = 0;
Token IDENT220=null;
Token IDENT221=null;
Token ASTERISK222=null;
Token lbl =null;
int substr_range_or_arg_list_suffix219 =0;
boolean hasUB = false;
boolean hasLB = false;
Token keyword = null;
int numAAS = 1;
try {
// MFortranParser2018.g:2831:5: ( COLON ( expr )? | expr substr_range_or_arg_list_suffix | IDENT EQUALS expr ( COMMA actual_arg_spec )* | ( IDENT EQUALS )? ASTERISK lbl= label ( COMMA actual_arg_spec )* )
int alt260=4;
switch ( input.LA(1) ) {
case COLON:
{
alt260=1;
}
break;
case BIN_CONST:
case CHAR_CONST:
case DEFINED_OP:
case DIGIT_STR:
case FALSE:
case HEX_CONST:
case LBRACKET:
case LPAREN:
case MINUS:
case M_REAL_CONST:
case NOT:
case OCT_CONST:
case PLUS:
case TRUE:
{
alt260=2;
}
break;
case IDENT:
{
int LA260_3 = input.LA(2);
if ( (LA260_3==AND||LA260_3==ASTERISK||LA260_3==CHAR_CONST||LA260_3==COLON||LA260_3==COMMA||LA260_3==DEFINED_OP||LA260_3==EQ||(LA260_3 >= EQV && LA260_3 <= EQ_EQ)||LA260_3==GE||(LA260_3 >= GREATERTHAN && LA260_3 <= GT)||(LA260_3 >= LBRACKET && LA260_3 <= LE)||(LA260_3 >= LESSTHAN && LA260_3 <= LESSTHAN_EQ)||(LA260_3 >= LPAREN && LA260_3 <= LT)||LA260_3==MINUS||(LA260_3 >= NE && LA260_3 <= NEQV)||LA260_3==OR||LA260_3==PERCENT||LA260_3==PLUS||LA260_3==POWER||LA260_3==RPAREN||(LA260_3 >= SLASH && LA260_3 <= SLASH_SLASH)) ) {
alt260=2;
}
else if ( (LA260_3==EQUALS) ) {
int LA260_5 = input.LA(3);
if ( (LA260_5==BIN_CONST||LA260_5==CHAR_CONST||(LA260_5 >= DEFINED_OP && LA260_5 <= DIGIT_STR)||LA260_5==FALSE||(LA260_5 >= HEX_CONST && LA260_5 <= IDENT)||LA260_5==LBRACKET||LA260_5==LPAREN||LA260_5==MINUS||LA260_5==M_REAL_CONST||LA260_5==NOT||LA260_5==OCT_CONST||LA260_5==PLUS||LA260_5==TRUE) ) {
alt260=3;
}
else if ( (LA260_5==ASTERISK) ) {
alt260=4;
}
else {
if (state.backtracking>0) {state.failed=true; return sType;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 260, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return sType;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 260, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ASTERISK:
{
alt260=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return sType;}
NoViableAltException nvae =
new NoViableAltException("", 260, 0, input);
throw nvae;
}
switch (alt260) {
case 1 :
// MFortranParser2018.g:2831:7: COLON ( expr )?
{
match(input,COLON,FOLLOW_COLON_in_substring_range_or_arg_list11904); if (state.failed) return sType;
// MFortranParser2018.g:2831:13: ( expr )?
int alt256=2;
int LA256_0 = input.LA(1);
if ( (LA256_0==BIN_CONST||LA256_0==CHAR_CONST||(LA256_0 >= DEFINED_OP && LA256_0 <= DIGIT_STR)||LA256_0==FALSE||(LA256_0 >= HEX_CONST && LA256_0 <= IDENT)||LA256_0==LBRACKET||LA256_0==LPAREN||LA256_0==MINUS||LA256_0==M_REAL_CONST||LA256_0==NOT||LA256_0==OCT_CONST||LA256_0==PLUS||LA256_0==TRUE) ) {
alt256=1;
}
switch (alt256) {
case 1 :
// MFortranParser2018.g:2831:14: expr
{
pushFollow(FOLLOW_expr_in_substring_range_or_arg_list11907);
expr();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) {hasUB = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.substring_range(hasLB, hasUB);
sType = MFPUtils.DOFR_SRNG;
}
}
break;
case 2 :
// MFortranParser2018.g:2835:7: expr substr_range_or_arg_list_suffix
{
pushFollow(FOLLOW_expr_in_substring_range_or_arg_list11930);
expr();
state._fsp--;
if (state.failed) return sType;
pushFollow(FOLLOW_substr_range_or_arg_list_suffix_in_substring_range_or_arg_list11932);
substr_range_or_arg_list_suffix219=substr_range_or_arg_list_suffix();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) { sType = substr_range_or_arg_list_suffix219; }
}
break;
case 3 :
// MFortranParser2018.g:2837:7: IDENT EQUALS expr ( COMMA actual_arg_spec )*
{
IDENT220=(Token)match(input,IDENT,FOLLOW_IDENT_in_substring_range_or_arg_list11950); if (state.failed) return sType;
match(input,EQUALS,FOLLOW_EQUALS_in_substring_range_or_arg_list11952); if (state.failed) return sType;
pushFollow(FOLLOW_expr_in_substring_range_or_arg_list11954);
expr();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(IDENT220, null, null); }
// MFortranParser2018.g:2839:7: ( COMMA actual_arg_spec )*
loop257:
while (true) {
int alt257=2;
int LA257_0 = input.LA(1);
if ( (LA257_0==COMMA) ) {
alt257=1;
}
switch (alt257) {
case 1 :
// MFortranParser2018.g:2839:9: COMMA actual_arg_spec
{
match(input,COMMA,FOLLOW_COMMA_in_substring_range_or_arg_list11976); if (state.failed) return sType;
pushFollow(FOLLOW_actual_arg_spec_in_substring_range_or_arg_list11978);
actual_arg_spec();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) {numAAS++;}
}
break;
default :
break loop257;
}
}
if ( state.backtracking==0 ) { MFPA.actual_arg_spec_list(numAAS);
sType = MFPUtils.DOFR_ARGS;
}
}
break;
case 4 :
// MFortranParser2018.g:2843:7: ( IDENT EQUALS )? ASTERISK lbl= label ( COMMA actual_arg_spec )*
{
// MFortranParser2018.g:2843:7: ( IDENT EQUALS )?
int alt258=2;
int LA258_0 = input.LA(1);
if ( (LA258_0==IDENT) ) {
alt258=1;
}
switch (alt258) {
case 1 :
// MFortranParser2018.g:2843:9: IDENT EQUALS
{
IDENT221=(Token)match(input,IDENT,FOLLOW_IDENT_in_substring_range_or_arg_list12003); if (state.failed) return sType;
match(input,EQUALS,FOLLOW_EQUALS_in_substring_range_or_arg_list12005); if (state.failed) return sType;
if ( state.backtracking==0 ) {keyword=IDENT221;}
}
break;
}
ASTERISK222=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_substring_range_or_arg_list12012); if (state.failed) return sType;
pushFollow(FOLLOW_label_in_substring_range_or_arg_list12016);
lbl=label();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(keyword, ASTERISK222, lbl); }
// MFortranParser2018.g:2845:7: ( COMMA actual_arg_spec )*
loop259:
while (true) {
int alt259=2;
int LA259_0 = input.LA(1);
if ( (LA259_0==COMMA) ) {
alt259=1;
}
switch (alt259) {
case 1 :
// MFortranParser2018.g:2845:9: COMMA actual_arg_spec
{
match(input,COMMA,FOLLOW_COMMA_in_substring_range_or_arg_list12037); if (state.failed) return sType;
pushFollow(FOLLOW_actual_arg_spec_in_substring_range_or_arg_list12039);
actual_arg_spec();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) {numAAS++;}
}
break;
default :
break loop259;
}
}
if ( state.backtracking==0 ) { MFPA.actual_arg_spec_list(numAAS);
sType = MFPUtils.DOFR_ARGS;
}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.substring_range_or_arg_list();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return sType;
}
// $ANTLR end "substring_range_or_arg_list"
// $ANTLR start "substr_range_or_arg_list_suffix"
// MFortranParser2018.g:2851:1: substr_range_or_arg_list_suffix returns [int sType] : ( COLON ( expr )? | ( COMMA actual_arg_spec )* );
public final int substr_range_or_arg_list_suffix() throws RecognitionException {
int sType = 0;
boolean hasUB = false;
boolean hasLB = true;
int numAAS = 1;
int error = -1;
try {
// MFortranParser2018.g:2861:5: ( COLON ( expr )? | ( COMMA actual_arg_spec )* )
int alt263=2;
int LA263_0 = input.LA(1);
if ( (LA263_0==COLON) ) {
alt263=1;
}
else if ( (LA263_0==COMMA||LA263_0==RPAREN) ) {
alt263=2;
}
else {
if (state.backtracking>0) {state.failed=true; return sType;}
NoViableAltException nvae =
new NoViableAltException("", 263, 0, input);
throw nvae;
}
switch (alt263) {
case 1 :
// MFortranParser2018.g:2861:9: COLON ( expr )?
{
if ( state.backtracking==0 ) { MFPA.actual_arg_spec_list(error); }
match(input,COLON,FOLLOW_COLON_in_substr_range_or_arg_list_suffix12093); if (state.failed) return sType;
// MFortranParser2018.g:2862:13: ( expr )?
int alt261=2;
int LA261_0 = input.LA(1);
if ( (LA261_0==BIN_CONST||LA261_0==CHAR_CONST||(LA261_0 >= DEFINED_OP && LA261_0 <= DIGIT_STR)||LA261_0==FALSE||(LA261_0 >= HEX_CONST && LA261_0 <= IDENT)||LA261_0==LBRACKET||LA261_0==LPAREN||LA261_0==MINUS||LA261_0==M_REAL_CONST||LA261_0==NOT||LA261_0==OCT_CONST||LA261_0==PLUS||LA261_0==TRUE) ) {
alt261=1;
}
switch (alt261) {
case 1 :
// MFortranParser2018.g:2862:14: expr
{
pushFollow(FOLLOW_expr_in_substr_range_or_arg_list_suffix12096);
expr();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) {hasUB=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.substring_range(hasLB, hasUB);
sType = MFPUtils.DOFR_SRNG;
}
}
break;
case 2 :
// MFortranParser2018.g:2866:8: ( COMMA actual_arg_spec )*
{
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(null, null, null); }
// MFortranParser2018.g:2867:7: ( COMMA actual_arg_spec )*
loop262:
while (true) {
int alt262=2;
int LA262_0 = input.LA(1);
if ( (LA262_0==COMMA) ) {
alt262=1;
}
switch (alt262) {
case 1 :
// MFortranParser2018.g:2867:9: COMMA actual_arg_spec
{
match(input,COMMA,FOLLOW_COMMA_in_substr_range_or_arg_list_suffix12132); if (state.failed) return sType;
pushFollow(FOLLOW_actual_arg_spec_in_substr_range_or_arg_list_suffix12134);
actual_arg_spec();
state._fsp--;
if (state.failed) return sType;
if ( state.backtracking==0 ) {numAAS++;}
}
break;
default :
break loop262;
}
}
if ( state.backtracking==0 ) { MFPA.actual_arg_spec_list(numAAS);
sType = MFPUtils.DOFR_ARGS;
}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.substr_range_or_arg_list_suffix();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return sType;
}
// $ANTLR end "substr_range_or_arg_list_suffix"
// $ANTLR start "variable"
// MFortranParser2018.g:2876:1: variable : designator ;
public final void variable() throws RecognitionException {
try {
// MFortranParser2018.g:2877:5: ( designator )
// MFortranParser2018.g:2877:7: designator
{
pushFollow(FOLLOW_designator_in_variable12169);
designator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.variable(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "variable"
// $ANTLR start "logical_variable"
// MFortranParser2018.g:2890:1: logical_variable : variable ;
public final void logical_variable() throws RecognitionException {
try {
// MFortranParser2018.g:2891:5: ( variable )
// MFortranParser2018.g:2891:7: variable
{
pushFollow(FOLLOW_variable_in_logical_variable12201);
variable();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.logical_variable(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "logical_variable"
// $ANTLR start "char_variable"
// MFortranParser2018.g:2898:1: char_variable : variable ;
public final void char_variable() throws RecognitionException {
try {
// MFortranParser2018.g:2899:5: ( variable )
// MFortranParser2018.g:2899:7: variable
{
pushFollow(FOLLOW_variable_in_char_variable12229);
variable();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.char_variable(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "char_variable"
// $ANTLR start "default_char_variable"
// MFortranParser2018.g:2907:1: default_char_variable : variable ;
public final void default_char_variable() throws RecognitionException {
try {
// MFortranParser2018.g:2908:5: ( variable )
// MFortranParser2018.g:2908:7: variable
{
pushFollow(FOLLOW_variable_in_default_char_variable12257);
variable();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.default_char_variable(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "default_char_variable"
// $ANTLR start "int_variable"
// MFortranParser2018.g:2915:1: int_variable : variable ;
public final void int_variable() throws RecognitionException {
try {
// MFortranParser2018.g:2916:5: ( variable )
// MFortranParser2018.g:2916:7: variable
{
pushFollow(FOLLOW_variable_in_int_variable12286);
variable();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.int_variable(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "int_variable"
// $ANTLR start "substring"
// MFortranParser2018.g:2927:1: substring : ( data_ref ( LPAREN substring_range RPAREN )? | char_literal_constant LPAREN substring_range RPAREN );
public final void substring() throws RecognitionException {
boolean hasSR = false;
try {
// MFortranParser2018.g:2934:5: ( data_ref ( LPAREN substring_range RPAREN )? | char_literal_constant LPAREN substring_range RPAREN )
int alt265=2;
int LA265_0 = input.LA(1);
if ( (LA265_0==IDENT) ) {
int LA265_1 = input.LA(2);
if ( (LA265_1==COMMA||LA265_1==LBRACKET||LA265_1==LPAREN||LA265_1==PERCENT||LA265_1==RPAREN) ) {
alt265=1;
}
else if ( (LA265_1==CHAR_CONST) ) {
alt265=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 265, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA265_0==CHAR_CONST||LA265_0==DIGIT_STR) ) {
alt265=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 265, 0, input);
throw nvae;
}
switch (alt265) {
case 1 :
// MFortranParser2018.g:2934:7: data_ref ( LPAREN substring_range RPAREN )?
{
pushFollow(FOLLOW_data_ref_in_substring12323);
data_ref();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2935:7: ( LPAREN substring_range RPAREN )?
int alt264=2;
int LA264_0 = input.LA(1);
if ( (LA264_0==LPAREN) ) {
alt264=1;
}
switch (alt264) {
case 1 :
// MFortranParser2018.g:2935:8: LPAREN substring_range RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_substring12333); if (state.failed) return;
pushFollow(FOLLOW_substring_range_in_substring12335);
substring_range();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_substring12337); if (state.failed) return;
if ( state.backtracking==0 ) {hasSR=true;}
}
break;
}
}
break;
case 2 :
// MFortranParser2018.g:2936:7: char_literal_constant LPAREN substring_range RPAREN
{
pushFollow(FOLLOW_char_literal_constant_in_substring12349);
char_literal_constant();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_substring12358); if (state.failed) return;
pushFollow(FOLLOW_substring_range_in_substring12360);
substring_range();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_substring12362); if (state.failed) return;
if ( state.backtracking==0 ) {hasSR=true;}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.substring(hasSR);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "substring"
// $ANTLR start "substring_range"
// MFortranParser2018.g:2955:1: substring_range : ( expr )? COLON ( expr )? ;
public final void substring_range() throws RecognitionException {
boolean hasUB = false;
boolean hasLB = false;
try {
// MFortranParser2018.g:2960:5: ( ( expr )? COLON ( expr )? )
// MFortranParser2018.g:2960:7: ( expr )? COLON ( expr )?
{
// MFortranParser2018.g:2960:7: ( expr )?
int alt266=2;
int LA266_0 = input.LA(1);
if ( (LA266_0==BIN_CONST||LA266_0==CHAR_CONST||(LA266_0 >= DEFINED_OP && LA266_0 <= DIGIT_STR)||LA266_0==FALSE||(LA266_0 >= HEX_CONST && LA266_0 <= IDENT)||LA266_0==LBRACKET||LA266_0==LPAREN||LA266_0==MINUS||LA266_0==M_REAL_CONST||LA266_0==NOT||LA266_0==OCT_CONST||LA266_0==PLUS||LA266_0==TRUE) ) {
alt266=1;
}
switch (alt266) {
case 1 :
// MFortranParser2018.g:2960:8: expr
{
pushFollow(FOLLOW_expr_in_substring_range12391);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasLB = true;}
}
break;
}
match(input,COLON,FOLLOW_COLON_in_substring_range12397); if (state.failed) return;
// MFortranParser2018.g:2960:37: ( expr )?
int alt267=2;
int LA267_0 = input.LA(1);
if ( (LA267_0==BIN_CONST||LA267_0==CHAR_CONST||(LA267_0 >= DEFINED_OP && LA267_0 <= DIGIT_STR)||LA267_0==FALSE||(LA267_0 >= HEX_CONST && LA267_0 <= IDENT)||LA267_0==LBRACKET||LA267_0==LPAREN||LA267_0==MINUS||LA267_0==M_REAL_CONST||LA267_0==NOT||LA267_0==OCT_CONST||LA267_0==PLUS||LA267_0==TRUE) ) {
alt267=1;
}
switch (alt267) {
case 1 :
// MFortranParser2018.g:2960:38: expr
{
pushFollow(FOLLOW_expr_in_substring_range12400);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasUB = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.substring_range(hasLB, hasUB); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "substring_range"
// $ANTLR start "data_ref"
// MFortranParser2018.g:2967:1: data_ref : part_ref ( PERCENT part_ref )* ;
public final void data_ref() throws RecognitionException {
int numPR = 1;
try {
// MFortranParser2018.g:2974:5: ( part_ref ( PERCENT part_ref )* )
// MFortranParser2018.g:2974:7: part_ref ( PERCENT part_ref )*
{
pushFollow(FOLLOW_part_ref_in_data_ref12441);
part_ref();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2975:7: ( PERCENT part_ref )*
loop268:
while (true) {
int alt268=2;
int LA268_0 = input.LA(1);
if ( (LA268_0==PERCENT) ) {
alt268=1;
}
switch (alt268) {
case 1 :
// MFortranParser2018.g:2975:9: PERCENT part_ref
{
match(input,PERCENT,FOLLOW_PERCENT_in_data_ref12451); if (state.failed) return;
pushFollow(FOLLOW_part_ref_in_data_ref12453);
part_ref();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPR++;}
}
break;
default :
break loop268;
}
}
}
if ( state.backtracking==0 ) {
MFPA.data_ref(numPR);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_ref"
// $ANTLR start "part_ref"
// MFortranParser2018.g:2987:1: part_ref options {k=2; } : ( ( IDENT LPAREN )=> IDENT LPAREN section_subscript_list RPAREN ( image_selector )? | ( IDENT LBRACKET )=> IDENT image_selector | IDENT );
public final void part_ref() throws RecognitionException {
Token IDENT223=null;
Token IDENT224=null;
Token IDENT225=null;
boolean hasSSL = false;
boolean hasIS = false;
Token id = null;
try {
// MFortranParser2018.g:2997:5: ( ( IDENT LPAREN )=> IDENT LPAREN section_subscript_list RPAREN ( image_selector )? | ( IDENT LBRACKET )=> IDENT image_selector | IDENT )
int alt270=3;
int LA270_0 = input.LA(1);
if ( (LA270_0==IDENT) ) {
int LA270_1 = input.LA(2);
if ( (LA270_1==LPAREN) ) {
int LA270_2 = input.LA(3);
if ( (synpred23_MFortranParser2018()) ) {
alt270=1;
}
else if ( (true) ) {
alt270=3;
}
}
else if ( (LA270_1==LBRACKET) && (synpred24_MFortranParser2018())) {
alt270=2;
}
else if ( (LA270_1==EOF||LA270_1==AND||LA270_1==ASTERISK||(LA270_1 >= COLON && LA270_1 <= COMMA)||LA270_1==DEFINED_OP||(LA270_1 >= EOS && LA270_1 <= EQUALS)||(LA270_1 >= EQV && LA270_1 <= EQ_GT)||LA270_1==GE||(LA270_1 >= GREATERTHAN && LA270_1 <= GT)||LA270_1==LE||(LA270_1 >= LESSTHAN && LA270_1 <= LESSTHAN_EQ)||LA270_1==LT||LA270_1==MINUS||(LA270_1 >= NE && LA270_1 <= NEQV)||LA270_1==OR||LA270_1==PERCENT||LA270_1==PLUS||LA270_1==POWER||LA270_1==RBRACKET||LA270_1==RPAREN||(LA270_1 >= SLASH && LA270_1 <= SLASH_SLASH)) ) {
alt270=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 270, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 270, 0, input);
throw nvae;
}
switch (alt270) {
case 1 :
// MFortranParser2018.g:2997:7: ( IDENT LPAREN )=> IDENT LPAREN section_subscript_list RPAREN ( image_selector )?
{
IDENT223=(Token)match(input,IDENT,FOLLOW_IDENT_in_part_ref12510); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_part_ref12512); if (state.failed) return;
pushFollow(FOLLOW_section_subscript_list_in_part_ref12514);
section_subscript_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_part_ref12516); if (state.failed) return;
// MFortranParser2018.g:2999:11: ( image_selector )?
int alt269=2;
int LA269_0 = input.LA(1);
if ( (LA269_0==LBRACKET) ) {
alt269=1;
}
switch (alt269) {
case 1 :
// MFortranParser2018.g:2999:12: image_selector
{
pushFollow(FOLLOW_image_selector_in_part_ref12529);
image_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasIS=true;}
}
break;
}
if ( state.backtracking==0 ) { hasSSL=true; id=IDENT223;}
}
break;
case 2 :
// MFortranParser2018.g:3001:7: ( IDENT LBRACKET )=> IDENT image_selector
{
IDENT224=(Token)match(input,IDENT,FOLLOW_IDENT_in_part_ref12570); if (state.failed) return;
pushFollow(FOLLOW_image_selector_in_part_ref12572);
image_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasIS=true; id=IDENT224;}
}
break;
case 3 :
// MFortranParser2018.g:3004:7: IDENT
{
IDENT225=(Token)match(input,IDENT,FOLLOW_IDENT_in_part_ref12590); if (state.failed) return;
if ( state.backtracking==0 ) { id=IDENT225;}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.part_ref(id, hasSSL, hasIS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "part_ref"
// $ANTLR start "part_ref_no_image_selector"
// MFortranParser2018.g:3008:1: part_ref_no_image_selector options {k=2; } : ( ( IDENT LPAREN )=> IDENT LPAREN section_subscript_list RPAREN | IDENT );
public final void part_ref_no_image_selector() throws RecognitionException {
Token IDENT226=null;
Token IDENT227=null;
boolean hasSSL = false;
boolean hasIS = false;
Token id = null;
try {
// MFortranParser2018.g:3018:5: ( ( IDENT LPAREN )=> IDENT LPAREN section_subscript_list RPAREN | IDENT )
int alt271=2;
int LA271_0 = input.LA(1);
if ( (LA271_0==IDENT) ) {
int LA271_1 = input.LA(2);
if ( (LA271_1==LPAREN) && (synpred25_MFortranParser2018())) {
alt271=1;
}
else if ( (LA271_1==EOF||LA271_1==COMMA||LA271_1==LBRACKET||LA271_1==PERCENT||LA271_1==RPAREN) ) {
alt271=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 271, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 271, 0, input);
throw nvae;
}
switch (alt271) {
case 1 :
// MFortranParser2018.g:3018:7: ( IDENT LPAREN )=> IDENT LPAREN section_subscript_list RPAREN
{
IDENT226=(Token)match(input,IDENT,FOLLOW_IDENT_in_part_ref_no_image_selector12651); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_part_ref_no_image_selector12653); if (state.failed) return;
pushFollow(FOLLOW_section_subscript_list_in_part_ref_no_image_selector12655);
section_subscript_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_part_ref_no_image_selector12657); if (state.failed) return;
if ( state.backtracking==0 ) { hasSSL=true; id=IDENT226;}
}
break;
case 2 :
// MFortranParser2018.g:3021:7: IDENT
{
IDENT227=(Token)match(input,IDENT,FOLLOW_IDENT_in_part_ref_no_image_selector12675); if (state.failed) return;
if ( state.backtracking==0 ) { id=IDENT227;}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.part_ref(id, hasSSL, hasIS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "part_ref_no_image_selector"
// $ANTLR start "section_subscript"
// MFortranParser2018.g:3068:1: section_subscript returns [boolean isEmpty] : ( expr section_subscript_ambiguous | COLON ( expr )? ( COLON expr )? | COLON_COLON expr | IDENT EQUALS expr | IDENT EQUALS ASTERISK lbl= label | ASTERISK lbl= label |);
public final boolean section_subscript() throws RecognitionException {
boolean isEmpty = false;
Token IDENT228=null;
Token IDENT229=null;
Token ASTERISK230=null;
Token ASTERISK231=null;
Token lbl =null;
boolean hasUB = false;
boolean hasLB = false;
boolean hasStrd = false;
boolean isAmbiguous = false;
try {
// MFortranParser2018.g:3075:5: ( expr section_subscript_ambiguous | COLON ( expr )? ( COLON expr )? | COLON_COLON expr | IDENT EQUALS expr | IDENT EQUALS ASTERISK lbl= label | ASTERISK lbl= label |)
int alt274=7;
switch ( input.LA(1) ) {
case BIN_CONST:
case CHAR_CONST:
case DEFINED_OP:
case DIGIT_STR:
case FALSE:
case HEX_CONST:
case LBRACKET:
case LPAREN:
case MINUS:
case M_REAL_CONST:
case NOT:
case OCT_CONST:
case PLUS:
case TRUE:
{
alt274=1;
}
break;
case IDENT:
{
int LA274_2 = input.LA(2);
if ( (LA274_2==AND||LA274_2==ASTERISK||LA274_2==CHAR_CONST||(LA274_2 >= COLON && LA274_2 <= COMMA)||LA274_2==DEFINED_OP||LA274_2==EQ||(LA274_2 >= EQV && LA274_2 <= EQ_EQ)||LA274_2==GE||(LA274_2 >= GREATERTHAN && LA274_2 <= GT)||(LA274_2 >= LBRACKET && LA274_2 <= LE)||(LA274_2 >= LESSTHAN && LA274_2 <= LESSTHAN_EQ)||(LA274_2 >= LPAREN && LA274_2 <= LT)||LA274_2==MINUS||(LA274_2 >= NE && LA274_2 <= NEQV)||LA274_2==OR||LA274_2==PERCENT||LA274_2==PLUS||LA274_2==POWER||LA274_2==RPAREN||(LA274_2 >= SLASH && LA274_2 <= SLASH_SLASH)) ) {
alt274=1;
}
else if ( (LA274_2==EQUALS) ) {
int LA274_7 = input.LA(3);
if ( (LA274_7==ASTERISK) ) {
alt274=5;
}
else if ( (LA274_7==BIN_CONST||LA274_7==CHAR_CONST||(LA274_7 >= DEFINED_OP && LA274_7 <= DIGIT_STR)||LA274_7==FALSE||(LA274_7 >= HEX_CONST && LA274_7 <= IDENT)||LA274_7==LBRACKET||LA274_7==LPAREN||LA274_7==MINUS||LA274_7==M_REAL_CONST||LA274_7==NOT||LA274_7==OCT_CONST||LA274_7==PLUS||LA274_7==TRUE) ) {
alt274=4;
}
else {
if (state.backtracking>0) {state.failed=true; return isEmpty;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 274, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return isEmpty;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 274, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case COLON:
{
alt274=2;
}
break;
case COLON_COLON:
{
alt274=3;
}
break;
case ASTERISK:
{
alt274=6;
}
break;
case COMMA:
case RPAREN:
{
alt274=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return isEmpty;}
NoViableAltException nvae =
new NoViableAltException("", 274, 0, input);
throw nvae;
}
switch (alt274) {
case 1 :
// MFortranParser2018.g:3075:7: expr section_subscript_ambiguous
{
pushFollow(FOLLOW_expr_in_section_subscript12736);
expr();
state._fsp--;
if (state.failed) return isEmpty;
pushFollow(FOLLOW_section_subscript_ambiguous_in_section_subscript12738);
section_subscript_ambiguous();
state._fsp--;
if (state.failed) return isEmpty;
}
break;
case 2 :
// MFortranParser2018.g:3076:7: COLON ( expr )? ( COLON expr )?
{
match(input,COLON,FOLLOW_COLON_in_section_subscript12746); if (state.failed) return isEmpty;
// MFortranParser2018.g:3076:13: ( expr )?
int alt272=2;
int LA272_0 = input.LA(1);
if ( (LA272_0==BIN_CONST||LA272_0==CHAR_CONST||(LA272_0 >= DEFINED_OP && LA272_0 <= DIGIT_STR)||LA272_0==FALSE||(LA272_0 >= HEX_CONST && LA272_0 <= IDENT)||LA272_0==LBRACKET||LA272_0==LPAREN||LA272_0==MINUS||LA272_0==M_REAL_CONST||LA272_0==NOT||LA272_0==OCT_CONST||LA272_0==PLUS||LA272_0==TRUE) ) {
alt272=1;
}
switch (alt272) {
case 1 :
// MFortranParser2018.g:3076:14: expr
{
pushFollow(FOLLOW_expr_in_section_subscript12749);
expr();
state._fsp--;
if (state.failed) return isEmpty;
if ( state.backtracking==0 ) {hasUB=true;}
}
break;
}
// MFortranParser2018.g:3076:35: ( COLON expr )?
int alt273=2;
int LA273_0 = input.LA(1);
if ( (LA273_0==COLON) ) {
alt273=1;
}
switch (alt273) {
case 1 :
// MFortranParser2018.g:3076:36: COLON expr
{
match(input,COLON,FOLLOW_COLON_in_section_subscript12756); if (state.failed) return isEmpty;
pushFollow(FOLLOW_expr_in_section_subscript12758);
expr();
state._fsp--;
if (state.failed) return isEmpty;
if ( state.backtracking==0 ) {hasStrd=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.section_subscript(hasLB, hasUB, hasStrd, isAmbiguous); }
}
break;
case 3 :
// MFortranParser2018.g:3078:7: COLON_COLON expr
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_section_subscript12780); if (state.failed) return isEmpty;
pushFollow(FOLLOW_expr_in_section_subscript12782);
expr();
state._fsp--;
if (state.failed) return isEmpty;
if ( state.backtracking==0 ) { MFPA.section_subscript(hasLB, hasUB, true, isAmbiguous); }
}
break;
case 4 :
// MFortranParser2018.g:3080:7: IDENT EQUALS expr
{
IDENT228=(Token)match(input,IDENT,FOLLOW_IDENT_in_section_subscript12800); if (state.failed) return isEmpty;
match(input,EQUALS,FOLLOW_EQUALS_in_section_subscript12802); if (state.failed) return isEmpty;
pushFollow(FOLLOW_expr_in_section_subscript12804);
expr();
state._fsp--;
if (state.failed) return isEmpty;
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(IDENT228, null, null); }
}
break;
case 5 :
// MFortranParser2018.g:3082:7: IDENT EQUALS ASTERISK lbl= label
{
IDENT229=(Token)match(input,IDENT,FOLLOW_IDENT_in_section_subscript12827); if (state.failed) return isEmpty;
match(input,EQUALS,FOLLOW_EQUALS_in_section_subscript12829); if (state.failed) return isEmpty;
ASTERISK230=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_section_subscript12831); if (state.failed) return isEmpty;
pushFollow(FOLLOW_label_in_section_subscript12835);
lbl=label();
state._fsp--;
if (state.failed) return isEmpty;
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(IDENT229, ASTERISK230, lbl); }
}
break;
case 6 :
// MFortranParser2018.g:3084:7: ASTERISK lbl= label
{
ASTERISK231=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_section_subscript12854); if (state.failed) return isEmpty;
pushFollow(FOLLOW_label_in_section_subscript12858);
lbl=label();
state._fsp--;
if (state.failed) return isEmpty;
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(null, ASTERISK231, lbl); }
}
break;
case 7 :
// MFortranParser2018.g:3086:7:
{
if ( state.backtracking==0 ) { isEmpty = true; }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return isEmpty;
}
// $ANTLR end "section_subscript"
// $ANTLR start "section_subscript_ambiguous"
// MFortranParser2018.g:3089:1: section_subscript_ambiguous : ( COLON ( expr )? ( COLON expr )? | COLON_COLON expr |);
public final void section_subscript_ambiguous() throws RecognitionException {
boolean hasUB = false;
boolean hasLB = true;
boolean hasStrd = false;
boolean isAmbiguous = false;
try {
// MFortranParser2018.g:3099:5: ( COLON ( expr )? ( COLON expr )? | COLON_COLON expr |)
int alt277=3;
switch ( input.LA(1) ) {
case COLON:
{
alt277=1;
}
break;
case COLON_COLON:
{
alt277=2;
}
break;
case COMMA:
case RPAREN:
{
alt277=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 277, 0, input);
throw nvae;
}
switch (alt277) {
case 1 :
// MFortranParser2018.g:3099:7: COLON ( expr )? ( COLON expr )?
{
match(input,COLON,FOLLOW_COLON_in_section_subscript_ambiguous12932); if (state.failed) return;
// MFortranParser2018.g:3099:13: ( expr )?
int alt275=2;
int LA275_0 = input.LA(1);
if ( (LA275_0==BIN_CONST||LA275_0==CHAR_CONST||(LA275_0 >= DEFINED_OP && LA275_0 <= DIGIT_STR)||LA275_0==FALSE||(LA275_0 >= HEX_CONST && LA275_0 <= IDENT)||LA275_0==LBRACKET||LA275_0==LPAREN||LA275_0==MINUS||LA275_0==M_REAL_CONST||LA275_0==NOT||LA275_0==OCT_CONST||LA275_0==PLUS||LA275_0==TRUE) ) {
alt275=1;
}
switch (alt275) {
case 1 :
// MFortranParser2018.g:3099:14: expr
{
pushFollow(FOLLOW_expr_in_section_subscript_ambiguous12935);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasUB=true;}
}
break;
}
// MFortranParser2018.g:3099:35: ( COLON expr )?
int alt276=2;
int LA276_0 = input.LA(1);
if ( (LA276_0==COLON) ) {
alt276=1;
}
switch (alt276) {
case 1 :
// MFortranParser2018.g:3099:36: COLON expr
{
match(input,COLON,FOLLOW_COLON_in_section_subscript_ambiguous12942); if (state.failed) return;
pushFollow(FOLLOW_expr_in_section_subscript_ambiguous12944);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasStrd=true;}
}
break;
}
}
break;
case 2 :
// MFortranParser2018.g:3107:7: COLON_COLON expr
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_section_subscript_ambiguous12964); if (state.failed) return;
pushFollow(FOLLOW_expr_in_section_subscript_ambiguous12966);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasStrd=true; }
}
break;
case 3 :
// MFortranParser2018.g:3108:8:
{
if ( state.backtracking==0 ) { isAmbiguous=true; }
}
break;
}
if ( state.backtracking==0 ) {
MFPA.section_subscript(hasLB, hasUB, hasStrd, isAmbiguous);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "section_subscript_ambiguous"
// $ANTLR start "section_subscript_list"
// MFortranParser2018.g:3111:1: section_subscript_list : isEmpty= section_subscript ( COMMA section_subscript )* ;
public final void section_subscript_list() throws RecognitionException {
boolean isEmpty =false;
int numSS = 1;
try {
// MFortranParser2018.g:3118:5: (isEmpty= section_subscript ( COMMA section_subscript )* )
// MFortranParser2018.g:3118:7: isEmpty= section_subscript ( COMMA section_subscript )*
{
pushFollow(FOLLOW_section_subscript_in_section_subscript_list13008);
isEmpty=section_subscript();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { if (isEmpty) numSS--; }
// MFortranParser2018.g:3119:7: ( COMMA section_subscript )*
loop278:
while (true) {
int alt278=2;
int LA278_0 = input.LA(1);
if ( (LA278_0==COMMA) ) {
alt278=1;
}
switch (alt278) {
case 1 :
// MFortranParser2018.g:3119:8: COMMA section_subscript
{
match(input,COMMA,FOLLOW_COMMA_in_section_subscript_list13019); if (state.failed) return;
pushFollow(FOLLOW_section_subscript_in_section_subscript_list13021);
section_subscript();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numSS++;}
}
break;
default :
break loop278;
}
}
}
if ( state.backtracking==0 ) {
MFPA.section_subscript_list(numSS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "section_subscript_list"
// $ANTLR start "image_selector"
// MFortranParser2018.g:3133:1: image_selector : LBRACKET cosubscript_list ( COMMA image_selector_spec_list ) RBRACKET ;
public final void image_selector() throws RecognitionException {
boolean hasISSL = false;
try {
// MFortranParser2018.g:3137:5: ( LBRACKET cosubscript_list ( COMMA image_selector_spec_list ) RBRACKET )
// MFortranParser2018.g:3137:7: LBRACKET cosubscript_list ( COMMA image_selector_spec_list ) RBRACKET
{
match(input,LBRACKET,FOLLOW_LBRACKET_in_image_selector13051); if (state.failed) return;
pushFollow(FOLLOW_cosubscript_list_in_image_selector13053);
cosubscript_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3137:33: ( COMMA image_selector_spec_list )
// MFortranParser2018.g:3137:34: COMMA image_selector_spec_list
{
match(input,COMMA,FOLLOW_COMMA_in_image_selector13056); if (state.failed) return;
pushFollow(FOLLOW_image_selector_spec_list_in_image_selector13058);
image_selector_spec_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasISSL=true;}
}
match(input,RBRACKET,FOLLOW_RBRACKET_in_image_selector13064); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.image_selector(hasISSL);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "image_selector"
// $ANTLR start "cosubscript_list"
// MFortranParser2018.g:3145:1: cosubscript_list : expr ( COMMA expr )* ;
public final void cosubscript_list() throws RecognitionException {
int numE = 1;
try {
// MFortranParser2018.g:3152:5: ( expr ( COMMA expr )* )
// MFortranParser2018.g:3152:7: expr ( COMMA expr )*
{
pushFollow(FOLLOW_expr_in_cosubscript_list13101);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3153:7: ( COMMA expr )*
loop279:
while (true) {
int alt279=2;
int LA279_0 = input.LA(1);
if ( (LA279_0==COMMA) ) {
int LA279_1 = input.LA(2);
if ( (LA279_1==BIN_CONST||LA279_1==CHAR_CONST||(LA279_1 >= DEFINED_OP && LA279_1 <= DIGIT_STR)||LA279_1==FALSE||(LA279_1 >= HEX_CONST && LA279_1 <= IDENT)||LA279_1==LBRACKET||LA279_1==LPAREN||LA279_1==MINUS||LA279_1==M_REAL_CONST||LA279_1==NOT||LA279_1==OCT_CONST||LA279_1==PLUS||LA279_1==TRUE) ) {
alt279=1;
}
}
switch (alt279) {
case 1 :
// MFortranParser2018.g:3153:9: COMMA expr
{
match(input,COMMA,FOLLOW_COMMA_in_cosubscript_list13111); if (state.failed) return;
pushFollow(FOLLOW_expr_in_cosubscript_list13113);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numE++;}
}
break;
default :
break loop279;
}
}
}
if ( state.backtracking==0 ) {
MFPA.cosubscript_list(numE);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "cosubscript_list"
// $ANTLR start "image_selector_spec"
// MFortranParser2018.g:3162:1: image_selector_spec : ( STAT EQUALS designator | TEAM EQUALS expr | TEAM_NUMBER EQUALS expr );
public final void image_selector_spec() throws RecognitionException {
Token STAT232=null;
Token TEAM233=null;
Token TEAM_NUMBER234=null;
try {
// MFortranParser2018.g:3163:5: ( STAT EQUALS designator | TEAM EQUALS expr | TEAM_NUMBER EQUALS expr )
int alt280=3;
switch ( input.LA(1) ) {
case STAT:
{
alt280=1;
}
break;
case TEAM:
{
alt280=2;
}
break;
case TEAM_NUMBER:
{
alt280=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 280, 0, input);
throw nvae;
}
switch (alt280) {
case 1 :
// MFortranParser2018.g:3163:7: STAT EQUALS designator
{
STAT232=(Token)match(input,STAT,FOLLOW_STAT_in_image_selector_spec13137); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_image_selector_spec13139); if (state.failed) return;
pushFollow(FOLLOW_designator_in_image_selector_spec13141);
designator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.image_selector_spec(STAT232,
MFPUtils.ATTR_STAT); }
}
break;
case 2 :
// MFortranParser2018.g:3166:7: TEAM EQUALS expr
{
TEAM233=(Token)match(input,TEAM,FOLLOW_TEAM_in_image_selector_spec13159); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_image_selector_spec13161); if (state.failed) return;
pushFollow(FOLLOW_expr_in_image_selector_spec13163);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.image_selector_spec(TEAM233,
MFPUtils.ATTR_TEAM); }
}
break;
case 3 :
// MFortranParser2018.g:3169:7: TEAM_NUMBER EQUALS expr
{
TEAM_NUMBER234=(Token)match(input,TEAM_NUMBER,FOLLOW_TEAM_NUMBER_in_image_selector_spec13181); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_image_selector_spec13183); if (state.failed) return;
pushFollow(FOLLOW_expr_in_image_selector_spec13185);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.image_selector_spec(TEAM_NUMBER234,
MFPUtils.ATTR_TEAM_NUMBER); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "image_selector_spec"
// $ANTLR start "image_selector_spec_list"
// MFortranParser2018.g:3175:1: image_selector_spec_list : image_selector_spec ( COMMA image_selector_spec )* ;
public final void image_selector_spec_list() throws RecognitionException {
int numISS = 1;
try {
// MFortranParser2018.g:3182:5: ( image_selector_spec ( COMMA image_selector_spec )* )
// MFortranParser2018.g:3182:7: image_selector_spec ( COMMA image_selector_spec )*
{
pushFollow(FOLLOW_image_selector_spec_in_image_selector_spec_list13221);
image_selector_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3183:7: ( COMMA image_selector_spec )*
loop281:
while (true) {
int alt281=2;
int LA281_0 = input.LA(1);
if ( (LA281_0==COMMA) ) {
alt281=1;
}
switch (alt281) {
case 1 :
// MFortranParser2018.g:3183:9: COMMA image_selector_spec
{
match(input,COMMA,FOLLOW_COMMA_in_image_selector_spec_list13231); if (state.failed) return;
pushFollow(FOLLOW_image_selector_spec_in_image_selector_spec_list13233);
image_selector_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numISS++;}
}
break;
default :
break loop281;
}
}
}
if ( state.backtracking==0 ) {
MFPA.image_selector_spec_list(numISS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "image_selector_spec_list"
// $ANTLR start "allocate_stmt"
// MFortranParser2018.g:3192:1: allocate_stmt : ( (lbl= label )? M_ALLOCATE_STMT_1 ALLOCATE LPAREN type_spec COLON_COLON allocation_list ( COMMA alloc_opt_list )? RPAREN end_of_stmt | (lbl= label )? ALLOCATE LPAREN allocation_list ( COMMA alloc_opt_list )? RPAREN end_of_stmt );
public final void allocate_stmt() throws RecognitionException {
Token ALLOCATE235=null;
Token ALLOCATE237=null;
Token lbl =null;
Token end_of_stmt236 =null;
Token end_of_stmt238 =null;
boolean hasTS = false;
boolean hasAOL = false;
try {
// MFortranParser2018.g:3200:5: ( (lbl= label )? M_ALLOCATE_STMT_1 ALLOCATE LPAREN type_spec COLON_COLON allocation_list ( COMMA alloc_opt_list )? RPAREN end_of_stmt | (lbl= label )? ALLOCATE LPAREN allocation_list ( COMMA alloc_opt_list )? RPAREN end_of_stmt )
int alt286=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA286_1 = input.LA(2);
if ( (LA286_1==M_ALLOCATE_STMT_1) ) {
alt286=1;
}
else if ( (LA286_1==ALLOCATE) ) {
alt286=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 286, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case M_ALLOCATE_STMT_1:
{
alt286=1;
}
break;
case ALLOCATE:
{
alt286=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 286, 0, input);
throw nvae;
}
switch (alt286) {
case 1 :
// MFortranParser2018.g:3200:7: (lbl= label )? M_ALLOCATE_STMT_1 ALLOCATE LPAREN type_spec COLON_COLON allocation_list ( COMMA alloc_opt_list )? RPAREN end_of_stmt
{
// MFortranParser2018.g:3200:7: (lbl= label )?
int alt282=2;
int LA282_0 = input.LA(1);
if ( (LA282_0==DIGIT_STR) ) {
alt282=1;
}
switch (alt282) {
case 1 :
// MFortranParser2018.g:3200:8: lbl= label
{
pushFollow(FOLLOW_label_in_allocate_stmt13268);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_ALLOCATE_STMT_1,FOLLOW_M_ALLOCATE_STMT_1_in_allocate_stmt13280); if (state.failed) return;
ALLOCATE235=(Token)match(input,ALLOCATE,FOLLOW_ALLOCATE_in_allocate_stmt13282); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_allocate_stmt13284); if (state.failed) return;
pushFollow(FOLLOW_type_spec_in_allocate_stmt13293);
type_spec();
state._fsp--;
if (state.failed) return;
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_allocate_stmt13295); if (state.failed) return;
pushFollow(FOLLOW_allocation_list_in_allocate_stmt13297);
allocation_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3203:7: ( COMMA alloc_opt_list )?
int alt283=2;
int LA283_0 = input.LA(1);
if ( (LA283_0==COMMA) ) {
alt283=1;
}
switch (alt283) {
case 1 :
// MFortranParser2018.g:3203:9: COMMA alloc_opt_list
{
match(input,COMMA,FOLLOW_COMMA_in_allocate_stmt13307); if (state.failed) return;
pushFollow(FOLLOW_alloc_opt_list_in_allocate_stmt13309);
alloc_opt_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasAOL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_allocate_stmt13316); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_allocate_stmt13325);
end_of_stmt236=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.allocate_stmt(lbl, ALLOCATE235,
end_of_stmt236, true, hasAOL);
}
}
break;
case 2 :
// MFortranParser2018.g:3208:7: (lbl= label )? ALLOCATE LPAREN allocation_list ( COMMA alloc_opt_list )? RPAREN end_of_stmt
{
// MFortranParser2018.g:3208:7: (lbl= label )?
int alt284=2;
int LA284_0 = input.LA(1);
if ( (LA284_0==DIGIT_STR) ) {
alt284=1;
}
switch (alt284) {
case 1 :
// MFortranParser2018.g:3208:8: lbl= label
{
pushFollow(FOLLOW_label_in_allocate_stmt13346);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ALLOCATE237=(Token)match(input,ALLOCATE,FOLLOW_ALLOCATE_in_allocate_stmt13358); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_allocate_stmt13360); if (state.failed) return;
pushFollow(FOLLOW_allocation_list_in_allocate_stmt13362);
allocation_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3210:7: ( COMMA alloc_opt_list )?
int alt285=2;
int LA285_0 = input.LA(1);
if ( (LA285_0==COMMA) ) {
alt285=1;
}
switch (alt285) {
case 1 :
// MFortranParser2018.g:3210:9: COMMA alloc_opt_list
{
match(input,COMMA,FOLLOW_COMMA_in_allocate_stmt13372); if (state.failed) return;
pushFollow(FOLLOW_alloc_opt_list_in_allocate_stmt13374);
alloc_opt_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasAOL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_allocate_stmt13381); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_allocate_stmt13389);
end_of_stmt238=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.allocate_stmt(lbl, ALLOCATE237,
end_of_stmt238, hasTS, hasAOL);
}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_stmt"
// $ANTLR start "alloc_opt"
// MFortranParser2018.g:3225:1: alloc_opt : ( ERRMSG EQUALS default_char_variable | MOLD EQUALS expr | SOURCE EQUALS expr | STAT EQUALS designator );
public final void alloc_opt() throws RecognitionException {
Token ERRMSG239=null;
Token MOLD240=null;
Token SOURCE241=null;
Token STAT242=null;
try {
// MFortranParser2018.g:3226:5: ( ERRMSG EQUALS default_char_variable | MOLD EQUALS expr | SOURCE EQUALS expr | STAT EQUALS designator )
int alt287=4;
switch ( input.LA(1) ) {
case ERRMSG:
{
alt287=1;
}
break;
case MOLD:
{
alt287=2;
}
break;
case SOURCE:
{
alt287=3;
}
break;
case STAT:
{
alt287=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 287, 0, input);
throw nvae;
}
switch (alt287) {
case 1 :
// MFortranParser2018.g:3226:7: ERRMSG EQUALS default_char_variable
{
ERRMSG239=(Token)match(input,ERRMSG,FOLLOW_ERRMSG_in_alloc_opt13418); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_alloc_opt13420); if (state.failed) return;
pushFollow(FOLLOW_default_char_variable_in_alloc_opt13422);
default_char_variable();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.alloc_opt(ERRMSG239,
MFPUtils.ALLOC_OPT_ERRMSG); }
}
break;
case 2 :
// MFortranParser2018.g:3229:7: MOLD EQUALS expr
{
MOLD240=(Token)match(input,MOLD,FOLLOW_MOLD_in_alloc_opt13440); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_alloc_opt13442); if (state.failed) return;
pushFollow(FOLLOW_expr_in_alloc_opt13444);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.alloc_opt(MOLD240,
MFPUtils.ALLOC_OPT_MOLD); }
}
break;
case 3 :
// MFortranParser2018.g:3232:7: SOURCE EQUALS expr
{
SOURCE241=(Token)match(input,SOURCE,FOLLOW_SOURCE_in_alloc_opt13462); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_alloc_opt13464); if (state.failed) return;
pushFollow(FOLLOW_expr_in_alloc_opt13466);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.alloc_opt(SOURCE241,
MFPUtils.ALLOC_OPT_SOURCE); }
}
break;
case 4 :
// MFortranParser2018.g:3235:7: STAT EQUALS designator
{
STAT242=(Token)match(input,STAT,FOLLOW_STAT_in_alloc_opt13484); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_alloc_opt13486); if (state.failed) return;
pushFollow(FOLLOW_designator_in_alloc_opt13488);
designator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.alloc_opt(STAT242,
MFPUtils.ALLOC_OPT_STAT); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "alloc_opt"
// $ANTLR start "alloc_opt_list"
// MFortranParser2018.g:3240:1: alloc_opt_list : alloc_opt ( COMMA alloc_opt )* ;
public final void alloc_opt_list() throws RecognitionException {
int numAO = 1;
try {
// MFortranParser2018.g:3247:5: ( alloc_opt ( COMMA alloc_opt )* )
// MFortranParser2018.g:3247:7: alloc_opt ( COMMA alloc_opt )*
{
pushFollow(FOLLOW_alloc_opt_in_alloc_opt_list13523);
alloc_opt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3248:7: ( COMMA alloc_opt )*
loop288:
while (true) {
int alt288=2;
int LA288_0 = input.LA(1);
if ( (LA288_0==COMMA) ) {
alt288=1;
}
switch (alt288) {
case 1 :
// MFortranParser2018.g:3248:9: COMMA alloc_opt
{
match(input,COMMA,FOLLOW_COMMA_in_alloc_opt_list13533); if (state.failed) return;
pushFollow(FOLLOW_alloc_opt_in_alloc_opt_list13535);
alloc_opt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAO++;}
}
break;
default :
break loop288;
}
}
}
if ( state.backtracking==0 ) {
MFPA.alloc_opt_list(numAO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "alloc_opt_list"
// $ANTLR start "allocation"
// MFortranParser2018.g:3254:1: allocation : ( ( allocate_object LBRACKET )=> allocate_object LBRACKET allocate_coarray_spec RBRACKET | ( allocate_object )=> allocate_object );
public final void allocation() throws RecognitionException {
boolean hasASSL = false;
boolean hasACS = false;
try {
// MFortranParser2018.g:3259:5: ( ( allocate_object LBRACKET )=> allocate_object LBRACKET allocate_coarray_spec RBRACKET | ( allocate_object )=> allocate_object )
int alt289=2;
int LA289_0 = input.LA(1);
if ( (LA289_0==IDENT) ) {
int LA289_1 = input.LA(2);
if ( (synpred26_MFortranParser2018()) ) {
alt289=1;
}
else if ( (synpred27_MFortranParser2018()) ) {
alt289=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 289, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 289, 0, input);
throw nvae;
}
switch (alt289) {
case 1 :
// MFortranParser2018.g:3259:7: ( allocate_object LBRACKET )=> allocate_object LBRACKET allocate_coarray_spec RBRACKET
{
pushFollow(FOLLOW_allocate_object_in_allocation13582);
allocate_object();
state._fsp--;
if (state.failed) return;
match(input,LBRACKET,FOLLOW_LBRACKET_in_allocation13584); if (state.failed) return;
pushFollow(FOLLOW_allocate_coarray_spec_in_allocation13586);
allocate_coarray_spec();
state._fsp--;
if (state.failed) return;
match(input,RBRACKET,FOLLOW_RBRACKET_in_allocation13588); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.allocation(hasASSL, true); }
}
break;
case 2 :
// MFortranParser2018.g:3271:7: ( allocate_object )=> allocate_object
{
pushFollow(FOLLOW_allocate_object_in_allocation13635);
allocate_object();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.allocation(hasASSL, hasACS);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocation"
// $ANTLR start "allocation_list"
// MFortranParser2018.g:3276:1: allocation_list : allocation ( COMMA allocation )* ;
public final void allocation_list() throws RecognitionException {
int numAl = 1;
try {
// MFortranParser2018.g:3283:5: ( allocation ( COMMA allocation )* )
// MFortranParser2018.g:3283:7: allocation ( COMMA allocation )*
{
pushFollow(FOLLOW_allocation_in_allocation_list13669);
allocation();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3284:7: ( COMMA allocation )*
loop290:
while (true) {
int alt290=2;
int LA290_0 = input.LA(1);
if ( (LA290_0==COMMA) ) {
int LA290_1 = input.LA(2);
if ( (LA290_1==IDENT) ) {
alt290=1;
}
}
switch (alt290) {
case 1 :
// MFortranParser2018.g:3284:9: COMMA allocation
{
match(input,COMMA,FOLLOW_COMMA_in_allocation_list13679); if (state.failed) return;
pushFollow(FOLLOW_allocation_in_allocation_list13681);
allocation();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAl++;}
}
break;
default :
break loop290;
}
}
}
if ( state.backtracking==0 ) {
MFPA.allocation_list(numAl);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocation_list"
// $ANTLR start "allocate_object"
// MFortranParser2018.g:3295:1: allocate_object : part_ref_no_image_selector ( PERCENT part_ref_no_image_selector )* ;
public final void allocate_object() throws RecognitionException {
int numPR = 1;
try {
// MFortranParser2018.g:3303:5: ( part_ref_no_image_selector ( PERCENT part_ref_no_image_selector )* )
// MFortranParser2018.g:3303:7: part_ref_no_image_selector ( PERCENT part_ref_no_image_selector )*
{
pushFollow(FOLLOW_part_ref_no_image_selector_in_allocate_object13713);
part_ref_no_image_selector();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3304:7: ( PERCENT part_ref_no_image_selector )*
loop291:
while (true) {
int alt291=2;
int LA291_0 = input.LA(1);
if ( (LA291_0==PERCENT) ) {
alt291=1;
}
switch (alt291) {
case 1 :
// MFortranParser2018.g:3304:8: PERCENT part_ref_no_image_selector
{
match(input,PERCENT,FOLLOW_PERCENT_in_allocate_object13722); if (state.failed) return;
pushFollow(FOLLOW_part_ref_no_image_selector_in_allocate_object13724);
part_ref_no_image_selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPR++;}
}
break;
default :
break loop291;
}
}
}
if ( state.backtracking==0 ) {
MFPA.data_ref(numPR);
MFPA.allocate_object();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_object"
// $ANTLR start "allocate_object_list"
// MFortranParser2018.g:3307:1: allocate_object_list : allocate_object ( COMMA allocate_object )* ;
public final void allocate_object_list() throws RecognitionException {
int numAO = 1;
try {
// MFortranParser2018.g:3314:5: ( allocate_object ( COMMA allocate_object )* )
// MFortranParser2018.g:3314:7: allocate_object ( COMMA allocate_object )*
{
pushFollow(FOLLOW_allocate_object_in_allocate_object_list13753);
allocate_object();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3315:7: ( COMMA allocate_object )*
loop292:
while (true) {
int alt292=2;
int LA292_0 = input.LA(1);
if ( (LA292_0==COMMA) ) {
int LA292_1 = input.LA(2);
if ( (LA292_1==IDENT) ) {
alt292=1;
}
}
switch (alt292) {
case 1 :
// MFortranParser2018.g:3315:9: COMMA allocate_object
{
match(input,COMMA,FOLLOW_COMMA_in_allocate_object_list13763); if (state.failed) return;
pushFollow(FOLLOW_allocate_object_in_allocate_object_list13765);
allocate_object();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAO++;}
}
break;
default :
break loop292;
}
}
}
if ( state.backtracking==0 ) {
MFPA.allocate_object_list(numAO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_object_list"
// $ANTLR start "allocate_shape_spec"
// MFortranParser2018.g:3323:1: allocate_shape_spec : expr ( COLON expr )? ;
public final void allocate_shape_spec() throws RecognitionException {
boolean hasUB = true;
boolean hasLB = false;
try {
// MFortranParser2018.g:3328:5: ( expr ( COLON expr )? )
// MFortranParser2018.g:3328:7: expr ( COLON expr )?
{
pushFollow(FOLLOW_expr_in_allocate_shape_spec13793);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3328:12: ( COLON expr )?
int alt293=2;
int LA293_0 = input.LA(1);
if ( (LA293_0==COLON) ) {
alt293=1;
}
switch (alt293) {
case 1 :
// MFortranParser2018.g:3328:13: COLON expr
{
match(input,COLON,FOLLOW_COLON_in_allocate_shape_spec13796); if (state.failed) return;
pushFollow(FOLLOW_expr_in_allocate_shape_spec13798);
expr();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.allocate_shape_spec(hasLB, hasUB); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_shape_spec"
// $ANTLR start "allocate_shape_spec_list"
// MFortranParser2018.g:3332:1: allocate_shape_spec_list : allocate_shape_spec ( COMMA allocate_shape_spec )* ;
public final void allocate_shape_spec_list() throws RecognitionException {
int numASS = 1;
try {
// MFortranParser2018.g:3339:5: ( allocate_shape_spec ( COMMA allocate_shape_spec )* )
// MFortranParser2018.g:3339:7: allocate_shape_spec ( COMMA allocate_shape_spec )*
{
pushFollow(FOLLOW_allocate_shape_spec_in_allocate_shape_spec_list13835);
allocate_shape_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3340:7: ( COMMA allocate_shape_spec )*
loop294:
while (true) {
int alt294=2;
int LA294_0 = input.LA(1);
if ( (LA294_0==COMMA) ) {
alt294=1;
}
switch (alt294) {
case 1 :
// MFortranParser2018.g:3340:9: COMMA allocate_shape_spec
{
match(input,COMMA,FOLLOW_COMMA_in_allocate_shape_spec_list13845); if (state.failed) return;
pushFollow(FOLLOW_allocate_shape_spec_in_allocate_shape_spec_list13847);
allocate_shape_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numASS++;}
}
break;
default :
break loop294;
}
}
}
if ( state.backtracking==0 ) {
MFPA.allocate_shape_spec_list(numASS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_shape_spec_list"
// $ANTLR start "allocate_coarray_spec"
// MFortranParser2018.g:3353:1: allocate_coarray_spec options {k=3; } : ( ( ASTERISK )=> ASTERISK | ( expr COLON ASTERISK )=> expr COLON ASTERISK );
public final void allocate_coarray_spec() throws RecognitionException {
try {
// MFortranParser2018.g:3358:5: ( ( ASTERISK )=> ASTERISK | ( expr COLON ASTERISK )=> expr COLON ASTERISK )
int alt295=2;
int LA295_0 = input.LA(1);
if ( (LA295_0==ASTERISK) && (synpred28_MFortranParser2018())) {
alt295=1;
}
else if ( (LA295_0==NOT) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==PLUS) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==MINUS) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==DEFINED_OP) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==IDENT) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==DIGIT_STR) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==CHAR_CONST) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==M_REAL_CONST) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==LPAREN) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==TRUE) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==FALSE) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==BIN_CONST) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==OCT_CONST) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==HEX_CONST) && (synpred29_MFortranParser2018())) {
alt295=2;
}
else if ( (LA295_0==LBRACKET) && (synpred29_MFortranParser2018())) {
alt295=2;
}
switch (alt295) {
case 1 :
// MFortranParser2018.g:3358:7: ( ASTERISK )=> ASTERISK
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_allocate_coarray_spec13891); if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:3359:7: ( expr COLON ASTERISK )=> expr COLON ASTERISK
{
pushFollow(FOLLOW_expr_in_allocate_coarray_spec13909);
expr();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_allocate_coarray_spec13911); if (state.failed) return;
match(input,ASTERISK,FOLLOW_ASTERISK_in_allocate_coarray_spec13913); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.allocate_coarray_spec();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_coarray_spec"
// $ANTLR start "allocate_coshape_spec"
// MFortranParser2018.g:3367:1: allocate_coshape_spec : expr ( COLON expr )? ;
public final void allocate_coshape_spec() throws RecognitionException {
boolean hasLB = false;
try {
// MFortranParser2018.g:3371:5: ( expr ( COLON expr )? )
// MFortranParser2018.g:3371:7: expr ( COLON expr )?
{
pushFollow(FOLLOW_expr_in_allocate_coshape_spec13938);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3371:12: ( COLON expr )?
int alt296=2;
int LA296_0 = input.LA(1);
if ( (LA296_0==COLON) ) {
alt296=1;
}
switch (alt296) {
case 1 :
// MFortranParser2018.g:3371:14: COLON expr
{
match(input,COLON,FOLLOW_COLON_in_allocate_coshape_spec13942); if (state.failed) return;
pushFollow(FOLLOW_expr_in_allocate_coshape_spec13944);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasLB = true; }
}
break;
}
if ( state.backtracking==0 ) { MFPA.allocate_coshape_spec(hasLB); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_coshape_spec"
// $ANTLR start "allocate_coshape_spec_list"
// MFortranParser2018.g:3375:1: allocate_coshape_spec_list : allocate_coshape_spec ( COMMA allocate_coshape_spec )* ;
public final void allocate_coshape_spec_list() throws RecognitionException {
int numAOS = 1;
try {
// MFortranParser2018.g:3382:4: ( allocate_coshape_spec ( COMMA allocate_coshape_spec )* )
// MFortranParser2018.g:3382:6: allocate_coshape_spec ( COMMA allocate_coshape_spec )*
{
pushFollow(FOLLOW_allocate_coshape_spec_in_allocate_coshape_spec_list13982);
allocate_coshape_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3383:6: ( COMMA allocate_coshape_spec )*
loop297:
while (true) {
int alt297=2;
int LA297_0 = input.LA(1);
if ( (LA297_0==COMMA) ) {
alt297=1;
}
switch (alt297) {
case 1 :
// MFortranParser2018.g:3383:8: COMMA allocate_coshape_spec
{
match(input,COMMA,FOLLOW_COMMA_in_allocate_coshape_spec_list13991); if (state.failed) return;
pushFollow(FOLLOW_allocate_coshape_spec_in_allocate_coshape_spec_list13993);
allocate_coshape_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAOS++;}
}
break;
default :
break loop297;
}
}
}
if ( state.backtracking==0 ) {
MFPA.allocate_coshape_spec_list(numAOS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "allocate_coshape_spec_list"
// $ANTLR start "nullify_stmt"
// MFortranParser2018.g:3389:1: nullify_stmt : (lbl= label )? NULLIFY LPAREN pointer_object_list RPAREN end_of_stmt ;
public final void nullify_stmt() throws RecognitionException {
Token NULLIFY243=null;
Token lbl =null;
Token end_of_stmt244 =null;
try {
// MFortranParser2018.g:3395:5: ( (lbl= label )? NULLIFY LPAREN pointer_object_list RPAREN end_of_stmt )
// MFortranParser2018.g:3395:7: (lbl= label )? NULLIFY LPAREN pointer_object_list RPAREN end_of_stmt
{
// MFortranParser2018.g:3395:7: (lbl= label )?
int alt298=2;
int LA298_0 = input.LA(1);
if ( (LA298_0==DIGIT_STR) ) {
alt298=1;
}
switch (alt298) {
case 1 :
// MFortranParser2018.g:3395:8: lbl= label
{
pushFollow(FOLLOW_label_in_nullify_stmt14027);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
NULLIFY243=(Token)match(input,NULLIFY,FOLLOW_NULLIFY_in_nullify_stmt14038); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_nullify_stmt14040); if (state.failed) return;
pushFollow(FOLLOW_pointer_object_list_in_nullify_stmt14042);
pointer_object_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_nullify_stmt14044); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_nullify_stmt14052);
end_of_stmt244=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.nullify_stmt(lbl, NULLIFY243, end_of_stmt244); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "nullify_stmt"
// $ANTLR start "pointer_object"
// MFortranParser2018.g:3407:1: pointer_object : data_ref ;
public final void pointer_object() throws RecognitionException {
try {
// MFortranParser2018.g:3408:5: ( data_ref )
// MFortranParser2018.g:3408:7: data_ref
{
pushFollow(FOLLOW_data_ref_in_pointer_object14081);
data_ref();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.pointer_object(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pointer_object"
// $ANTLR start "pointer_object_list"
// MFortranParser2018.g:3412:1: pointer_object_list : pointer_object ( COMMA pointer_object )* ;
public final void pointer_object_list() throws RecognitionException {
int numPO = 1;
try {
// MFortranParser2018.g:3419:5: ( pointer_object ( COMMA pointer_object )* )
// MFortranParser2018.g:3419:7: pointer_object ( COMMA pointer_object )*
{
pushFollow(FOLLOW_pointer_object_in_pointer_object_list14114);
pointer_object();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3420:7: ( COMMA pointer_object )*
loop299:
while (true) {
int alt299=2;
int LA299_0 = input.LA(1);
if ( (LA299_0==COMMA) ) {
alt299=1;
}
switch (alt299) {
case 1 :
// MFortranParser2018.g:3420:9: COMMA pointer_object
{
match(input,COMMA,FOLLOW_COMMA_in_pointer_object_list14124); if (state.failed) return;
pushFollow(FOLLOW_pointer_object_in_pointer_object_list14126);
pointer_object();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPO++;}
}
break;
default :
break loop299;
}
}
}
if ( state.backtracking==0 ) {
MFPA.pointer_object_list(numPO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pointer_object_list"
// $ANTLR start "deallocate_stmt"
// MFortranParser2018.g:3426:1: deallocate_stmt : (lbl= label )? DEALLOCATE LPAREN allocate_object_list ( COMMA dealloc_opt_list )? RPAREN end_of_stmt ;
public final void deallocate_stmt() throws RecognitionException {
Token DEALLOCATE245=null;
Token lbl =null;
Token end_of_stmt246 =null;
boolean hasDOL = false;
try {
// MFortranParser2018.g:3433:5: ( (lbl= label )? DEALLOCATE LPAREN allocate_object_list ( COMMA dealloc_opt_list )? RPAREN end_of_stmt )
// MFortranParser2018.g:3433:7: (lbl= label )? DEALLOCATE LPAREN allocate_object_list ( COMMA dealloc_opt_list )? RPAREN end_of_stmt
{
// MFortranParser2018.g:3433:7: (lbl= label )?
int alt300=2;
int LA300_0 = input.LA(1);
if ( (LA300_0==DIGIT_STR) ) {
alt300=1;
}
switch (alt300) {
case 1 :
// MFortranParser2018.g:3433:8: lbl= label
{
pushFollow(FOLLOW_label_in_deallocate_stmt14161);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
DEALLOCATE245=(Token)match(input,DEALLOCATE,FOLLOW_DEALLOCATE_in_deallocate_stmt14172); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_deallocate_stmt14174); if (state.failed) return;
pushFollow(FOLLOW_allocate_object_list_in_deallocate_stmt14176);
allocate_object_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3435:7: ( COMMA dealloc_opt_list )?
int alt301=2;
int LA301_0 = input.LA(1);
if ( (LA301_0==COMMA) ) {
alt301=1;
}
switch (alt301) {
case 1 :
// MFortranParser2018.g:3435:9: COMMA dealloc_opt_list
{
match(input,COMMA,FOLLOW_COMMA_in_deallocate_stmt14186); if (state.failed) return;
pushFollow(FOLLOW_dealloc_opt_list_in_deallocate_stmt14188);
dealloc_opt_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasDOL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_deallocate_stmt14194); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_deallocate_stmt14202);
end_of_stmt246=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.deallocate_stmt(lbl,
DEALLOCATE245, end_of_stmt246, hasDOL);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "deallocate_stmt"
// $ANTLR start "dealloc_opt"
// MFortranParser2018.g:3448:1: dealloc_opt : ( STAT EQUALS designator | ERRMSG EQUALS default_char_variable );
public final void dealloc_opt() throws RecognitionException {
Token STAT247=null;
Token ERRMSG248=null;
try {
// MFortranParser2018.g:3449:5: ( STAT EQUALS designator | ERRMSG EQUALS default_char_variable )
int alt302=2;
int LA302_0 = input.LA(1);
if ( (LA302_0==STAT) ) {
alt302=1;
}
else if ( (LA302_0==ERRMSG) ) {
alt302=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 302, 0, input);
throw nvae;
}
switch (alt302) {
case 1 :
// MFortranParser2018.g:3449:7: STAT EQUALS designator
{
STAT247=(Token)match(input,STAT,FOLLOW_STAT_in_dealloc_opt14235); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_dealloc_opt14237); if (state.failed) return;
pushFollow(FOLLOW_designator_in_dealloc_opt14239);
designator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.dealloc_opt(STAT247,
MFPUtils.DEALLOC_OPT_STAT); }
}
break;
case 2 :
// MFortranParser2018.g:3452:7: ERRMSG EQUALS default_char_variable
{
ERRMSG248=(Token)match(input,ERRMSG,FOLLOW_ERRMSG_in_dealloc_opt14257); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_dealloc_opt14259); if (state.failed) return;
pushFollow(FOLLOW_default_char_variable_in_dealloc_opt14261);
default_char_variable();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.dealloc_opt(ERRMSG248,
MFPUtils.DEALLOC_OPT_ERRMSG); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dealloc_opt"
// $ANTLR start "dealloc_opt_list"
// MFortranParser2018.g:3457:1: dealloc_opt_list : dealloc_opt ( COMMA dealloc_opt )* ;
public final void dealloc_opt_list() throws RecognitionException {
int numDO = 1;
try {
// MFortranParser2018.g:3464:5: ( dealloc_opt ( COMMA dealloc_opt )* )
// MFortranParser2018.g:3464:7: dealloc_opt ( COMMA dealloc_opt )*
{
pushFollow(FOLLOW_dealloc_opt_in_dealloc_opt_list14296);
dealloc_opt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3465:7: ( COMMA dealloc_opt )*
loop303:
while (true) {
int alt303=2;
int LA303_0 = input.LA(1);
if ( (LA303_0==COMMA) ) {
alt303=1;
}
switch (alt303) {
case 1 :
// MFortranParser2018.g:3465:9: COMMA dealloc_opt
{
match(input,COMMA,FOLLOW_COMMA_in_dealloc_opt_list14306); if (state.failed) return;
pushFollow(FOLLOW_dealloc_opt_in_dealloc_opt_list14308);
dealloc_opt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numDO++;}
}
break;
default :
break loop303;
}
}
}
if ( state.backtracking==0 ) {
MFPA.dealloc_opt_list(numDO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dealloc_opt_list"
// $ANTLR start "primary"
// MFortranParser2018.g:3478:1: primary options {backtrack=true; } : ( designator_or_func_ref | literal_constant | array_constructor | structure_constructor | LPAREN expr RPAREN );
public final void primary() throws RecognitionException {
try {
// MFortranParser2018.g:3483:5: ( designator_or_func_ref | literal_constant | array_constructor | structure_constructor | LPAREN expr RPAREN )
int alt304=5;
switch ( input.LA(1) ) {
case IDENT:
{
int LA304_1 = input.LA(2);
if ( (synpred30_MFortranParser2018()) ) {
alt304=1;
}
else if ( (synpred31_MFortranParser2018()) ) {
alt304=2;
}
else if ( (synpred33_MFortranParser2018()) ) {
alt304=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 304, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIGIT_STR:
{
int LA304_2 = input.LA(2);
if ( (synpred30_MFortranParser2018()) ) {
alt304=1;
}
else if ( (synpred31_MFortranParser2018()) ) {
alt304=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 304, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR_CONST:
{
int LA304_3 = input.LA(2);
if ( (synpred30_MFortranParser2018()) ) {
alt304=1;
}
else if ( (synpred31_MFortranParser2018()) ) {
alt304=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 304, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case BIN_CONST:
case FALSE:
case HEX_CONST:
case M_REAL_CONST:
case OCT_CONST:
case TRUE:
{
alt304=2;
}
break;
case LPAREN:
{
int LA304_5 = input.LA(2);
if ( (synpred31_MFortranParser2018()) ) {
alt304=2;
}
else if ( (synpred32_MFortranParser2018()) ) {
alt304=3;
}
else if ( (true) ) {
alt304=5;
}
}
break;
case LBRACKET:
{
alt304=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 304, 0, input);
throw nvae;
}
switch (alt304) {
case 1 :
// MFortranParser2018.g:3483:7: designator_or_func_ref
{
pushFollow(FOLLOW_designator_or_func_ref_in_primary14344);
designator_or_func_ref();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:3484:7: literal_constant
{
pushFollow(FOLLOW_literal_constant_in_primary14352);
literal_constant();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:3485:7: array_constructor
{
pushFollow(FOLLOW_array_constructor_in_primary14360);
array_constructor();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:3486:7: structure_constructor
{
pushFollow(FOLLOW_structure_constructor_in_primary14368);
structure_constructor();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:3487:7: LPAREN expr RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_primary14376); if (state.failed) return;
pushFollow(FOLLOW_expr_in_primary14378);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_primary14380); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.primary();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "primary"
// $ANTLR start "level_1_expr"
// MFortranParser2018.g:3493:1: level_1_expr : ( defined_unary_op )? primary ;
public final void level_1_expr() throws RecognitionException {
Token defined_unary_op249 =null;
Token t = null;
try {
// MFortranParser2018.g:3497:5: ( ( defined_unary_op )? primary )
// MFortranParser2018.g:3497:7: ( defined_unary_op )? primary
{
// MFortranParser2018.g:3497:7: ( defined_unary_op )?
int alt305=2;
int LA305_0 = input.LA(1);
if ( (LA305_0==DEFINED_OP) ) {
alt305=1;
}
switch (alt305) {
case 1 :
// MFortranParser2018.g:3497:8: defined_unary_op
{
pushFollow(FOLLOW_defined_unary_op_in_level_1_expr14404);
defined_unary_op249=defined_unary_op();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {t = defined_unary_op249;}
}
break;
}
pushFollow(FOLLOW_primary_in_level_1_expr14417);
primary();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.level_1_expr(t);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "level_1_expr"
// $ANTLR start "defined_unary_op"
// MFortranParser2018.g:3505:1: defined_unary_op returns [Token t] : DEFINED_OP ;
public final Token defined_unary_op() throws RecognitionException {
Token t = null;
Token DEFINED_OP250=null;
try {
// MFortranParser2018.g:3506:5: ( DEFINED_OP )
// MFortranParser2018.g:3506:7: DEFINED_OP
{
DEFINED_OP250=(Token)match(input,DEFINED_OP,FOLLOW_DEFINED_OP_in_defined_unary_op14450); if (state.failed) return t;
if ( state.backtracking==0 ) {t = DEFINED_OP250;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "defined_unary_op"
// $ANTLR start "power_operand"
// MFortranParser2018.g:3513:1: power_operand : level_1_expr ( power_op power_operand )? ;
public final void power_operand() throws RecognitionException {
Token power_op251 =null;
Token t = null;
try {
// MFortranParser2018.g:3517:5: ( level_1_expr ( power_op power_operand )? )
// MFortranParser2018.g:3517:7: level_1_expr ( power_op power_operand )?
{
pushFollow(FOLLOW_level_1_expr_in_power_operand14475);
level_1_expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3518:7: ( power_op power_operand )?
int alt306=2;
int LA306_0 = input.LA(1);
if ( (LA306_0==POWER) ) {
alt306=1;
}
switch (alt306) {
case 1 :
// MFortranParser2018.g:3518:9: power_op power_operand
{
pushFollow(FOLLOW_power_op_in_power_operand14486);
power_op251=power_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_power_operand_in_power_operand14488);
power_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {t = power_op251;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.power_operand(t);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "power_operand"
// $ANTLR start "mult_operand"
// MFortranParser2018.g:3522:1: mult_operand : power_operand ( mult_op power_operand )* ;
public final void mult_operand() throws RecognitionException {
Token mult_op252 =null;
int numMO = 0;
try {
// MFortranParser2018.g:3526:5: ( power_operand ( mult_op power_operand )* )
// MFortranParser2018.g:3526:7: power_operand ( mult_op power_operand )*
{
pushFollow(FOLLOW_power_operand_in_mult_operand14525);
power_operand();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3527:7: ( mult_op power_operand )*
loop307:
while (true) {
int alt307=2;
int LA307_0 = input.LA(1);
if ( (LA307_0==SLASH) ) {
int LA307_2 = input.LA(2);
if ( (LA307_2==BIN_CONST||LA307_2==CHAR_CONST||(LA307_2 >= DEFINED_OP && LA307_2 <= DIGIT_STR)||LA307_2==FALSE||(LA307_2 >= HEX_CONST && LA307_2 <= IDENT)||LA307_2==LBRACKET||LA307_2==LPAREN||LA307_2==M_REAL_CONST||LA307_2==OCT_CONST||LA307_2==TRUE) ) {
alt307=1;
}
}
else if ( (LA307_0==ASTERISK) ) {
alt307=1;
}
switch (alt307) {
case 1 :
// MFortranParser2018.g:3527:9: mult_op power_operand
{
pushFollow(FOLLOW_mult_op_in_mult_operand14536);
mult_op252=mult_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_power_operand_in_mult_operand14538);
power_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { numMO++; MFPA.mult_operand__mult_op(mult_op252); }
}
break;
default :
break loop307;
}
}
if ( state.backtracking==0 ) { MFPA.mult_operand(numMO); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "mult_operand"
// $ANTLR start "signed_operand"
// MFortranParser2018.g:3539:1: signed_operand : (t= add_op )? mult_operand ;
public final void signed_operand() throws RecognitionException {
Token t =null;
try {
// MFortranParser2018.g:3540:5: ( (t= add_op )? mult_operand )
// MFortranParser2018.g:3540:7: (t= add_op )? mult_operand
{
// MFortranParser2018.g:3540:7: (t= add_op )?
int alt308=2;
int LA308_0 = input.LA(1);
if ( (LA308_0==MINUS||LA308_0==PLUS) ) {
alt308=1;
}
switch (alt308) {
case 1 :
// MFortranParser2018.g:3540:8: t= add_op
{
pushFollow(FOLLOW_add_op_in_signed_operand14591);
t=add_op();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_mult_operand_in_signed_operand14602);
mult_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.signed_operand(t);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "signed_operand"
// $ANTLR start "add_operand"
// MFortranParser2018.g:3545:1: add_operand : signed_operand (t= add_op mult_operand )* ;
public final void add_operand() throws RecognitionException {
Token t =null;
int numAO = 0;
try {
// MFortranParser2018.g:3549:5: ( signed_operand (t= add_op mult_operand )* )
// MFortranParser2018.g:3549:7: signed_operand (t= add_op mult_operand )*
{
pushFollow(FOLLOW_signed_operand_in_add_operand14634);
signed_operand();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3550:7: (t= add_op mult_operand )*
loop309:
while (true) {
int alt309=2;
int LA309_0 = input.LA(1);
if ( (LA309_0==MINUS||LA309_0==PLUS) ) {
alt309=1;
}
switch (alt309) {
case 1 :
// MFortranParser2018.g:3550:9: t= add_op mult_operand
{
pushFollow(FOLLOW_add_op_in_add_operand14646);
t=add_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_mult_operand_in_add_operand14648);
mult_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { numAO++; MFPA.add_operand__add_op(t); }
}
break;
default :
break loop309;
}
}
if ( state.backtracking==0 ) { MFPA.add_operand(numAO);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "add_operand"
// $ANTLR start "level_2_expr"
// MFortranParser2018.g:3565:1: level_2_expr : add_operand ( concat_op add_operand )* ;
public final void level_2_expr() throws RecognitionException {
int numCO = 0;
try {
// MFortranParser2018.g:3569:5: ( add_operand ( concat_op add_operand )* )
// MFortranParser2018.g:3569:7: add_operand ( concat_op add_operand )*
{
pushFollow(FOLLOW_add_operand_in_level_2_expr14703);
add_operand();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3570:7: ( concat_op add_operand )*
loop310:
while (true) {
int alt310=2;
int LA310_0 = input.LA(1);
if ( (LA310_0==SLASH_SLASH) ) {
alt310=1;
}
switch (alt310) {
case 1 :
// MFortranParser2018.g:3570:9: concat_op add_operand
{
pushFollow(FOLLOW_concat_op_in_level_2_expr14714);
concat_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_add_operand_in_level_2_expr14716);
add_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { numCO++;}
}
break;
default :
break loop310;
}
}
if ( state.backtracking==0 ) { MFPA.level_2_expr(numCO); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "level_2_expr"
// $ANTLR start "power_op"
// MFortranParser2018.g:3579:1: power_op returns [Token t] : POWER ;
public final Token power_op() throws RecognitionException {
Token t = null;
Token POWER253=null;
try {
// MFortranParser2018.g:3580:5: ( POWER )
// MFortranParser2018.g:3580:7: POWER
{
POWER253=(Token)match(input,POWER,FOLLOW_POWER_in_power_op14771); if (state.failed) return t;
if ( state.backtracking==0 ) {t = POWER253;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "power_op"
// $ANTLR start "mult_op"
// MFortranParser2018.g:3586:1: mult_op returns [Token t] : ( ASTERISK | SLASH );
public final Token mult_op() throws RecognitionException {
Token t = null;
Token ASTERISK254=null;
Token SLASH255=null;
try {
// MFortranParser2018.g:3587:5: ( ASTERISK | SLASH )
int alt311=2;
int LA311_0 = input.LA(1);
if ( (LA311_0==ASTERISK) ) {
alt311=1;
}
else if ( (LA311_0==SLASH) ) {
alt311=2;
}
else {
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 311, 0, input);
throw nvae;
}
switch (alt311) {
case 1 :
// MFortranParser2018.g:3587:7: ASTERISK
{
ASTERISK254=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_mult_op14796); if (state.failed) return t;
if ( state.backtracking==0 ) { t = ASTERISK254; }
}
break;
case 2 :
// MFortranParser2018.g:3588:7: SLASH
{
SLASH255=(Token)match(input,SLASH,FOLLOW_SLASH_in_mult_op14806); if (state.failed) return t;
if ( state.backtracking==0 ) { t = SLASH255; }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "mult_op"
// $ANTLR start "add_op"
// MFortranParser2018.g:3594:1: add_op returns [Token t] : ( PLUS | MINUS );
public final Token add_op() throws RecognitionException {
Token t = null;
Token PLUS256=null;
Token MINUS257=null;
try {
// MFortranParser2018.g:3595:5: ( PLUS | MINUS )
int alt312=2;
int LA312_0 = input.LA(1);
if ( (LA312_0==PLUS) ) {
alt312=1;
}
else if ( (LA312_0==MINUS) ) {
alt312=2;
}
else {
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 312, 0, input);
throw nvae;
}
switch (alt312) {
case 1 :
// MFortranParser2018.g:3595:7: PLUS
{
PLUS256=(Token)match(input,PLUS,FOLLOW_PLUS_in_add_op14831); if (state.failed) return t;
if ( state.backtracking==0 ) {t = PLUS256;}
}
break;
case 2 :
// MFortranParser2018.g:3596:7: MINUS
{
MINUS257=(Token)match(input,MINUS,FOLLOW_MINUS_in_add_op14841); if (state.failed) return t;
if ( state.backtracking==0 ) {t = MINUS257;}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "add_op"
// $ANTLR start "level_3_expr"
// MFortranParser2018.g:3603:1: level_3_expr : level_2_expr ( rel_op level_2_expr )? ;
public final void level_3_expr() throws RecognitionException {
Token rel_op258 =null;
Token t = null;
try {
// MFortranParser2018.g:3605:5: ( level_2_expr ( rel_op level_2_expr )? )
// MFortranParser2018.g:3605:7: level_2_expr ( rel_op level_2_expr )?
{
pushFollow(FOLLOW_level_2_expr_in_level_3_expr14866);
level_2_expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3606:7: ( rel_op level_2_expr )?
int alt313=2;
int LA313_0 = input.LA(1);
if ( (LA313_0==EQ||LA313_0==EQ_EQ||LA313_0==GE||(LA313_0 >= GREATERTHAN && LA313_0 <= GT)||LA313_0==LE||(LA313_0 >= LESSTHAN && LA313_0 <= LESSTHAN_EQ)||LA313_0==LT||LA313_0==NE||LA313_0==SLASH_EQ) ) {
alt313=1;
}
switch (alt313) {
case 1 :
// MFortranParser2018.g:3606:8: rel_op level_2_expr
{
pushFollow(FOLLOW_rel_op_in_level_3_expr14876);
rel_op258=rel_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_level_2_expr_in_level_3_expr14878);
level_2_expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {t = rel_op258;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.level_3_expr(t);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "level_3_expr"
// $ANTLR start "concat_op"
// MFortranParser2018.g:3613:1: concat_op returns [Token t] : SLASH_SLASH ;
public final Token concat_op() throws RecognitionException {
Token t = null;
Token SLASH_SLASH259=null;
try {
// MFortranParser2018.g:3614:5: ( SLASH_SLASH )
// MFortranParser2018.g:3614:7: SLASH_SLASH
{
SLASH_SLASH259=(Token)match(input,SLASH_SLASH,FOLLOW_SLASH_SLASH_in_concat_op14919); if (state.failed) return t;
if ( state.backtracking==0 ) {t = SLASH_SLASH259;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "concat_op"
// $ANTLR start "rel_op"
// MFortranParser2018.g:3626:1: rel_op returns [Token t] : ( EQ | NE | LT | LE | GT | GE | EQ_EQ | SLASH_EQ | LESSTHAN | LESSTHAN_EQ | GREATERTHAN | GREATERTHAN_EQ );
public final Token rel_op() throws RecognitionException {
Token t = null;
Token EQ260=null;
Token NE261=null;
Token LT262=null;
Token LE263=null;
Token GT264=null;
Token GE265=null;
Token EQ_EQ266=null;
Token SLASH_EQ267=null;
Token LESSTHAN268=null;
Token LESSTHAN_EQ269=null;
Token GREATERTHAN270=null;
Token GREATERTHAN_EQ271=null;
try {
// MFortranParser2018.g:3627:5: ( EQ | NE | LT | LE | GT | GE | EQ_EQ | SLASH_EQ | LESSTHAN | LESSTHAN_EQ | GREATERTHAN | GREATERTHAN_EQ )
int alt314=12;
switch ( input.LA(1) ) {
case EQ:
{
alt314=1;
}
break;
case NE:
{
alt314=2;
}
break;
case LT:
{
alt314=3;
}
break;
case LE:
{
alt314=4;
}
break;
case GT:
{
alt314=5;
}
break;
case GE:
{
alt314=6;
}
break;
case EQ_EQ:
{
alt314=7;
}
break;
case SLASH_EQ:
{
alt314=8;
}
break;
case LESSTHAN:
{
alt314=9;
}
break;
case LESSTHAN_EQ:
{
alt314=10;
}
break;
case GREATERTHAN:
{
alt314=11;
}
break;
case GREATERTHAN_EQ:
{
alt314=12;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 314, 0, input);
throw nvae;
}
switch (alt314) {
case 1 :
// MFortranParser2018.g:3627:7: EQ
{
EQ260=(Token)match(input,EQ,FOLLOW_EQ_in_rel_op14947); if (state.failed) return t;
if ( state.backtracking==0 ) {t=EQ260;}
}
break;
case 2 :
// MFortranParser2018.g:3628:7: NE
{
NE261=(Token)match(input,NE,FOLLOW_NE_in_rel_op14957); if (state.failed) return t;
if ( state.backtracking==0 ) {t=NE261;}
}
break;
case 3 :
// MFortranParser2018.g:3629:7: LT
{
LT262=(Token)match(input,LT,FOLLOW_LT_in_rel_op14967); if (state.failed) return t;
if ( state.backtracking==0 ) {t=LT262;}
}
break;
case 4 :
// MFortranParser2018.g:3630:7: LE
{
LE263=(Token)match(input,LE,FOLLOW_LE_in_rel_op14977); if (state.failed) return t;
if ( state.backtracking==0 ) {t=LE263;}
}
break;
case 5 :
// MFortranParser2018.g:3631:7: GT
{
GT264=(Token)match(input,GT,FOLLOW_GT_in_rel_op14987); if (state.failed) return t;
if ( state.backtracking==0 ) {t=GT264;}
}
break;
case 6 :
// MFortranParser2018.g:3632:7: GE
{
GE265=(Token)match(input,GE,FOLLOW_GE_in_rel_op14997); if (state.failed) return t;
if ( state.backtracking==0 ) {t=GE265;}
}
break;
case 7 :
// MFortranParser2018.g:3633:7: EQ_EQ
{
EQ_EQ266=(Token)match(input,EQ_EQ,FOLLOW_EQ_EQ_in_rel_op15007); if (state.failed) return t;
if ( state.backtracking==0 ) {t=EQ_EQ266;}
}
break;
case 8 :
// MFortranParser2018.g:3634:7: SLASH_EQ
{
SLASH_EQ267=(Token)match(input,SLASH_EQ,FOLLOW_SLASH_EQ_in_rel_op15017); if (state.failed) return t;
if ( state.backtracking==0 ) {t=SLASH_EQ267;}
}
break;
case 9 :
// MFortranParser2018.g:3635:7: LESSTHAN
{
LESSTHAN268=(Token)match(input,LESSTHAN,FOLLOW_LESSTHAN_in_rel_op15027); if (state.failed) return t;
if ( state.backtracking==0 ) {t=LESSTHAN268;}
}
break;
case 10 :
// MFortranParser2018.g:3636:7: LESSTHAN_EQ
{
LESSTHAN_EQ269=(Token)match(input,LESSTHAN_EQ,FOLLOW_LESSTHAN_EQ_in_rel_op15037); if (state.failed) return t;
if ( state.backtracking==0 ) {t=LESSTHAN_EQ269;}
}
break;
case 11 :
// MFortranParser2018.g:3637:7: GREATERTHAN
{
GREATERTHAN270=(Token)match(input,GREATERTHAN,FOLLOW_GREATERTHAN_in_rel_op15047); if (state.failed) return t;
if ( state.backtracking==0 ) {t=GREATERTHAN270;}
}
break;
case 12 :
// MFortranParser2018.g:3638:7: GREATERTHAN_EQ
{
GREATERTHAN_EQ271=(Token)match(input,GREATERTHAN_EQ,FOLLOW_GREATERTHAN_EQ_in_rel_op15057); if (state.failed) return t;
if ( state.backtracking==0 ) {t=GREATERTHAN_EQ271;}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "rel_op"
// $ANTLR start "and_operand"
// MFortranParser2018.g:3645:1: and_operand : (t0= not_op )? level_3_expr ( and_op (t1= not_op )? level_3_expr )* ;
public final void and_operand() throws RecognitionException {
Token t0 =null;
Token t1 =null;
int numAO = 0;
try {
// MFortranParser2018.g:3649:5: ( (t0= not_op )? level_3_expr ( and_op (t1= not_op )? level_3_expr )* )
// MFortranParser2018.g:3649:7: (t0= not_op )? level_3_expr ( and_op (t1= not_op )? level_3_expr )*
{
// MFortranParser2018.g:3649:7: (t0= not_op )?
int alt315=2;
int LA315_0 = input.LA(1);
if ( (LA315_0==NOT) ) {
alt315=1;
}
switch (alt315) {
case 1 :
// MFortranParser2018.g:3649:9: t0= not_op
{
pushFollow(FOLLOW_not_op_in_and_operand15087);
t0=not_op();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_level_3_expr_in_and_operand15092);
level_3_expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3650:7: ( and_op (t1= not_op )? level_3_expr )*
loop317:
while (true) {
int alt317=2;
int LA317_0 = input.LA(1);
if ( (LA317_0==AND) ) {
alt317=1;
}
switch (alt317) {
case 1 :
// MFortranParser2018.g:3650:9: and_op (t1= not_op )? level_3_expr
{
pushFollow(FOLLOW_and_op_in_and_operand15102);
and_op();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3650:16: (t1= not_op )?
int alt316=2;
int LA316_0 = input.LA(1);
if ( (LA316_0==NOT) ) {
alt316=1;
}
switch (alt316) {
case 1 :
// MFortranParser2018.g:3650:18: t1= not_op
{
pushFollow(FOLLOW_not_op_in_and_operand15108);
t1=not_op();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_level_3_expr_in_and_operand15113);
level_3_expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.and_operand__not_op(t1);
numAO++;
t1=null;
}
}
break;
default :
break loop317;
}
}
if ( state.backtracking==0 ) { MFPA.and_operand(t0, numAO);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "and_operand"
// $ANTLR start "or_operand"
// MFortranParser2018.g:3663:1: or_operand : and_operand ( or_op and_operand )* ;
public final void or_operand() throws RecognitionException {
int numOO = 0;
try {
// MFortranParser2018.g:3667:5: ( and_operand ( or_op and_operand )* )
// MFortranParser2018.g:3667:7: and_operand ( or_op and_operand )*
{
pushFollow(FOLLOW_and_operand_in_or_operand15167);
and_operand();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3667:19: ( or_op and_operand )*
loop318:
while (true) {
int alt318=2;
int LA318_0 = input.LA(1);
if ( (LA318_0==OR) ) {
alt318=1;
}
switch (alt318) {
case 1 :
// MFortranParser2018.g:3667:20: or_op and_operand
{
pushFollow(FOLLOW_or_op_in_or_operand15170);
or_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_and_operand_in_or_operand15172);
and_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numOO++;}
}
break;
default :
break loop318;
}
}
if ( state.backtracking==0 ) { MFPA.or_operand(numOO); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "or_operand"
// $ANTLR start "equiv_operand"
// MFortranParser2018.g:3675:1: equiv_operand : or_operand ( equiv_op or_operand )* ;
public final void equiv_operand() throws RecognitionException {
Token equiv_op272 =null;
int numEO = 0;
try {
// MFortranParser2018.g:3679:5: ( or_operand ( equiv_op or_operand )* )
// MFortranParser2018.g:3679:7: or_operand ( equiv_op or_operand )*
{
pushFollow(FOLLOW_or_operand_in_equiv_operand15209);
or_operand();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3680:7: ( equiv_op or_operand )*
loop319:
while (true) {
int alt319=2;
int LA319_0 = input.LA(1);
if ( (LA319_0==EQV||LA319_0==NEQV) ) {
alt319=1;
}
switch (alt319) {
case 1 :
// MFortranParser2018.g:3680:9: equiv_op or_operand
{
pushFollow(FOLLOW_equiv_op_in_equiv_operand15220);
equiv_op272=equiv_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_or_operand_in_equiv_operand15222);
or_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.equiv_operand__equiv_op(equiv_op272);
numEO++;
}
}
break;
default :
break loop319;
}
}
if ( state.backtracking==0 ) { MFPA.equiv_operand(numEO); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "equiv_operand"
// $ANTLR start "level_5_expr"
// MFortranParser2018.g:3692:1: level_5_expr : equiv_operand ( defined_binary_op equiv_operand )* ;
public final void level_5_expr() throws RecognitionException {
Token defined_binary_op273 =null;
int numDBO = 0;
try {
// MFortranParser2018.g:3696:5: ( equiv_operand ( defined_binary_op equiv_operand )* )
// MFortranParser2018.g:3696:7: equiv_operand ( defined_binary_op equiv_operand )*
{
pushFollow(FOLLOW_equiv_operand_in_level_5_expr15276);
equiv_operand();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3697:7: ( defined_binary_op equiv_operand )*
loop320:
while (true) {
int alt320=2;
int LA320_0 = input.LA(1);
if ( (LA320_0==DEFINED_OP) ) {
alt320=1;
}
switch (alt320) {
case 1 :
// MFortranParser2018.g:3697:9: defined_binary_op equiv_operand
{
pushFollow(FOLLOW_defined_binary_op_in_level_5_expr15287);
defined_binary_op273=defined_binary_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_equiv_operand_in_level_5_expr15289);
equiv_operand();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.level_5_expr__defined_binary_op(defined_binary_op273);
numDBO++;
}
}
break;
default :
break loop320;
}
}
if ( state.backtracking==0 ) { MFPA.level_5_expr(numDBO); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "level_5_expr"
// $ANTLR start "not_op"
// MFortranParser2018.g:3708:1: not_op returns [Token t] : NOT ;
public final Token not_op() throws RecognitionException {
Token t = null;
Token NOT274=null;
try {
// MFortranParser2018.g:3709:5: ( NOT )
// MFortranParser2018.g:3709:7: NOT
{
NOT274=(Token)match(input,NOT,FOLLOW_NOT_in_not_op15343); if (state.failed) return t;
if ( state.backtracking==0 ) {t = NOT274;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "not_op"
// $ANTLR start "and_op"
// MFortranParser2018.g:3715:1: and_op returns [Token t] : AND ;
public final Token and_op() throws RecognitionException {
Token t = null;
Token AND275=null;
try {
// MFortranParser2018.g:3716:5: ( AND )
// MFortranParser2018.g:3716:7: AND
{
AND275=(Token)match(input,AND,FOLLOW_AND_in_and_op15369); if (state.failed) return t;
if ( state.backtracking==0 ) {t = AND275;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "and_op"
// $ANTLR start "or_op"
// MFortranParser2018.g:3722:1: or_op returns [Token t] : OR ;
public final Token or_op() throws RecognitionException {
Token t = null;
Token OR276=null;
try {
// MFortranParser2018.g:3723:5: ( OR )
// MFortranParser2018.g:3723:7: OR
{
OR276=(Token)match(input,OR,FOLLOW_OR_in_or_op15394); if (state.failed) return t;
if ( state.backtracking==0 ) {t = OR276;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "or_op"
// $ANTLR start "equiv_op"
// MFortranParser2018.g:3729:1: equiv_op returns [Token t] : ( EQV | NEQV );
public final Token equiv_op() throws RecognitionException {
Token t = null;
Token EQV277=null;
Token NEQV278=null;
try {
// MFortranParser2018.g:3730:5: ( EQV | NEQV )
int alt321=2;
int LA321_0 = input.LA(1);
if ( (LA321_0==EQV) ) {
alt321=1;
}
else if ( (LA321_0==NEQV) ) {
alt321=2;
}
else {
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 321, 0, input);
throw nvae;
}
switch (alt321) {
case 1 :
// MFortranParser2018.g:3730:7: EQV
{
EQV277=(Token)match(input,EQV,FOLLOW_EQV_in_equiv_op15419); if (state.failed) return t;
if ( state.backtracking==0 ) {t = EQV277;}
}
break;
case 2 :
// MFortranParser2018.g:3731:7: NEQV
{
NEQV278=(Token)match(input,NEQV,FOLLOW_NEQV_in_equiv_op15429); if (state.failed) return t;
if ( state.backtracking==0 ) {t = NEQV278;}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "equiv_op"
// $ANTLR start "expr"
// MFortranParser2018.g:3738:1: expr : level_5_expr ;
public final void expr() throws RecognitionException {
try {
// MFortranParser2018.g:3739:5: ( level_5_expr )
// MFortranParser2018.g:3739:7: level_5_expr
{
pushFollow(FOLLOW_level_5_expr_in_expr15450);
level_5_expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.expr();}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "expr"
// $ANTLR start "defined_binary_op"
// MFortranParser2018.g:3745:1: defined_binary_op returns [Token t] : DEFINED_OP ;
public final Token defined_binary_op() throws RecognitionException {
Token t = null;
Token DEFINED_OP279=null;
try {
// MFortranParser2018.g:3746:5: ( DEFINED_OP )
// MFortranParser2018.g:3746:7: DEFINED_OP
{
DEFINED_OP279=(Token)match(input,DEFINED_OP,FOLLOW_DEFINED_OP_in_defined_binary_op15475); if (state.failed) return t;
if ( state.backtracking==0 ) {t = DEFINED_OP279;}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "defined_binary_op"
// $ANTLR start "assignment_stmt"
// MFortranParser2018.g:3764:1: assignment_stmt : (lbl= label )? M_ASSIGNMENT_STMT variable EQUALS expr end_of_stmt ;
public final void assignment_stmt() throws RecognitionException {
Token lbl =null;
Token end_of_stmt280 =null;
try {
// MFortranParser2018.g:3770:5: ( (lbl= label )? M_ASSIGNMENT_STMT variable EQUALS expr end_of_stmt )
// MFortranParser2018.g:3770:7: (lbl= label )? M_ASSIGNMENT_STMT variable EQUALS expr end_of_stmt
{
// MFortranParser2018.g:3770:7: (lbl= label )?
int alt322=2;
int LA322_0 = input.LA(1);
if ( (LA322_0==DIGIT_STR) ) {
alt322=1;
}
switch (alt322) {
case 1 :
// MFortranParser2018.g:3770:8: lbl= label
{
pushFollow(FOLLOW_label_in_assignment_stmt15510);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_ASSIGNMENT_STMT,FOLLOW_M_ASSIGNMENT_STMT_in_assignment_stmt15521); if (state.failed) return;
pushFollow(FOLLOW_variable_in_assignment_stmt15523);
variable();
state._fsp--;
if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_assignment_stmt15525); if (state.failed) return;
pushFollow(FOLLOW_expr_in_assignment_stmt15527);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_assignment_stmt15536);
end_of_stmt280=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.assignment_stmt(lbl, end_of_stmt280);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "assignment_stmt"
// $ANTLR start "pointer_assignment_stmt"
// MFortranParser2018.g:3789:1: pointer_assignment_stmt options {backtrack=true; } : ( (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref EQ_GT expr end_of_stmt | (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_spec_list RPAREN EQ_GT expr end_of_stmt | (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_remapping_list RPAREN EQ_GT expr end_of_stmt );
public final void pointer_assignment_stmt() throws RecognitionException {
Token lbl =null;
Token end_of_stmt281 =null;
Token end_of_stmt282 =null;
Token end_of_stmt283 =null;
try {
// MFortranParser2018.g:3796:5: ( (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref EQ_GT expr end_of_stmt | (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_spec_list RPAREN EQ_GT expr end_of_stmt | (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_remapping_list RPAREN EQ_GT expr end_of_stmt )
int alt326=3;
int LA326_0 = input.LA(1);
if ( (LA326_0==DIGIT_STR) ) {
int LA326_1 = input.LA(2);
if ( (synpred34_MFortranParser2018()) ) {
alt326=1;
}
else if ( (synpred35_MFortranParser2018()) ) {
alt326=2;
}
else if ( (true) ) {
alt326=3;
}
}
else if ( (LA326_0==M_PTR_ASSIGNMENT_STMT) ) {
int LA326_2 = input.LA(2);
if ( (synpred34_MFortranParser2018()) ) {
alt326=1;
}
else if ( (synpred35_MFortranParser2018()) ) {
alt326=2;
}
else if ( (true) ) {
alt326=3;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 326, 0, input);
throw nvae;
}
switch (alt326) {
case 1 :
// MFortranParser2018.g:3796:7: (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref EQ_GT expr end_of_stmt
{
// MFortranParser2018.g:3796:7: (lbl= label )?
int alt323=2;
int LA323_0 = input.LA(1);
if ( (LA323_0==DIGIT_STR) ) {
alt323=1;
}
switch (alt323) {
case 1 :
// MFortranParser2018.g:3796:8: lbl= label
{
pushFollow(FOLLOW_label_in_pointer_assignment_stmt15583);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_PTR_ASSIGNMENT_STMT,FOLLOW_M_PTR_ASSIGNMENT_STMT_in_pointer_assignment_stmt15595); if (state.failed) return;
pushFollow(FOLLOW_data_ref_in_pointer_assignment_stmt15597);
data_ref();
state._fsp--;
if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_pointer_assignment_stmt15599); if (state.failed) return;
pushFollow(FOLLOW_expr_in_pointer_assignment_stmt15601);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_pointer_assignment_stmt15609);
end_of_stmt281=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.pointer_assignment_stmt(lbl,
end_of_stmt281, MFPUtils.PAS_NONE);}
}
break;
case 2 :
// MFortranParser2018.g:3801:7: (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_spec_list RPAREN EQ_GT expr end_of_stmt
{
// MFortranParser2018.g:3801:7: (lbl= label )?
int alt324=2;
int LA324_0 = input.LA(1);
if ( (LA324_0==DIGIT_STR) ) {
alt324=1;
}
switch (alt324) {
case 1 :
// MFortranParser2018.g:3801:8: lbl= label
{
pushFollow(FOLLOW_label_in_pointer_assignment_stmt15630);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_PTR_ASSIGNMENT_STMT,FOLLOW_M_PTR_ASSIGNMENT_STMT_in_pointer_assignment_stmt15641); if (state.failed) return;
pushFollow(FOLLOW_data_ref_in_pointer_assignment_stmt15643);
data_ref();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_pointer_assignment_stmt15652); if (state.failed) return;
pushFollow(FOLLOW_bounds_spec_list_in_pointer_assignment_stmt15654);
bounds_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_pointer_assignment_stmt15656); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_pointer_assignment_stmt15658); if (state.failed) return;
pushFollow(FOLLOW_expr_in_pointer_assignment_stmt15660);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_pointer_assignment_stmt15669);
end_of_stmt282=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.pointer_assignment_stmt(lbl,
end_of_stmt282, MFPUtils.PAS_BOUND_SPEC);}
}
break;
case 3 :
// MFortranParser2018.g:3807:7: (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_remapping_list RPAREN EQ_GT expr end_of_stmt
{
// MFortranParser2018.g:3807:7: (lbl= label )?
int alt325=2;
int LA325_0 = input.LA(1);
if ( (LA325_0==DIGIT_STR) ) {
alt325=1;
}
switch (alt325) {
case 1 :
// MFortranParser2018.g:3807:8: lbl= label
{
pushFollow(FOLLOW_label_in_pointer_assignment_stmt15690);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_PTR_ASSIGNMENT_STMT,FOLLOW_M_PTR_ASSIGNMENT_STMT_in_pointer_assignment_stmt15702); if (state.failed) return;
pushFollow(FOLLOW_data_ref_in_pointer_assignment_stmt15704);
data_ref();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_pointer_assignment_stmt15713); if (state.failed) return;
pushFollow(FOLLOW_bounds_remapping_list_in_pointer_assignment_stmt15715);
bounds_remapping_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_pointer_assignment_stmt15717); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_pointer_assignment_stmt15719); if (state.failed) return;
pushFollow(FOLLOW_expr_in_pointer_assignment_stmt15721);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_pointer_assignment_stmt15730);
end_of_stmt283=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.pointer_assignment_stmt(lbl,
end_of_stmt283, MFPUtils.PAS_BOUND_REMAP);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "pointer_assignment_stmt"
// $ANTLR start "data_pointer_object"
// MFortranParser2018.g:3821:1: data_pointer_object : designator ;
public final void data_pointer_object() throws RecognitionException {
try {
// MFortranParser2018.g:3822:5: ( designator )
// MFortranParser2018.g:3822:7: designator
{
pushFollow(FOLLOW_designator_in_data_pointer_object15759);
designator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.data_pointer_object(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "data_pointer_object"
// $ANTLR start "bounds_spec"
// MFortranParser2018.g:3829:1: bounds_spec : expr COLON ;
public final void bounds_spec() throws RecognitionException {
try {
// MFortranParser2018.g:3830:5: ( expr COLON )
// MFortranParser2018.g:3830:7: expr COLON
{
pushFollow(FOLLOW_expr_in_bounds_spec15780);
expr();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_bounds_spec15782); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.bounds_spec(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "bounds_spec"
// $ANTLR start "bounds_spec_list"
// MFortranParser2018.g:3833:1: bounds_spec_list : bounds_spec ( COMMA bounds_spec )* ;
public final void bounds_spec_list() throws RecognitionException {
int numBS = 1;
try {
// MFortranParser2018.g:3840:5: ( bounds_spec ( COMMA bounds_spec )* )
// MFortranParser2018.g:3840:7: bounds_spec ( COMMA bounds_spec )*
{
pushFollow(FOLLOW_bounds_spec_in_bounds_spec_list15809);
bounds_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3841:7: ( COMMA bounds_spec )*
loop327:
while (true) {
int alt327=2;
int LA327_0 = input.LA(1);
if ( (LA327_0==COMMA) ) {
alt327=1;
}
switch (alt327) {
case 1 :
// MFortranParser2018.g:3841:9: COMMA bounds_spec
{
match(input,COMMA,FOLLOW_COMMA_in_bounds_spec_list15819); if (state.failed) return;
pushFollow(FOLLOW_bounds_spec_in_bounds_spec_list15821);
bounds_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numBS++;}
}
break;
default :
break loop327;
}
}
}
if ( state.backtracking==0 ) {
MFPA.bounds_spec_list(numBS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "bounds_spec_list"
// $ANTLR start "bounds_remapping"
// MFortranParser2018.g:3849:1: bounds_remapping : expr COLON expr ;
public final void bounds_remapping() throws RecognitionException {
try {
// MFortranParser2018.g:3850:5: ( expr COLON expr )
// MFortranParser2018.g:3850:7: expr COLON expr
{
pushFollow(FOLLOW_expr_in_bounds_remapping15845);
expr();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_bounds_remapping15847); if (state.failed) return;
pushFollow(FOLLOW_expr_in_bounds_remapping15849);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.bounds_remapping(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "bounds_remapping"
// $ANTLR start "bounds_remapping_list"
// MFortranParser2018.g:3854:1: bounds_remapping_list : bounds_remapping ( COMMA bounds_remapping )* ;
public final void bounds_remapping_list() throws RecognitionException {
int numBR = 1;
try {
// MFortranParser2018.g:3861:5: ( bounds_remapping ( COMMA bounds_remapping )* )
// MFortranParser2018.g:3861:7: bounds_remapping ( COMMA bounds_remapping )*
{
pushFollow(FOLLOW_bounds_remapping_in_bounds_remapping_list15884);
bounds_remapping();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3862:7: ( COMMA bounds_remapping )*
loop328:
while (true) {
int alt328=2;
int LA328_0 = input.LA(1);
if ( (LA328_0==COMMA) ) {
alt328=1;
}
switch (alt328) {
case 1 :
// MFortranParser2018.g:3862:9: COMMA bounds_remapping
{
match(input,COMMA,FOLLOW_COMMA_in_bounds_remapping_list15894); if (state.failed) return;
pushFollow(FOLLOW_bounds_remapping_in_bounds_remapping_list15896);
bounds_remapping();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numBR++;}
}
break;
default :
break loop328;
}
}
}
if ( state.backtracking==0 ) {
MFPA.bounds_remapping_list(numBR);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "bounds_remapping_list"
// $ANTLR start "proc_pointer_object"
// MFortranParser2018.g:3878:1: proc_pointer_object : designator ;
public final void proc_pointer_object() throws RecognitionException {
try {
// MFortranParser2018.g:3879:5: ( designator )
// MFortranParser2018.g:3879:7: designator
{
pushFollow(FOLLOW_designator_in_proc_pointer_object15923);
designator();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_pointer_object(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_pointer_object"
// $ANTLR start "where_stmt"
// MFortranParser2018.g:3905:1: where_stmt : (lbl= label )? M_WHERE_STMT WHERE LPAREN expr RPAREN assignment_stmt ;
public final void where_stmt() throws RecognitionException {
Token WHERE284=null;
Token lbl =null;
try {
// MFortranParser2018.g:3911:5: ( (lbl= label )? M_WHERE_STMT WHERE LPAREN expr RPAREN assignment_stmt )
// MFortranParser2018.g:3911:7: (lbl= label )? M_WHERE_STMT WHERE LPAREN expr RPAREN assignment_stmt
{
// MFortranParser2018.g:3911:7: (lbl= label )?
int alt329=2;
int LA329_0 = input.LA(1);
if ( (LA329_0==DIGIT_STR) ) {
alt329=1;
}
switch (alt329) {
case 1 :
// MFortranParser2018.g:3911:8: lbl= label
{
pushFollow(FOLLOW_label_in_where_stmt15961);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_WHERE_STMT,FOLLOW_M_WHERE_STMT_in_where_stmt15972); if (state.failed) return;
WHERE284=(Token)match(input,WHERE,FOLLOW_WHERE_in_where_stmt15974); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_where_stmt15976); if (state.failed) return;
pushFollow(FOLLOW_expr_in_where_stmt15978);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_where_stmt15980); if (state.failed) return;
pushFollow(FOLLOW_assignment_stmt_in_where_stmt15989);
assignment_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.where_stmt(lbl, WHERE284); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "where_stmt"
// $ANTLR start "where_construct"
// MFortranParser2018.g:3920:1: where_construct : where_construct_stmt ( where_body_construct )* ( masked_elsewhere_stmt ( where_body_construct )* )* ( elsewhere_stmt ( where_body_construct )* )? end_where_stmt ;
public final void where_construct() throws RecognitionException {
int numC = 0;
int numMC = 0;
int numEwC = 0;
boolean hasMEw = false;
boolean hasEw = false;
try {
// MFortranParser2018.g:3928:5: ( where_construct_stmt ( where_body_construct )* ( masked_elsewhere_stmt ( where_body_construct )* )* ( elsewhere_stmt ( where_body_construct )* )? end_where_stmt )
// MFortranParser2018.g:3928:7: where_construct_stmt ( where_body_construct )* ( masked_elsewhere_stmt ( where_body_construct )* )* ( elsewhere_stmt ( where_body_construct )* )? end_where_stmt
{
pushFollow(FOLLOW_where_construct_stmt_in_where_construct16023);
where_construct_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3929:7: ( where_body_construct )*
loop330:
while (true) {
int alt330=2;
int LA330_0 = input.LA(1);
if ( (LA330_0==DIGIT_STR) ) {
int LA330_1 = input.LA(2);
if ( (LA330_1==M_ASSIGNMENT_STMT||LA330_1==M_WHERE_STMT) ) {
alt330=1;
}
}
else if ( (LA330_0==IDENT||LA330_0==M_ASSIGNMENT_STMT||(LA330_0 >= M_WHERE_CONSTRUCT_STMT && LA330_0 <= M_WHERE_STMT)) ) {
alt330=1;
}
switch (alt330) {
case 1 :
// MFortranParser2018.g:3929:9: where_body_construct
{
pushFollow(FOLLOW_where_body_construct_in_where_construct16033);
where_body_construct();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numC++;}
}
break;
default :
break loop330;
}
}
// MFortranParser2018.g:3930:7: ( masked_elsewhere_stmt ( where_body_construct )* )*
loop332:
while (true) {
int alt332=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA332_1 = input.LA(2);
if ( (LA332_1==ELSE) ) {
int LA332_2 = input.LA(3);
if ( (LA332_2==WHERE) ) {
int LA332_5 = input.LA(4);
if ( (LA332_5==LPAREN) ) {
alt332=1;
}
}
}
else if ( (LA332_1==ELSEWHERE) ) {
int LA332_3 = input.LA(3);
if ( (LA332_3==LPAREN) ) {
alt332=1;
}
}
}
break;
case ELSE:
{
int LA332_2 = input.LA(2);
if ( (LA332_2==WHERE) ) {
int LA332_5 = input.LA(3);
if ( (LA332_5==LPAREN) ) {
alt332=1;
}
}
}
break;
case ELSEWHERE:
{
int LA332_3 = input.LA(2);
if ( (LA332_3==LPAREN) ) {
alt332=1;
}
}
break;
}
switch (alt332) {
case 1 :
// MFortranParser2018.g:3930:9: masked_elsewhere_stmt ( where_body_construct )*
{
pushFollow(FOLLOW_masked_elsewhere_stmt_in_where_construct16049);
masked_elsewhere_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3930:31: ( where_body_construct )*
loop331:
while (true) {
int alt331=2;
int LA331_0 = input.LA(1);
if ( (LA331_0==DIGIT_STR) ) {
int LA331_1 = input.LA(2);
if ( (LA331_1==M_ASSIGNMENT_STMT||LA331_1==M_WHERE_STMT) ) {
alt331=1;
}
}
else if ( (LA331_0==IDENT||LA331_0==M_ASSIGNMENT_STMT||(LA331_0 >= M_WHERE_CONSTRUCT_STMT && LA331_0 <= M_WHERE_STMT)) ) {
alt331=1;
}
switch (alt331) {
case 1 :
// MFortranParser2018.g:3930:33: where_body_construct
{
pushFollow(FOLLOW_where_body_construct_in_where_construct16053);
where_body_construct();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { numMC++;}
}
break;
default :
break loop331;
}
}
if ( state.backtracking==0 ) { hasMEw = true;
MFPA.masked_elsewhere_stmt__end(numMC);
}
}
break;
default :
break loop332;
}
}
// MFortranParser2018.g:3935:7: ( elsewhere_stmt ( where_body_construct )* )?
int alt334=2;
int LA334_0 = input.LA(1);
if ( (LA334_0==DIGIT_STR) ) {
int LA334_1 = input.LA(2);
if ( (LA334_1==ELSE||LA334_1==ELSEWHERE) ) {
alt334=1;
}
}
else if ( (LA334_0==ELSE||LA334_0==ELSEWHERE) ) {
alt334=1;
}
switch (alt334) {
case 1 :
// MFortranParser2018.g:3935:9: elsewhere_stmt ( where_body_construct )*
{
pushFollow(FOLLOW_elsewhere_stmt_in_where_construct16090);
elsewhere_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:3935:24: ( where_body_construct )*
loop333:
while (true) {
int alt333=2;
int LA333_0 = input.LA(1);
if ( (LA333_0==DIGIT_STR) ) {
int LA333_1 = input.LA(2);
if ( (LA333_1==M_ASSIGNMENT_STMT||LA333_1==M_WHERE_STMT) ) {
alt333=1;
}
}
else if ( (LA333_0==IDENT||LA333_0==M_ASSIGNMENT_STMT||(LA333_0 >= M_WHERE_CONSTRUCT_STMT && LA333_0 <= M_WHERE_STMT)) ) {
alt333=1;
}
switch (alt333) {
case 1 :
// MFortranParser2018.g:3935:26: where_body_construct
{
pushFollow(FOLLOW_where_body_construct_in_where_construct16094);
where_body_construct();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numEwC++;}
}
break;
default :
break loop333;
}
}
if ( state.backtracking==0 ) { hasEw = true;
MFPA.elsewhere_stmt__end(numEwC);
}
}
break;
}
pushFollow(FOLLOW_end_where_stmt_in_where_construct16128);
end_where_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.where_construct(numC, hasMEw, hasEw);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "where_construct"
// $ANTLR start "where_construct_stmt"
// MFortranParser2018.g:3948:1: where_construct_stmt : ( IDENT COLON )? M_WHERE_CONSTRUCT_STMT WHERE LPAREN expr RPAREN end_of_stmt ;
public final void where_construct_stmt() throws RecognitionException {
Token IDENT285=null;
Token WHERE286=null;
Token end_of_stmt287 =null;
Token id = null;
try {
// MFortranParser2018.g:3955:5: ( ( IDENT COLON )? M_WHERE_CONSTRUCT_STMT WHERE LPAREN expr RPAREN end_of_stmt )
// MFortranParser2018.g:3955:7: ( IDENT COLON )? M_WHERE_CONSTRUCT_STMT WHERE LPAREN expr RPAREN end_of_stmt
{
// MFortranParser2018.g:3955:7: ( IDENT COLON )?
int alt335=2;
int LA335_0 = input.LA(1);
if ( (LA335_0==IDENT) ) {
alt335=1;
}
switch (alt335) {
case 1 :
// MFortranParser2018.g:3955:9: IDENT COLON
{
IDENT285=(Token)match(input,IDENT,FOLLOW_IDENT_in_where_construct_stmt16167); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_where_construct_stmt16169); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT285;}
}
break;
}
match(input,M_WHERE_CONSTRUCT_STMT,FOLLOW_M_WHERE_CONSTRUCT_STMT_in_where_construct_stmt16182); if (state.failed) return;
WHERE286=(Token)match(input,WHERE,FOLLOW_WHERE_in_where_construct_stmt16184); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_where_construct_stmt16186); if (state.failed) return;
pushFollow(FOLLOW_expr_in_where_construct_stmt16188);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_where_construct_stmt16190); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_where_construct_stmt16199);
end_of_stmt287=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.where_construct_stmt(id, WHERE286, end_of_stmt287);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "where_construct_stmt"
// $ANTLR start "where_body_construct"
// MFortranParser2018.g:3965:1: where_body_construct : ( assignment_stmt | where_stmt | where_construct );
public final void where_body_construct() throws RecognitionException {
try {
// MFortranParser2018.g:3969:5: ( assignment_stmt | where_stmt | where_construct )
int alt336=3;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA336_1 = input.LA(2);
if ( (LA336_1==M_ASSIGNMENT_STMT) ) {
alt336=1;
}
else if ( (LA336_1==M_WHERE_STMT) ) {
alt336=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 336, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case M_ASSIGNMENT_STMT:
{
alt336=1;
}
break;
case M_WHERE_STMT:
{
alt336=2;
}
break;
case IDENT:
case M_WHERE_CONSTRUCT_STMT:
{
alt336=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 336, 0, input);
throw nvae;
}
switch (alt336) {
case 1 :
// MFortranParser2018.g:3969:7: assignment_stmt
{
pushFollow(FOLLOW_assignment_stmt_in_where_body_construct16233);
assignment_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:3970:7: where_stmt
{
pushFollow(FOLLOW_where_stmt_in_where_body_construct16241);
where_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:3971:7: where_construct
{
pushFollow(FOLLOW_where_construct_in_where_body_construct16249);
where_construct();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.where_body_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "where_body_construct"
// $ANTLR start "masked_elsewhere_stmt"
// MFortranParser2018.g:3991:1: masked_elsewhere_stmt : ( (lbl= label )? ELSE WHERE LPAREN expr RPAREN ( IDENT )? end_of_stmt | (lbl= label )? ELSEWHERE LPAREN expr RPAREN ( IDENT )? end_of_stmt );
public final void masked_elsewhere_stmt() throws RecognitionException {
Token IDENT288=null;
Token ELSE289=null;
Token WHERE290=null;
Token IDENT292=null;
Token ELSEWHERE293=null;
Token lbl =null;
Token end_of_stmt291 =null;
Token end_of_stmt294 =null;
Token id = null;
try {
// MFortranParser2018.g:3998:5: ( (lbl= label )? ELSE WHERE LPAREN expr RPAREN ( IDENT )? end_of_stmt | (lbl= label )? ELSEWHERE LPAREN expr RPAREN ( IDENT )? end_of_stmt )
int alt341=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA341_1 = input.LA(2);
if ( (LA341_1==ELSE) ) {
alt341=1;
}
else if ( (LA341_1==ELSEWHERE) ) {
alt341=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 341, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELSE:
{
alt341=1;
}
break;
case ELSEWHERE:
{
alt341=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 341, 0, input);
throw nvae;
}
switch (alt341) {
case 1 :
// MFortranParser2018.g:3998:7: (lbl= label )? ELSE WHERE LPAREN expr RPAREN ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:3998:7: (lbl= label )?
int alt337=2;
int LA337_0 = input.LA(1);
if ( (LA337_0==DIGIT_STR) ) {
alt337=1;
}
switch (alt337) {
case 1 :
// MFortranParser2018.g:3998:8: lbl= label
{
pushFollow(FOLLOW_label_in_masked_elsewhere_stmt16285);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ELSE289=(Token)match(input,ELSE,FOLLOW_ELSE_in_masked_elsewhere_stmt16296); if (state.failed) return;
WHERE290=(Token)match(input,WHERE,FOLLOW_WHERE_in_masked_elsewhere_stmt16298); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_masked_elsewhere_stmt16300); if (state.failed) return;
pushFollow(FOLLOW_expr_in_masked_elsewhere_stmt16302);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_masked_elsewhere_stmt16304); if (state.failed) return;
// MFortranParser2018.g:3999:37: ( IDENT )?
int alt338=2;
int LA338_0 = input.LA(1);
if ( (LA338_0==IDENT) ) {
alt338=1;
}
switch (alt338) {
case 1 :
// MFortranParser2018.g:3999:39: IDENT
{
IDENT288=(Token)match(input,IDENT,FOLLOW_IDENT_in_masked_elsewhere_stmt16308); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT288;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_masked_elsewhere_stmt16321);
end_of_stmt291=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.masked_elsewhere_stmt(lbl,
ELSE289, WHERE290, id, end_of_stmt291);}
}
break;
case 2 :
// MFortranParser2018.g:4003:7: (lbl= label )? ELSEWHERE LPAREN expr RPAREN ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4003:7: (lbl= label )?
int alt339=2;
int LA339_0 = input.LA(1);
if ( (LA339_0==DIGIT_STR) ) {
alt339=1;
}
switch (alt339) {
case 1 :
// MFortranParser2018.g:4003:8: lbl= label
{
pushFollow(FOLLOW_label_in_masked_elsewhere_stmt16342);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ELSEWHERE293=(Token)match(input,ELSEWHERE,FOLLOW_ELSEWHERE_in_masked_elsewhere_stmt16353); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_masked_elsewhere_stmt16355); if (state.failed) return;
pushFollow(FOLLOW_expr_in_masked_elsewhere_stmt16357);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_masked_elsewhere_stmt16359); if (state.failed) return;
// MFortranParser2018.g:4004:36: ( IDENT )?
int alt340=2;
int LA340_0 = input.LA(1);
if ( (LA340_0==IDENT) ) {
alt340=1;
}
switch (alt340) {
case 1 :
// MFortranParser2018.g:4004:38: IDENT
{
IDENT292=(Token)match(input,IDENT,FOLLOW_IDENT_in_masked_elsewhere_stmt16363); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT292;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_masked_elsewhere_stmt16375);
end_of_stmt294=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.masked_elsewhere_stmt(lbl,
ELSEWHERE293, null, id, end_of_stmt294);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "masked_elsewhere_stmt"
// $ANTLR start "elsewhere_stmt"
// MFortranParser2018.g:4013:1: elsewhere_stmt : ( (lbl= label )? ELSE WHERE ( IDENT )? end_of_stmt | (lbl= label )? ELSEWHERE ( IDENT )? end_of_stmt );
public final void elsewhere_stmt() throws RecognitionException {
Token IDENT295=null;
Token ELSE296=null;
Token WHERE297=null;
Token IDENT299=null;
Token ELSEWHERE300=null;
Token lbl =null;
Token end_of_stmt298 =null;
Token end_of_stmt301 =null;
Token id = null;
try {
// MFortranParser2018.g:4020:5: ( (lbl= label )? ELSE WHERE ( IDENT )? end_of_stmt | (lbl= label )? ELSEWHERE ( IDENT )? end_of_stmt )
int alt346=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA346_1 = input.LA(2);
if ( (LA346_1==ELSE) ) {
alt346=1;
}
else if ( (LA346_1==ELSEWHERE) ) {
alt346=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 346, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELSE:
{
alt346=1;
}
break;
case ELSEWHERE:
{
alt346=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 346, 0, input);
throw nvae;
}
switch (alt346) {
case 1 :
// MFortranParser2018.g:4020:7: (lbl= label )? ELSE WHERE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4020:7: (lbl= label )?
int alt342=2;
int LA342_0 = input.LA(1);
if ( (LA342_0==DIGIT_STR) ) {
alt342=1;
}
switch (alt342) {
case 1 :
// MFortranParser2018.g:4020:8: lbl= label
{
pushFollow(FOLLOW_label_in_elsewhere_stmt16416);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ELSE296=(Token)match(input,ELSE,FOLLOW_ELSE_in_elsewhere_stmt16428); if (state.failed) return;
WHERE297=(Token)match(input,WHERE,FOLLOW_WHERE_in_elsewhere_stmt16430); if (state.failed) return;
// MFortranParser2018.g:4021:18: ( IDENT )?
int alt343=2;
int LA343_0 = input.LA(1);
if ( (LA343_0==IDENT) ) {
alt343=1;
}
switch (alt343) {
case 1 :
// MFortranParser2018.g:4021:19: IDENT
{
IDENT295=(Token)match(input,IDENT,FOLLOW_IDENT_in_elsewhere_stmt16433); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT295;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_elsewhere_stmt16446);
end_of_stmt298=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.elsewhere_stmt(lbl,
ELSE296, WHERE297, id, end_of_stmt298);}
}
break;
case 2 :
// MFortranParser2018.g:4025:7: (lbl= label )? ELSEWHERE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4025:7: (lbl= label )?
int alt344=2;
int LA344_0 = input.LA(1);
if ( (LA344_0==DIGIT_STR) ) {
alt344=1;
}
switch (alt344) {
case 1 :
// MFortranParser2018.g:4025:8: lbl= label
{
pushFollow(FOLLOW_label_in_elsewhere_stmt16467);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ELSEWHERE300=(Token)match(input,ELSEWHERE,FOLLOW_ELSEWHERE_in_elsewhere_stmt16479); if (state.failed) return;
// MFortranParser2018.g:4026:17: ( IDENT )?
int alt345=2;
int LA345_0 = input.LA(1);
if ( (LA345_0==IDENT) ) {
alt345=1;
}
switch (alt345) {
case 1 :
// MFortranParser2018.g:4026:18: IDENT
{
IDENT299=(Token)match(input,IDENT,FOLLOW_IDENT_in_elsewhere_stmt16482); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT299;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_elsewhere_stmt16494);
end_of_stmt301=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.elsewhere_stmt(lbl,
ELSEWHERE300, null, id, end_of_stmt301);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "elsewhere_stmt"
// $ANTLR start "end_where_stmt"
// MFortranParser2018.g:4035:1: end_where_stmt : (lbl= label )? END WHERE ( IDENT )? end_of_stmt ;
public final void end_where_stmt() throws RecognitionException {
Token IDENT302=null;
Token END303=null;
Token WHERE304=null;
Token lbl =null;
Token end_of_stmt305 =null;
Token id=null;
try {
// MFortranParser2018.g:4042:5: ( (lbl= label )? END WHERE ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4042:7: (lbl= label )? END WHERE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4042:7: (lbl= label )?
int alt347=2;
int LA347_0 = input.LA(1);
if ( (LA347_0==DIGIT_STR) ) {
alt347=1;
}
switch (alt347) {
case 1 :
// MFortranParser2018.g:4042:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_where_stmt16534);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END303=(Token)match(input,END,FOLLOW_END_in_end_where_stmt16545); if (state.failed) return;
WHERE304=(Token)match(input,WHERE,FOLLOW_WHERE_in_end_where_stmt16547); if (state.failed) return;
// MFortranParser2018.g:4043:17: ( IDENT )?
int alt348=2;
int LA348_0 = input.LA(1);
if ( (LA348_0==IDENT) ) {
alt348=1;
}
switch (alt348) {
case 1 :
// MFortranParser2018.g:4043:19: IDENT
{
IDENT302=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_where_stmt16551); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT302;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_where_stmt16564);
end_of_stmt305=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_where_stmt(lbl,
END303, WHERE304, id, end_of_stmt305);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_where_stmt"
// $ANTLR start "forall_construct"
// MFortranParser2018.g:4052:1: forall_construct : forall_construct_stmt ( forall_body_construct )* end_forall_stmt ;
public final void forall_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4056:5: ( forall_construct_stmt ( forall_body_construct )* end_forall_stmt )
// MFortranParser2018.g:4056:7: forall_construct_stmt ( forall_body_construct )* end_forall_stmt
{
pushFollow(FOLLOW_forall_construct_stmt_in_forall_construct16597);
forall_construct_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4057:7: ( forall_body_construct )*
loop349:
while (true) {
int alt349=2;
int LA349_0 = input.LA(1);
if ( (LA349_0==DIGIT_STR) ) {
int LA349_1 = input.LA(2);
if ( (LA349_1==IDENT||LA349_1==M_ASSIGNMENT_STMT||(LA349_1 >= M_FORALL_CONSTRUCT_STMT && LA349_1 <= M_FORALL_STMT)||LA349_1==M_PTR_ASSIGNMENT_STMT||LA349_1==M_WHERE_STMT) ) {
alt349=1;
}
}
else if ( (LA349_0==IDENT||LA349_0==M_ASSIGNMENT_STMT||(LA349_0 >= M_FORALL_CONSTRUCT_STMT && LA349_0 <= M_FORALL_STMT)||LA349_0==M_PTR_ASSIGNMENT_STMT||(LA349_0 >= M_WHERE_CONSTRUCT_STMT && LA349_0 <= M_WHERE_STMT)) ) {
alt349=1;
}
switch (alt349) {
case 1 :
// MFortranParser2018.g:4057:9: forall_body_construct
{
pushFollow(FOLLOW_forall_body_construct_in_forall_construct16607);
forall_body_construct();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop349;
}
}
pushFollow(FOLLOW_end_forall_stmt_in_forall_construct16618);
end_forall_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.forall_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "forall_construct"
// $ANTLR start "forall_construct_stmt"
// MFortranParser2018.g:4065:1: forall_construct_stmt : (lbl= label )? ( IDENT COLON )? M_FORALL_CONSTRUCT_STMT FORALL concurrent_header end_of_stmt ;
public final void forall_construct_stmt() throws RecognitionException {
Token IDENT306=null;
Token FORALL307=null;
Token lbl =null;
Token end_of_stmt308 =null;
Token id = null;
try {
// MFortranParser2018.g:4072:5: ( (lbl= label )? ( IDENT COLON )? M_FORALL_CONSTRUCT_STMT FORALL concurrent_header end_of_stmt )
// MFortranParser2018.g:4072:7: (lbl= label )? ( IDENT COLON )? M_FORALL_CONSTRUCT_STMT FORALL concurrent_header end_of_stmt
{
// MFortranParser2018.g:4072:7: (lbl= label )?
int alt350=2;
int LA350_0 = input.LA(1);
if ( (LA350_0==DIGIT_STR) ) {
alt350=1;
}
switch (alt350) {
case 1 :
// MFortranParser2018.g:4072:8: lbl= label
{
pushFollow(FOLLOW_label_in_forall_construct_stmt16648);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4073:7: ( IDENT COLON )?
int alt351=2;
int LA351_0 = input.LA(1);
if ( (LA351_0==IDENT) ) {
alt351=1;
}
switch (alt351) {
case 1 :
// MFortranParser2018.g:4073:9: IDENT COLON
{
IDENT306=(Token)match(input,IDENT,FOLLOW_IDENT_in_forall_construct_stmt16662); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_forall_construct_stmt16664); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT306;}
}
break;
}
match(input,M_FORALL_CONSTRUCT_STMT,FOLLOW_M_FORALL_CONSTRUCT_STMT_in_forall_construct_stmt16677); if (state.failed) return;
FORALL307=(Token)match(input,FORALL,FOLLOW_FORALL_in_forall_construct_stmt16679); if (state.failed) return;
pushFollow(FOLLOW_concurrent_header_in_forall_construct_stmt16681);
concurrent_header();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_forall_construct_stmt16690);
end_of_stmt308=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.forall_construct_stmt(lbl,
id, FORALL307, end_of_stmt308);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "forall_construct_stmt"
// $ANTLR start "forall_body_construct"
// MFortranParser2018.g:4083:1: forall_body_construct : ( forall_assignment_stmt | where_stmt | where_construct | forall_construct | forall_stmt );
public final void forall_body_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4087:5: ( forall_assignment_stmt | where_stmt | where_construct | forall_construct | forall_stmt )
int alt352=5;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case M_ASSIGNMENT_STMT:
case M_PTR_ASSIGNMENT_STMT:
{
alt352=1;
}
break;
case M_WHERE_STMT:
{
alt352=2;
}
break;
case IDENT:
case M_FORALL_CONSTRUCT_STMT:
{
alt352=4;
}
break;
case M_FORALL_STMT:
{
alt352=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 352, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case M_ASSIGNMENT_STMT:
case M_PTR_ASSIGNMENT_STMT:
{
alt352=1;
}
break;
case M_WHERE_STMT:
{
alt352=2;
}
break;
case IDENT:
{
int LA352_4 = input.LA(2);
if ( (LA352_4==COLON) ) {
int LA352_8 = input.LA(3);
if ( (LA352_8==M_WHERE_CONSTRUCT_STMT) ) {
alt352=3;
}
else if ( (LA352_8==M_FORALL_CONSTRUCT_STMT) ) {
alt352=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 352, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 352, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case M_WHERE_CONSTRUCT_STMT:
{
alt352=3;
}
break;
case M_FORALL_CONSTRUCT_STMT:
{
alt352=4;
}
break;
case M_FORALL_STMT:
{
alt352=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 352, 0, input);
throw nvae;
}
switch (alt352) {
case 1 :
// MFortranParser2018.g:4087:7: forall_assignment_stmt
{
pushFollow(FOLLOW_forall_assignment_stmt_in_forall_body_construct16725);
forall_assignment_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:4088:7: where_stmt
{
pushFollow(FOLLOW_where_stmt_in_forall_body_construct16733);
where_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:4089:7: where_construct
{
pushFollow(FOLLOW_where_construct_in_forall_body_construct16741);
where_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:4090:7: forall_construct
{
pushFollow(FOLLOW_forall_construct_in_forall_body_construct16749);
forall_construct();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:4091:7: forall_stmt
{
pushFollow(FOLLOW_forall_stmt_in_forall_body_construct16757);
forall_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.forall_body_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "forall_body_construct"
// $ANTLR start "forall_assignment_stmt"
// MFortranParser2018.g:4097:1: forall_assignment_stmt : ( assignment_stmt | pointer_assignment_stmt );
public final void forall_assignment_stmt() throws RecognitionException {
try {
// MFortranParser2018.g:4101:5: ( assignment_stmt | pointer_assignment_stmt )
int alt353=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA353_1 = input.LA(2);
if ( (LA353_1==M_ASSIGNMENT_STMT) ) {
alt353=1;
}
else if ( (LA353_1==M_PTR_ASSIGNMENT_STMT) ) {
alt353=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 353, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case M_ASSIGNMENT_STMT:
{
alt353=1;
}
break;
case M_PTR_ASSIGNMENT_STMT:
{
alt353=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 353, 0, input);
throw nvae;
}
switch (alt353) {
case 1 :
// MFortranParser2018.g:4101:7: assignment_stmt
{
pushFollow(FOLLOW_assignment_stmt_in_forall_assignment_stmt16780);
assignment_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.forall_assignment_stmt(false); }
}
break;
case 2 :
// MFortranParser2018.g:4103:7: pointer_assignment_stmt
{
pushFollow(FOLLOW_pointer_assignment_stmt_in_forall_assignment_stmt16798);
pointer_assignment_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.forall_assignment_stmt(true); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "forall_assignment_stmt"
// $ANTLR start "end_forall_stmt"
// MFortranParser2018.g:4110:1: end_forall_stmt : (lbl= label )? END FORALL ( IDENT )? end_of_stmt ;
public final void end_forall_stmt() throws RecognitionException {
Token IDENT309=null;
Token END310=null;
Token FORALL311=null;
Token lbl =null;
Token end_of_stmt312 =null;
Token id=null;
try {
// MFortranParser2018.g:4117:5: ( (lbl= label )? END FORALL ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4117:7: (lbl= label )? END FORALL ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4117:7: (lbl= label )?
int alt354=2;
int LA354_0 = input.LA(1);
if ( (LA354_0==DIGIT_STR) ) {
alt354=1;
}
switch (alt354) {
case 1 :
// MFortranParser2018.g:4117:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_forall_stmt16838);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END310=(Token)match(input,END,FOLLOW_END_in_end_forall_stmt16850); if (state.failed) return;
FORALL311=(Token)match(input,FORALL,FOLLOW_FORALL_in_end_forall_stmt16852); if (state.failed) return;
// MFortranParser2018.g:4118:18: ( IDENT )?
int alt355=2;
int LA355_0 = input.LA(1);
if ( (LA355_0==IDENT) ) {
alt355=1;
}
switch (alt355) {
case 1 :
// MFortranParser2018.g:4118:20: IDENT
{
IDENT309=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_forall_stmt16856); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT309;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_forall_stmt16868);
end_of_stmt312=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_forall_stmt(lbl,
END310, FORALL311, id, end_of_stmt312);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_forall_stmt"
// $ANTLR start "forall_stmt"
// MFortranParser2018.g:4129:1: forall_stmt : (lbl= label )? M_FORALL_STMT FORALL concurrent_header forall_assignment_stmt ;
public final void forall_stmt() throws RecognitionException {
Token FORALL313=null;
Token lbl =null;
try {
// MFortranParser2018.g:4135:5: ( (lbl= label )? M_FORALL_STMT FORALL concurrent_header forall_assignment_stmt )
// MFortranParser2018.g:4135:7: (lbl= label )? M_FORALL_STMT FORALL concurrent_header forall_assignment_stmt
{
// MFortranParser2018.g:4135:7: (lbl= label )?
int alt356=2;
int LA356_0 = input.LA(1);
if ( (LA356_0==DIGIT_STR) ) {
alt356=1;
}
switch (alt356) {
case 1 :
// MFortranParser2018.g:4135:8: lbl= label
{
pushFollow(FOLLOW_label_in_forall_stmt16908);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_FORALL_STMT,FOLLOW_M_FORALL_STMT_in_forall_stmt16920); if (state.failed) return;
FORALL313=(Token)match(input,FORALL,FOLLOW_FORALL_in_forall_stmt16922); if (state.failed) return;
pushFollow(FOLLOW_concurrent_header_in_forall_stmt16924);
concurrent_header();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_forall_assignment_stmt_in_forall_stmt16926);
forall_assignment_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.forall_stmt(lbl, FORALL313);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "forall_stmt"
// $ANTLR start "block"
// MFortranParser2018.g:4143:1: block : ( execution_part_construct )* ;
public final void block() throws RecognitionException {
int numExec = 0;
try {
// MFortranParser2018.g:4150:5: ( ( execution_part_construct )* )
// MFortranParser2018.g:4150:7: ( execution_part_construct )*
{
// MFortranParser2018.g:4150:7: ( execution_part_construct )*
loop357:
while (true) {
int alt357=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA357_1 = input.LA(2);
if ( (LA357_1==END) ) {
int LA357_2 = input.LA(3);
if ( (LA357_2==FILE) ) {
alt357=1;
}
}
else if ( (LA357_1==ALLOCATE||LA357_1==ASSOCIATE||LA357_1==BACKSPACE||LA357_1==BLOCK||LA357_1==CALL||LA357_1==CLOSE||LA357_1==CONTINUE||(LA357_1 >= CRITICAL && LA357_1 <= DEALLOCATE)||LA357_1==DO||LA357_1==ENTRY||LA357_1==EXIT||LA357_1==FLUSH||LA357_1==FORMAT||(LA357_1 >= GO && LA357_1 <= GOTO)||(LA357_1 >= IDENT && LA357_1 <= IF)||LA357_1==INQUIRE||(LA357_1 >= M_ALLOCATE_STMT_1 && LA357_1 <= M_ASSIGNMENT_STMT)||(LA357_1 >= M_FORALL_CONSTRUCT_STMT && LA357_1 <= M_IF_STMT)||LA357_1==M_INQUIRE_STMT_2||LA357_1==M_PTR_ASSIGNMENT_STMT||LA357_1==M_WHERE_STMT||LA357_1==NULLIFY||LA357_1==OPEN||LA357_1==PRINT||LA357_1==READ||(LA357_1 >= RETURN && LA357_1 <= REWIND)||(LA357_1 >= SELECT && LA357_1 <= SELECTTYPE)||LA357_1==STOP||LA357_1==SYNC||LA357_1==WAIT||LA357_1==WRITE) ) {
alt357=1;
}
}
break;
case END:
{
int LA357_2 = input.LA(2);
if ( (LA357_2==FILE) ) {
alt357=1;
}
}
break;
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DATA:
case DEALLOCATE:
case DO:
case ENTRY:
case EXIT:
case FLUSH:
case FORMAT:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_CONSTRUCT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRAGMA:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt357=1;
}
break;
}
switch (alt357) {
case 1 :
// MFortranParser2018.g:4150:9: execution_part_construct
{
pushFollow(FOLLOW_execution_part_construct_in_block16966);
execution_part_construct();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numExec++;}
}
break;
default :
break loop357;
}
}
}
if ( state.backtracking==0 ) {
MFPA.block(numExec);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "block"
// $ANTLR start "associate_construct"
// MFortranParser2018.g:4156:1: associate_construct : associate_stmt block end_associate_stmt ;
public final void associate_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4157:5: ( associate_stmt block end_associate_stmt )
// MFortranParser2018.g:4157:7: associate_stmt block end_associate_stmt
{
pushFollow(FOLLOW_associate_stmt_in_associate_construct16989);
associate_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_associate_construct16997);
block();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_associate_stmt_in_associate_construct17005);
end_associate_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.associate_construct(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "associate_construct"
// $ANTLR start "associate_stmt"
// MFortranParser2018.g:4166:1: associate_stmt : (lbl= label )? ( IDENT COLON )? ASSOCIATE LPAREN association_list RPAREN end_of_stmt ;
public final void associate_stmt() throws RecognitionException {
Token IDENT314=null;
Token ASSOCIATE315=null;
Token lbl =null;
Token end_of_stmt316 =null;
Token id=null;
try {
// MFortranParser2018.g:4173:5: ( (lbl= label )? ( IDENT COLON )? ASSOCIATE LPAREN association_list RPAREN end_of_stmt )
// MFortranParser2018.g:4173:7: (lbl= label )? ( IDENT COLON )? ASSOCIATE LPAREN association_list RPAREN end_of_stmt
{
// MFortranParser2018.g:4173:7: (lbl= label )?
int alt358=2;
int LA358_0 = input.LA(1);
if ( (LA358_0==DIGIT_STR) ) {
alt358=1;
}
switch (alt358) {
case 1 :
// MFortranParser2018.g:4173:8: lbl= label
{
pushFollow(FOLLOW_label_in_associate_stmt17046);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4174:7: ( IDENT COLON )?
int alt359=2;
int LA359_0 = input.LA(1);
if ( (LA359_0==IDENT) ) {
alt359=1;
}
switch (alt359) {
case 1 :
// MFortranParser2018.g:4174:9: IDENT COLON
{
IDENT314=(Token)match(input,IDENT,FOLLOW_IDENT_in_associate_stmt17059); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_associate_stmt17061); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT314;}
}
break;
}
ASSOCIATE315=(Token)match(input,ASSOCIATE,FOLLOW_ASSOCIATE_in_associate_stmt17074); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_associate_stmt17076); if (state.failed) return;
pushFollow(FOLLOW_association_list_in_associate_stmt17078);
association_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_associate_stmt17080); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_associate_stmt17089);
end_of_stmt316=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.associate_stmt(lbl,
id, ASSOCIATE315, end_of_stmt316);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "associate_stmt"
// $ANTLR start "association"
// MFortranParser2018.g:4185:1: association : IDENT EQ_GT selector ;
public final void association() throws RecognitionException {
Token IDENT317=null;
try {
// MFortranParser2018.g:4186:5: ( IDENT EQ_GT selector )
// MFortranParser2018.g:4186:7: IDENT EQ_GT selector
{
IDENT317=(Token)match(input,IDENT,FOLLOW_IDENT_in_association17118); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_association17120); if (state.failed) return;
pushFollow(FOLLOW_selector_in_association17122);
selector();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.association(IDENT317); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "association"
// $ANTLR start "association_list"
// MFortranParser2018.g:4190:1: association_list : association ( COMMA association )* ;
public final void association_list() throws RecognitionException {
int numA = 1;
try {
// MFortranParser2018.g:4197:5: ( association ( COMMA association )* )
// MFortranParser2018.g:4197:7: association ( COMMA association )*
{
pushFollow(FOLLOW_association_in_association_list17157);
association();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4198:7: ( COMMA association )*
loop360:
while (true) {
int alt360=2;
int LA360_0 = input.LA(1);
if ( (LA360_0==COMMA) ) {
alt360=1;
}
switch (alt360) {
case 1 :
// MFortranParser2018.g:4198:9: COMMA association
{
match(input,COMMA,FOLLOW_COMMA_in_association_list17167); if (state.failed) return;
pushFollow(FOLLOW_association_in_association_list17169);
association();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numA++;}
}
break;
default :
break loop360;
}
}
}
if ( state.backtracking==0 ) {
MFPA.association_list(numA);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "association_list"
// $ANTLR start "selector"
// MFortranParser2018.g:4205:1: selector : expr ;
public final void selector() throws RecognitionException {
try {
// MFortranParser2018.g:4206:5: ( expr )
// MFortranParser2018.g:4206:7: expr
{
pushFollow(FOLLOW_expr_in_selector17193);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.selector(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "selector"
// $ANTLR start "end_associate_stmt"
// MFortranParser2018.g:4212:1: end_associate_stmt : (lbl= label )? END ASSOCIATE ( IDENT )? end_of_stmt ;
public final void end_associate_stmt() throws RecognitionException {
Token IDENT318=null;
Token END319=null;
Token ASSOCIATE320=null;
Token lbl =null;
Token end_of_stmt321 =null;
Token id=null;
try {
// MFortranParser2018.g:4219:5: ( (lbl= label )? END ASSOCIATE ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4219:7: (lbl= label )? END ASSOCIATE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4219:7: (lbl= label )?
int alt361=2;
int LA361_0 = input.LA(1);
if ( (LA361_0==DIGIT_STR) ) {
alt361=1;
}
switch (alt361) {
case 1 :
// MFortranParser2018.g:4219:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_associate_stmt17225);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END319=(Token)match(input,END,FOLLOW_END_in_end_associate_stmt17236); if (state.failed) return;
ASSOCIATE320=(Token)match(input,ASSOCIATE,FOLLOW_ASSOCIATE_in_end_associate_stmt17238); if (state.failed) return;
// MFortranParser2018.g:4220:21: ( IDENT )?
int alt362=2;
int LA362_0 = input.LA(1);
if ( (LA362_0==IDENT) ) {
alt362=1;
}
switch (alt362) {
case 1 :
// MFortranParser2018.g:4220:22: IDENT
{
IDENT318=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_associate_stmt17241); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT318;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_associate_stmt17254);
end_of_stmt321=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_associate_stmt(lbl,
END319, ASSOCIATE320, id, end_of_stmt321);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_associate_stmt"
// $ANTLR start "block_construct"
// MFortranParser2018.g:4233:1: block_construct : block_stmt specification_part_and_block end_block_stmt ;
public final void block_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4237:5: ( block_stmt specification_part_and_block end_block_stmt )
// MFortranParser2018.g:4237:7: block_stmt specification_part_and_block end_block_stmt
{
pushFollow(FOLLOW_block_stmt_in_block_construct17287);
block_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_and_block_in_block_construct17295);
specification_part_and_block();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_block_stmt_in_block_construct17304);
end_block_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.block_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "block_construct"
// $ANTLR start "block_stmt"
// MFortranParser2018.g:4245:1: block_stmt : (lbl= label )? ( IDENT COLON )? BLOCK end_of_stmt ;
public final void block_stmt() throws RecognitionException {
Token IDENT322=null;
Token BLOCK323=null;
Token lbl =null;
Token end_of_stmt324 =null;
Token name = null;
try {
// MFortranParser2018.g:4252:5: ( (lbl= label )? ( IDENT COLON )? BLOCK end_of_stmt )
// MFortranParser2018.g:4252:7: (lbl= label )? ( IDENT COLON )? BLOCK end_of_stmt
{
// MFortranParser2018.g:4252:7: (lbl= label )?
int alt363=2;
int LA363_0 = input.LA(1);
if ( (LA363_0==DIGIT_STR) ) {
alt363=1;
}
switch (alt363) {
case 1 :
// MFortranParser2018.g:4252:8: lbl= label
{
pushFollow(FOLLOW_label_in_block_stmt17334);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4253:7: ( IDENT COLON )?
int alt364=2;
int LA364_0 = input.LA(1);
if ( (LA364_0==IDENT) ) {
alt364=1;
}
switch (alt364) {
case 1 :
// MFortranParser2018.g:4253:9: IDENT COLON
{
IDENT322=(Token)match(input,IDENT,FOLLOW_IDENT_in_block_stmt17347); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_block_stmt17349); if (state.failed) return;
if ( state.backtracking==0 ) {name=IDENT322;}
}
break;
}
BLOCK323=(Token)match(input,BLOCK,FOLLOW_BLOCK_in_block_stmt17355); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_block_stmt17364);
end_of_stmt324=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.block_stmt(lbl,
name, BLOCK323, end_of_stmt324);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "block_stmt"
// $ANTLR start "specification_part_and_block"
// MFortranParser2018.g:4262:1: specification_part_and_block : ( use_stmt )* ( import_stmt )* declaration_construct_and_block ;
public final void specification_part_and_block() throws RecognitionException {
int numUS = 0;
int numIS = 0;
gctr0 = 0;
try {
// MFortranParser2018.g:4268:5: ( ( use_stmt )* ( import_stmt )* declaration_construct_and_block )
// MFortranParser2018.g:4268:7: ( use_stmt )* ( import_stmt )* declaration_construct_and_block
{
// MFortranParser2018.g:4268:7: ( use_stmt )*
loop365:
while (true) {
int alt365=2;
int LA365_0 = input.LA(1);
if ( (LA365_0==DIGIT_STR) ) {
int LA365_1 = input.LA(2);
if ( (LA365_1==USE) ) {
alt365=1;
}
}
else if ( (LA365_0==USE) ) {
alt365=1;
}
switch (alt365) {
case 1 :
// MFortranParser2018.g:4268:9: use_stmt
{
pushFollow(FOLLOW_use_stmt_in_specification_part_and_block17400);
use_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numUS++;}
}
break;
default :
break loop365;
}
}
// MFortranParser2018.g:4269:7: ( import_stmt )*
loop366:
while (true) {
int alt366=2;
int LA366_0 = input.LA(1);
if ( (LA366_0==DIGIT_STR) ) {
int LA366_1 = input.LA(2);
if ( (LA366_1==IMPORT) ) {
alt366=1;
}
}
else if ( (LA366_0==IMPORT) ) {
alt366=1;
}
switch (alt366) {
case 1 :
// MFortranParser2018.g:4269:9: import_stmt
{
pushFollow(FOLLOW_import_stmt_in_specification_part_and_block17416);
import_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numIS++;}
}
break;
default :
break loop366;
}
}
pushFollow(FOLLOW_declaration_construct_and_block_in_specification_part_and_block17430);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.specification_part_and_block(
numUS, numIS, gctr0);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "specification_part_and_block"
// $ANTLR start "declaration_construct_and_block"
// MFortranParser2018.g:4275:1: declaration_construct_and_block : ( ( ( label )? ENTRY )=> entry_stmt declaration_construct_and_block | ( ( label )? ENUM )=> enum_def declaration_construct_and_block | ( ( label )? FORMAT )=> format_stmt declaration_construct_and_block | ( ( label )? INTERFACE )=> interface_block declaration_construct_and_block | ( ( label )? PARAMETER )=> parameter_stmt declaration_construct_and_block | ( ( label )? PROCEDURE )=> procedure_declaration_stmt declaration_construct_and_block | ( derived_type_stmt )=> derived_type_def declaration_construct_and_block | ( type_declaration_stmt )=> type_declaration_stmt declaration_construct_and_block | ( ( label )? access_spec )=> access_stmt declaration_construct_and_block | ( ( label )? ALLOCATABLE )=> allocatable_stmt declaration_construct_and_block | ( ( label )? ASYNCHRONOUS )=> asynchronous_stmt declaration_construct_and_block | ( ( label )? BIND )=> bind_stmt declaration_construct_and_block | ( ( label )? CODIMENSION )=> codimension_stmt declaration_construct_and_block | ( ( label )? DATA )=> data_stmt declaration_construct_and_block | ( ( label )? DIMENSION )=> dimension_stmt declaration_construct_and_block | ( ( label )? EXTERNAL )=> external_stmt declaration_construct_and_block | ( ( label )? INTRINSIC )=> intrinsic_stmt declaration_construct_and_block | ( ( label )? POINTER )=> pointer_stmt declaration_construct_and_block | ( ( label )? PROTECTED )=> protected_stmt declaration_construct_and_block | ( ( label )? SAVE )=> save_stmt declaration_construct_and_block | ( ( label )? TARGET )=> target_stmt declaration_construct_and_block | ( ( label )? VOLATILE )=> volatile_stmt declaration_construct_and_block | block );
public final void declaration_construct_and_block() throws RecognitionException {
gctr0++;
try {
// MFortranParser2018.g:4279:5: ( ( ( label )? ENTRY )=> entry_stmt declaration_construct_and_block | ( ( label )? ENUM )=> enum_def declaration_construct_and_block | ( ( label )? FORMAT )=> format_stmt declaration_construct_and_block | ( ( label )? INTERFACE )=> interface_block declaration_construct_and_block | ( ( label )? PARAMETER )=> parameter_stmt declaration_construct_and_block | ( ( label )? PROCEDURE )=> procedure_declaration_stmt declaration_construct_and_block | ( derived_type_stmt )=> derived_type_def declaration_construct_and_block | ( type_declaration_stmt )=> type_declaration_stmt declaration_construct_and_block | ( ( label )? access_spec )=> access_stmt declaration_construct_and_block | ( ( label )? ALLOCATABLE )=> allocatable_stmt declaration_construct_and_block | ( ( label )? ASYNCHRONOUS )=> asynchronous_stmt declaration_construct_and_block | ( ( label )? BIND )=> bind_stmt declaration_construct_and_block | ( ( label )? CODIMENSION )=> codimension_stmt declaration_construct_and_block | ( ( label )? DATA )=> data_stmt declaration_construct_and_block | ( ( label )? DIMENSION )=> dimension_stmt declaration_construct_and_block | ( ( label )? EXTERNAL )=> external_stmt declaration_construct_and_block | ( ( label )? INTRINSIC )=> intrinsic_stmt declaration_construct_and_block | ( ( label )? POINTER )=> pointer_stmt declaration_construct_and_block | ( ( label )? PROTECTED )=> protected_stmt declaration_construct_and_block | ( ( label )? SAVE )=> save_stmt declaration_construct_and_block | ( ( label )? TARGET )=> target_stmt declaration_construct_and_block | ( ( label )? VOLATILE )=> volatile_stmt declaration_construct_and_block | block )
int alt367=23;
alt367 = dfa367.predict(input);
switch (alt367) {
case 1 :
// MFortranParser2018.g:4279:7: ( ( label )? ENTRY )=> entry_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_entry_stmt_in_declaration_construct_and_block17482);
entry_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17484);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:4281:7: ( ( label )? ENUM )=> enum_def declaration_construct_and_block
{
pushFollow(FOLLOW_enum_def_in_declaration_construct_and_block17513);
enum_def();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17515);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:4283:7: ( ( label )? FORMAT )=> format_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_format_stmt_in_declaration_construct_and_block17544);
format_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17546);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// MFortranParser2018.g:4285:7: ( ( label )? INTERFACE )=> interface_block declaration_construct_and_block
{
pushFollow(FOLLOW_interface_block_in_declaration_construct_and_block17575);
interface_block();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17577);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// MFortranParser2018.g:4287:7: ( ( label )? PARAMETER )=> parameter_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_parameter_stmt_in_declaration_construct_and_block17606);
parameter_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17608);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// MFortranParser2018.g:4289:7: ( ( label )? PROCEDURE )=> procedure_declaration_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_procedure_declaration_stmt_in_declaration_construct_and_block17638);
procedure_declaration_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17640);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 7 :
// MFortranParser2018.g:4291:7: ( derived_type_stmt )=> derived_type_def declaration_construct_and_block
{
pushFollow(FOLLOW_derived_type_def_in_declaration_construct_and_block17664);
derived_type_def();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17666);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 8 :
// MFortranParser2018.g:4293:7: ( type_declaration_stmt )=> type_declaration_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_type_declaration_stmt_in_declaration_construct_and_block17690);
type_declaration_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17692);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 9 :
// MFortranParser2018.g:4295:7: ( ( label )? access_spec )=> access_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_access_stmt_in_declaration_construct_and_block17721);
access_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17723);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 10 :
// MFortranParser2018.g:4297:7: ( ( label )? ALLOCATABLE )=> allocatable_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_allocatable_stmt_in_declaration_construct_and_block17752);
allocatable_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17755);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 11 :
// MFortranParser2018.g:4299:7: ( ( label )? ASYNCHRONOUS )=> asynchronous_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_asynchronous_stmt_in_declaration_construct_and_block17785);
asynchronous_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17787);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 12 :
// MFortranParser2018.g:4301:7: ( ( label )? BIND )=> bind_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_bind_stmt_in_declaration_construct_and_block17816);
bind_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17818);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 13 :
// MFortranParser2018.g:4303:7: ( ( label )? CODIMENSION )=> codimension_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_codimension_stmt_in_declaration_construct_and_block17847);
codimension_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17849);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 14 :
// MFortranParser2018.g:4305:7: ( ( label )? DATA )=> data_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_data_stmt_in_declaration_construct_and_block17879);
data_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17881);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 15 :
// MFortranParser2018.g:4307:7: ( ( label )? DIMENSION )=> dimension_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_dimension_stmt_in_declaration_construct_and_block17910);
dimension_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17912);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 16 :
// MFortranParser2018.g:4309:7: ( ( label )? EXTERNAL )=> external_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_external_stmt_in_declaration_construct_and_block17941);
external_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17943);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 17 :
// MFortranParser2018.g:4311:7: ( ( label )? INTRINSIC )=> intrinsic_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_intrinsic_stmt_in_declaration_construct_and_block17972);
intrinsic_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17974);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 18 :
// MFortranParser2018.g:4313:7: ( ( label )? POINTER )=> pointer_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_pointer_stmt_in_declaration_construct_and_block18004);
pointer_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18006);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 19 :
// MFortranParser2018.g:4315:7: ( ( label )? PROTECTED )=> protected_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_protected_stmt_in_declaration_construct_and_block18035);
protected_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18037);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 20 :
// MFortranParser2018.g:4317:7: ( ( label )? SAVE )=> save_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_save_stmt_in_declaration_construct_and_block18067);
save_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18069);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 21 :
// MFortranParser2018.g:4319:7: ( ( label )? TARGET )=> target_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_target_stmt_in_declaration_construct_and_block18099);
target_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18101);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 22 :
// MFortranParser2018.g:4321:7: ( ( label )? VOLATILE )=> volatile_stmt declaration_construct_and_block
{
pushFollow(FOLLOW_volatile_stmt_in_declaration_construct_and_block18131);
volatile_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18133);
declaration_construct_and_block();
state._fsp--;
if (state.failed) return;
}
break;
case 23 :
// MFortranParser2018.g:4323:7: block
{
pushFollow(FOLLOW_block_in_declaration_construct_and_block18141);
block();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {gctr0--;}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "declaration_construct_and_block"
// $ANTLR start "end_block_stmt"
// MFortranParser2018.g:4329:1: end_block_stmt : (lbl= label )? END BLOCK ( IDENT )? end_of_stmt ;
public final void end_block_stmt() throws RecognitionException {
Token IDENT325=null;
Token END326=null;
Token BLOCK327=null;
Token lbl =null;
Token end_of_stmt328 =null;
Token name = null;
try {
// MFortranParser2018.g:4336:5: ( (lbl= label )? END BLOCK ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4336:7: (lbl= label )? END BLOCK ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4336:7: (lbl= label )?
int alt368=2;
int LA368_0 = input.LA(1);
if ( (LA368_0==DIGIT_STR) ) {
alt368=1;
}
switch (alt368) {
case 1 :
// MFortranParser2018.g:4336:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_block_stmt18176);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END326=(Token)match(input,END,FOLLOW_END_in_end_block_stmt18188); if (state.failed) return;
BLOCK327=(Token)match(input,BLOCK,FOLLOW_BLOCK_in_end_block_stmt18190); if (state.failed) return;
// MFortranParser2018.g:4337:17: ( IDENT )?
int alt369=2;
int LA369_0 = input.LA(1);
if ( (LA369_0==IDENT) ) {
alt369=1;
}
switch (alt369) {
case 1 :
// MFortranParser2018.g:4337:18: IDENT
{
IDENT325=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_block_stmt18193); if (state.failed) return;
if ( state.backtracking==0 ) {name=IDENT325;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_block_stmt18206);
end_of_stmt328=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_block_stmt(lbl,
name, END326, BLOCK327, end_of_stmt328);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_block_stmt"
// $ANTLR start "change_team_construct"
// MFortranParser2018.g:4346:1: change_team_construct : change_team_stmt block end_change_team_stmt ;
public final void change_team_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4350:5: ( change_team_stmt block end_change_team_stmt )
// MFortranParser2018.g:4350:7: change_team_stmt block end_change_team_stmt
{
pushFollow(FOLLOW_change_team_stmt_in_change_team_construct18239);
change_team_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_change_team_construct18241);
block();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_change_team_stmt_in_change_team_construct18243);
end_change_team_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.change_team_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "change_team_construct"
// $ANTLR start "change_team_stmt"
// MFortranParser2018.g:4356:1: change_team_stmt : (lbl= label )? ( IDENT COLON )? CHANGE TEAM LPAREN expr ( COMMA coarray_association_list )? ( COMMA sync_stat_list )? RPAREN ;
public final void change_team_stmt() throws RecognitionException {
Token IDENT329=null;
Token CHANGE330=null;
Token TEAM331=null;
Token lbl =null;
Token name = null;
boolean hasCAL = false;
boolean hasSSL = false;
try {
// MFortranParser2018.g:4365:5: ( (lbl= label )? ( IDENT COLON )? CHANGE TEAM LPAREN expr ( COMMA coarray_association_list )? ( COMMA sync_stat_list )? RPAREN )
// MFortranParser2018.g:4365:7: (lbl= label )? ( IDENT COLON )? CHANGE TEAM LPAREN expr ( COMMA coarray_association_list )? ( COMMA sync_stat_list )? RPAREN
{
// MFortranParser2018.g:4365:7: (lbl= label )?
int alt370=2;
int LA370_0 = input.LA(1);
if ( (LA370_0==DIGIT_STR) ) {
alt370=1;
}
switch (alt370) {
case 1 :
// MFortranParser2018.g:4365:8: lbl= label
{
pushFollow(FOLLOW_label_in_change_team_stmt18273);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4366:7: ( IDENT COLON )?
int alt371=2;
int LA371_0 = input.LA(1);
if ( (LA371_0==IDENT) ) {
alt371=1;
}
switch (alt371) {
case 1 :
// MFortranParser2018.g:4366:9: IDENT COLON
{
IDENT329=(Token)match(input,IDENT,FOLLOW_IDENT_in_change_team_stmt18286); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_change_team_stmt18288); if (state.failed) return;
if ( state.backtracking==0 ) {name=IDENT329;}
}
break;
}
CHANGE330=(Token)match(input,CHANGE,FOLLOW_CHANGE_in_change_team_stmt18294); if (state.failed) return;
TEAM331=(Token)match(input,TEAM,FOLLOW_TEAM_in_change_team_stmt18296); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_change_team_stmt18305); if (state.failed) return;
pushFollow(FOLLOW_expr_in_change_team_stmt18307);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4367:19: ( COMMA coarray_association_list )?
int alt372=2;
int LA372_0 = input.LA(1);
if ( (LA372_0==COMMA) ) {
int LA372_1 = input.LA(2);
if ( (LA372_1==IDENT) ) {
int LA372_3 = input.LA(3);
if ( (LA372_3==LBRACKET) ) {
alt372=1;
}
}
}
switch (alt372) {
case 1 :
// MFortranParser2018.g:4367:20: COMMA coarray_association_list
{
match(input,COMMA,FOLLOW_COMMA_in_change_team_stmt18310); if (state.failed) return;
pushFollow(FOLLOW_coarray_association_list_in_change_team_stmt18312);
coarray_association_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasCAL = true;}
}
break;
}
// MFortranParser2018.g:4368:7: ( COMMA sync_stat_list )?
int alt373=2;
int LA373_0 = input.LA(1);
if ( (LA373_0==COMMA) ) {
alt373=1;
}
switch (alt373) {
case 1 :
// MFortranParser2018.g:4368:9: COMMA sync_stat_list
{
match(input,COMMA,FOLLOW_COMMA_in_change_team_stmt18326); if (state.failed) return;
pushFollow(FOLLOW_sync_stat_list_in_change_team_stmt18328);
sync_stat_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSSL = true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_change_team_stmt18335); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.change_team_stmt(lbl,
name, CHANGE330, TEAM331, hasCAL, hasSSL);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "change_team_stmt"
// $ANTLR start "coarray_association"
// MFortranParser2018.g:4376:1: coarray_association : codimension_decl EQ_GT expr ;
public final void coarray_association() throws RecognitionException {
try {
// MFortranParser2018.g:4377:5: ( codimension_decl EQ_GT expr )
// MFortranParser2018.g:4377:7: codimension_decl EQ_GT expr
{
pushFollow(FOLLOW_codimension_decl_in_coarray_association18364);
codimension_decl();
state._fsp--;
if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_coarray_association18366); if (state.failed) return;
pushFollow(FOLLOW_expr_in_coarray_association18368);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.coarray_association(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "coarray_association"
// $ANTLR start "coarray_association_list"
// MFortranParser2018.g:4381:1: coarray_association_list : coarray_association ( COMMA coarray_association )* ;
public final void coarray_association_list() throws RecognitionException {
int numCA = 1;
try {
// MFortranParser2018.g:4388:5: ( coarray_association ( COMMA coarray_association )* )
// MFortranParser2018.g:4388:7: coarray_association ( COMMA coarray_association )*
{
pushFollow(FOLLOW_coarray_association_in_coarray_association_list18407);
coarray_association();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4389:7: ( COMMA coarray_association )*
loop374:
while (true) {
int alt374=2;
int LA374_0 = input.LA(1);
if ( (LA374_0==COMMA) ) {
int LA374_1 = input.LA(2);
if ( (LA374_1==IDENT) ) {
int LA374_3 = input.LA(3);
if ( (LA374_3==LBRACKET) ) {
alt374=1;
}
}
}
switch (alt374) {
case 1 :
// MFortranParser2018.g:4389:9: COMMA coarray_association
{
match(input,COMMA,FOLLOW_COMMA_in_coarray_association_list18417); if (state.failed) return;
pushFollow(FOLLOW_coarray_association_in_coarray_association_list18419);
coarray_association();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCA++;}
}
break;
default :
break loop374;
}
}
}
if ( state.backtracking==0 ) {
MFPA.coarray_association_list(numCA);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "coarray_association_list"
// $ANTLR start "end_change_team_stmt"
// MFortranParser2018.g:4395:1: end_change_team_stmt : (lbl= label )? END TEAM ( LPAREN ( sync_stat_list )? RPAREN )? ( IDENT )? ;
public final void end_change_team_stmt() throws RecognitionException {
Token IDENT332=null;
Token END333=null;
Token TEAM334=null;
Token lbl =null;
Token name = null;
boolean hasSSL = false;
try {
// MFortranParser2018.g:4400:5: ( (lbl= label )? END TEAM ( LPAREN ( sync_stat_list )? RPAREN )? ( IDENT )? )
// MFortranParser2018.g:4400:7: (lbl= label )? END TEAM ( LPAREN ( sync_stat_list )? RPAREN )? ( IDENT )?
{
// MFortranParser2018.g:4400:7: (lbl= label )?
int alt375=2;
int LA375_0 = input.LA(1);
if ( (LA375_0==DIGIT_STR) ) {
alt375=1;
}
switch (alt375) {
case 1 :
// MFortranParser2018.g:4400:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_change_team_stmt18450);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END333=(Token)match(input,END,FOLLOW_END_in_end_change_team_stmt18461); if (state.failed) return;
TEAM334=(Token)match(input,TEAM,FOLLOW_TEAM_in_end_change_team_stmt18463); if (state.failed) return;
// MFortranParser2018.g:4402:7: ( LPAREN ( sync_stat_list )? RPAREN )?
int alt377=2;
int LA377_0 = input.LA(1);
if ( (LA377_0==LPAREN) ) {
alt377=1;
}
switch (alt377) {
case 1 :
// MFortranParser2018.g:4402:9: LPAREN ( sync_stat_list )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_end_change_team_stmt18474); if (state.failed) return;
// MFortranParser2018.g:4402:16: ( sync_stat_list )?
int alt376=2;
int LA376_0 = input.LA(1);
if ( (LA376_0==IDENT) ) {
alt376=1;
}
switch (alt376) {
case 1 :
// MFortranParser2018.g:4402:17: sync_stat_list
{
pushFollow(FOLLOW_sync_stat_list_in_end_change_team_stmt18477);
sync_stat_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSSL = true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_end_change_team_stmt18483); if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4403:7: ( IDENT )?
int alt378=2;
int LA378_0 = input.LA(1);
if ( (LA378_0==IDENT) ) {
alt378=1;
}
switch (alt378) {
case 1 :
// MFortranParser2018.g:4403:9: IDENT
{
IDENT332=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_change_team_stmt18496); if (state.failed) return;
if ( state.backtracking==0 ) {name=IDENT332;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.end_change_team_stmt(lbl,
END333, TEAM334, name, hasSSL);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_change_team_stmt"
// $ANTLR start "critical_construct"
// MFortranParser2018.g:4416:1: critical_construct : critical_stmt block end_critical_stmt ;
public final void critical_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4417:5: ( critical_stmt block end_critical_stmt )
// MFortranParser2018.g:4417:7: critical_stmt block end_critical_stmt
{
pushFollow(FOLLOW_critical_stmt_in_critical_construct18532);
critical_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_critical_construct18534);
block();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_critical_stmt_in_critical_construct18536);
end_critical_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.critical_construct();}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "critical_construct"
// $ANTLR start "critical_stmt"
// MFortranParser2018.g:4424:1: critical_stmt : (lbl= label )? ( IDENT COLON )? CRITICAL end_of_stmt ;
public final void critical_stmt() throws RecognitionException {
Token IDENT335=null;
Token CRITICAL336=null;
Token lbl =null;
Token end_of_stmt337 =null;
Token name = null;
try {
// MFortranParser2018.g:4431:5: ( (lbl= label )? ( IDENT COLON )? CRITICAL end_of_stmt )
// MFortranParser2018.g:4431:7: (lbl= label )? ( IDENT COLON )? CRITICAL end_of_stmt
{
// MFortranParser2018.g:4431:7: (lbl= label )?
int alt379=2;
int LA379_0 = input.LA(1);
if ( (LA379_0==DIGIT_STR) ) {
alt379=1;
}
switch (alt379) {
case 1 :
// MFortranParser2018.g:4431:8: lbl= label
{
pushFollow(FOLLOW_label_in_critical_stmt18576);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4432:7: ( IDENT COLON )?
int alt380=2;
int LA380_0 = input.LA(1);
if ( (LA380_0==IDENT) ) {
alt380=1;
}
switch (alt380) {
case 1 :
// MFortranParser2018.g:4432:8: IDENT COLON
{
IDENT335=(Token)match(input,IDENT,FOLLOW_IDENT_in_critical_stmt18588); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_critical_stmt18590); if (state.failed) return;
if ( state.backtracking==0 ) {name=IDENT335;}
}
break;
}
CRITICAL336=(Token)match(input,CRITICAL,FOLLOW_CRITICAL_in_critical_stmt18596); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_critical_stmt18605);
end_of_stmt337=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.critical_stmt(lbl,
name, CRITICAL336, end_of_stmt337);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "critical_stmt"
// $ANTLR start "end_critical_stmt"
// MFortranParser2018.g:4441:1: end_critical_stmt : (lbl= label )? END CRITICAL ( IDENT )? end_of_stmt ;
public final void end_critical_stmt() throws RecognitionException {
Token IDENT338=null;
Token END339=null;
Token CRITICAL340=null;
Token lbl =null;
Token end_of_stmt341 =null;
Token name = null;
try {
// MFortranParser2018.g:4448:5: ( (lbl= label )? END CRITICAL ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4448:7: (lbl= label )? END CRITICAL ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4448:7: (lbl= label )?
int alt381=2;
int LA381_0 = input.LA(1);
if ( (LA381_0==DIGIT_STR) ) {
alt381=1;
}
switch (alt381) {
case 1 :
// MFortranParser2018.g:4448:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_critical_stmt18645);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END339=(Token)match(input,END,FOLLOW_END_in_end_critical_stmt18657); if (state.failed) return;
CRITICAL340=(Token)match(input,CRITICAL,FOLLOW_CRITICAL_in_end_critical_stmt18659); if (state.failed) return;
// MFortranParser2018.g:4449:20: ( IDENT )?
int alt382=2;
int LA382_0 = input.LA(1);
if ( (LA382_0==IDENT) ) {
alt382=1;
}
switch (alt382) {
case 1 :
// MFortranParser2018.g:4449:21: IDENT
{
IDENT338=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_critical_stmt18662); if (state.failed) return;
if ( state.backtracking==0 ) {name=IDENT338;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_critical_stmt18675);
end_of_stmt341=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_critical_stmt(lbl,
name, END339, CRITICAL340, end_of_stmt341);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_critical_stmt"
// $ANTLR start "do_construct"
// MFortranParser2018.g:4462:1: do_construct : do_stmt block end_do ;
public final void do_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4463:5: ( do_stmt block end_do )
// MFortranParser2018.g:4463:7: do_stmt block end_do
{
pushFollow(FOLLOW_do_stmt_in_do_construct18705);
do_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_do_construct18713);
block();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_do_in_do_construct18721);
end_do();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.do_construct(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "do_construct"
// $ANTLR start "do_stmt"
// MFortranParser2018.g:4475:1: do_stmt : (lbl= label )? ( IDENT COLON )? DO ( DIGIT_STR )? ( loop_control )? end_of_stmt ;
public final void do_stmt() throws RecognitionException {
Token IDENT342=null;
Token DIGIT_STR343=null;
Token DO344=null;
Token lbl =null;
Token end_of_stmt345 =null;
Token id=null;
Token doLbl =null;
boolean hasLC = false;
try {
// MFortranParser2018.g:4484:5: ( (lbl= label )? ( IDENT COLON )? DO ( DIGIT_STR )? ( loop_control )? end_of_stmt )
// MFortranParser2018.g:4484:7: (lbl= label )? ( IDENT COLON )? DO ( DIGIT_STR )? ( loop_control )? end_of_stmt
{
// MFortranParser2018.g:4484:7: (lbl= label )?
int alt383=2;
int LA383_0 = input.LA(1);
if ( (LA383_0==DIGIT_STR) ) {
alt383=1;
}
switch (alt383) {
case 1 :
// MFortranParser2018.g:4484:8: lbl= label
{
pushFollow(FOLLOW_label_in_do_stmt18762);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4485:7: ( IDENT COLON )?
int alt384=2;
int LA384_0 = input.LA(1);
if ( (LA384_0==IDENT) ) {
alt384=1;
}
switch (alt384) {
case 1 :
// MFortranParser2018.g:4485:9: IDENT COLON
{
IDENT342=(Token)match(input,IDENT,FOLLOW_IDENT_in_do_stmt18776); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_do_stmt18778); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT342;}
}
break;
}
DO344=(Token)match(input,DO,FOLLOW_DO_in_do_stmt18784); if (state.failed) return;
// MFortranParser2018.g:4486:7: ( DIGIT_STR )?
int alt385=2;
int LA385_0 = input.LA(1);
if ( (LA385_0==DIGIT_STR) ) {
alt385=1;
}
switch (alt385) {
case 1 :
// MFortranParser2018.g:4486:9: DIGIT_STR
{
DIGIT_STR343=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_do_stmt18795); if (state.failed) return;
if ( state.backtracking==0 ) {doLbl=DIGIT_STR343;}
}
break;
}
// MFortranParser2018.g:4487:7: ( loop_control )?
int alt386=2;
int LA386_0 = input.LA(1);
if ( (LA386_0==COMMA||LA386_0==CONCURRENT||LA386_0==IDENT||LA386_0==WHILE) ) {
alt386=1;
}
switch (alt386) {
case 1 :
// MFortranParser2018.g:4487:9: loop_control
{
pushFollow(FOLLOW_loop_control_in_do_stmt18810);
loop_control();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasLC=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_do_stmt18823);
end_of_stmt345=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.do_stmt(lbl,
id, DO344, doLbl, end_of_stmt345, hasLC);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "do_stmt"
// $ANTLR start "loop_control"
// MFortranParser2018.g:4500:1: loop_control : ( ( COMMA )? IDENT EQUALS expr COMMA expr ( COMMA expr )? | ( COMMA )? WHILE LPAREN expr RPAREN | ( COMMA )? CONCURRENT concurrent_header );
public final void loop_control() throws RecognitionException {
Token IDENT346=null;
Token WHILE347=null;
Token CONCURRENT348=null;
boolean hasOE = false;
try {
// MFortranParser2018.g:4504:5: ( ( COMMA )? IDENT EQUALS expr COMMA expr ( COMMA expr )? | ( COMMA )? WHILE LPAREN expr RPAREN | ( COMMA )? CONCURRENT concurrent_header )
int alt391=3;
switch ( input.LA(1) ) {
case COMMA:
{
switch ( input.LA(2) ) {
case IDENT:
{
alt391=1;
}
break;
case WHILE:
{
alt391=2;
}
break;
case CONCURRENT:
{
alt391=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 391, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENT:
{
alt391=1;
}
break;
case WHILE:
{
alt391=2;
}
break;
case CONCURRENT:
{
alt391=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 391, 0, input);
throw nvae;
}
switch (alt391) {
case 1 :
// MFortranParser2018.g:4504:7: ( COMMA )? IDENT EQUALS expr COMMA expr ( COMMA expr )?
{
// MFortranParser2018.g:4504:7: ( COMMA )?
int alt387=2;
int LA387_0 = input.LA(1);
if ( (LA387_0==COMMA) ) {
alt387=1;
}
switch (alt387) {
case 1 :
// MFortranParser2018.g:4504:9: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_loop_control18858); if (state.failed) return;
}
break;
}
IDENT346=(Token)match(input,IDENT,FOLLOW_IDENT_in_loop_control18863); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_loop_control18865); if (state.failed) return;
pushFollow(FOLLOW_expr_in_loop_control18867);
expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_loop_control18869); if (state.failed) return;
pushFollow(FOLLOW_expr_in_loop_control18871);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4505:7: ( COMMA expr )?
int alt388=2;
int LA388_0 = input.LA(1);
if ( (LA388_0==COMMA) ) {
alt388=1;
}
switch (alt388) {
case 1 :
// MFortranParser2018.g:4505:9: COMMA expr
{
match(input,COMMA,FOLLOW_COMMA_in_loop_control18882); if (state.failed) return;
pushFollow(FOLLOW_expr_in_loop_control18884);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasOE=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.loop_control(IDENT346, hasOE);}
}
break;
case 2 :
// MFortranParser2018.g:4507:7: ( COMMA )? WHILE LPAREN expr RPAREN
{
// MFortranParser2018.g:4507:7: ( COMMA )?
int alt389=2;
int LA389_0 = input.LA(1);
if ( (LA389_0==COMMA) ) {
alt389=1;
}
switch (alt389) {
case 1 :
// MFortranParser2018.g:4507:9: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_loop_control18909); if (state.failed) return;
}
break;
}
WHILE347=(Token)match(input,WHILE,FOLLOW_WHILE_in_loop_control18914); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_loop_control18916); if (state.failed) return;
pushFollow(FOLLOW_expr_in_loop_control18918);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_loop_control18920); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.loop_control(WHILE347, hasOE);}
}
break;
case 3 :
// MFortranParser2018.g:4509:7: ( COMMA )? CONCURRENT concurrent_header
{
// MFortranParser2018.g:4509:7: ( COMMA )?
int alt390=2;
int LA390_0 = input.LA(1);
if ( (LA390_0==COMMA) ) {
alt390=1;
}
switch (alt390) {
case 1 :
// MFortranParser2018.g:4509:9: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_loop_control18941); if (state.failed) return;
}
break;
}
CONCURRENT348=(Token)match(input,CONCURRENT,FOLLOW_CONCURRENT_in_loop_control18946); if (state.failed) return;
pushFollow(FOLLOW_concurrent_header_in_loop_control18948);
concurrent_header();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.loop_control(CONCURRENT348, hasOE);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "loop_control"
// $ANTLR start "concurrent_header"
// MFortranParser2018.g:4518:1: concurrent_header : LPAREN ( intrinsic_type_spec COLON_COLON )? concurrent_control_list ( COMMA expr )? RPAREN ;
public final void concurrent_header() throws RecognitionException {
boolean hasITS = false;
boolean hasME = false;
try {
// MFortranParser2018.g:4523:5: ( LPAREN ( intrinsic_type_spec COLON_COLON )? concurrent_control_list ( COMMA expr )? RPAREN )
// MFortranParser2018.g:4523:7: LPAREN ( intrinsic_type_spec COLON_COLON )? concurrent_control_list ( COMMA expr )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_concurrent_header18981); if (state.failed) return;
// MFortranParser2018.g:4524:7: ( intrinsic_type_spec COLON_COLON )?
int alt392=2;
int LA392_0 = input.LA(1);
if ( (LA392_0==CHARACTER||LA392_0==COMPLEX||(LA392_0 >= DOUBLE && LA392_0 <= DOUBLEPRECISION)||LA392_0==INTEGER||LA392_0==LOGICAL||LA392_0==REAL) ) {
alt392=1;
}
switch (alt392) {
case 1 :
// MFortranParser2018.g:4524:8: intrinsic_type_spec COLON_COLON
{
pushFollow(FOLLOW_intrinsic_type_spec_in_concurrent_header18991);
intrinsic_type_spec();
state._fsp--;
if (state.failed) return;
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_concurrent_header18993); if (state.failed) return;
if ( state.backtracking==0 ) {hasITS = true;}
}
break;
}
pushFollow(FOLLOW_concurrent_control_list_in_concurrent_header19006);
concurrent_control_list();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4526:7: ( COMMA expr )?
int alt393=2;
int LA393_0 = input.LA(1);
if ( (LA393_0==COMMA) ) {
alt393=1;
}
switch (alt393) {
case 1 :
// MFortranParser2018.g:4526:9: COMMA expr
{
match(input,COMMA,FOLLOW_COMMA_in_concurrent_header19017); if (state.failed) return;
pushFollow(FOLLOW_expr_in_concurrent_header19019);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasME = true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_concurrent_header19032); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.concurrent_header(hasITS, hasME); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "concurrent_header"
// $ANTLR start "concurrent_control"
// MFortranParser2018.g:4537:1: concurrent_control : IDENT EQUALS expr COLON expr ( COLON expr )? ;
public final void concurrent_control() throws RecognitionException {
Token IDENT349=null;
boolean hasStrd = false;
try {
// MFortranParser2018.g:4541:5: ( IDENT EQUALS expr COLON expr ( COLON expr )? )
// MFortranParser2018.g:4541:7: IDENT EQUALS expr COLON expr ( COLON expr )?
{
IDENT349=(Token)match(input,IDENT,FOLLOW_IDENT_in_concurrent_control19065); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_concurrent_control19067); if (state.failed) return;
pushFollow(FOLLOW_expr_in_concurrent_control19069);
expr();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_concurrent_control19071); if (state.failed) return;
pushFollow(FOLLOW_expr_in_concurrent_control19073);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4542:7: ( COLON expr )?
int alt394=2;
int LA394_0 = input.LA(1);
if ( (LA394_0==COLON) ) {
alt394=1;
}
switch (alt394) {
case 1 :
// MFortranParser2018.g:4542:9: COLON expr
{
match(input,COLON,FOLLOW_COLON_in_concurrent_control19084); if (state.failed) return;
pushFollow(FOLLOW_expr_in_concurrent_control19086);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasStrd=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.concurrent_control(IDENT349, hasStrd);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "concurrent_control"
// $ANTLR start "concurrent_control_list"
// MFortranParser2018.g:4546:1: concurrent_control_list : concurrent_control ( COMMA concurrent_control )* ;
public final void concurrent_control_list() throws RecognitionException {
int numCC = 1;
try {
// MFortranParser2018.g:4553:5: ( concurrent_control ( COMMA concurrent_control )* )
// MFortranParser2018.g:4553:7: concurrent_control ( COMMA concurrent_control )*
{
pushFollow(FOLLOW_concurrent_control_in_concurrent_control_list19125);
concurrent_control();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4554:7: ( COMMA concurrent_control )*
loop395:
while (true) {
int alt395=2;
int LA395_0 = input.LA(1);
if ( (LA395_0==COMMA) ) {
int LA395_1 = input.LA(2);
if ( (LA395_1==IDENT) ) {
int LA395_3 = input.LA(3);
if ( (LA395_3==EQUALS) ) {
alt395=1;
}
}
}
switch (alt395) {
case 1 :
// MFortranParser2018.g:4554:9: COMMA concurrent_control
{
match(input,COMMA,FOLLOW_COMMA_in_concurrent_control_list19135); if (state.failed) return;
pushFollow(FOLLOW_concurrent_control_in_concurrent_control_list19137);
concurrent_control();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCC++;}
}
break;
default :
break loop395;
}
}
}
if ( state.backtracking==0 ) {
MFPA.concurrent_control_list(numCC);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "concurrent_control_list"
// $ANTLR start "concurrent_locality"
// MFortranParser2018.g:4566:1: concurrent_locality : ( locality_spec )* ;
public final void concurrent_locality() throws RecognitionException {
int numCL = 0;
try {
// MFortranParser2018.g:4573:5: ( ( locality_spec )* )
// MFortranParser2018.g:4573:7: ( locality_spec )*
{
// MFortranParser2018.g:4573:7: ( locality_spec )*
loop396:
while (true) {
int alt396=2;
int LA396_0 = input.LA(1);
if ( (LA396_0==DEFAULT||(LA396_0 >= LOCAL && LA396_0 <= LOCAL_INT)||LA396_0==SHARED) ) {
alt396=1;
}
switch (alt396) {
case 1 :
// MFortranParser2018.g:4573:8: locality_spec
{
pushFollow(FOLLOW_locality_spec_in_concurrent_locality19173);
locality_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCL++;}
}
break;
default :
break loop396;
}
}
}
if ( state.backtracking==0 ) {
MFPA.concurrent_locality(numCL);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "concurrent_locality"
// $ANTLR start "locality_spec"
// MFortranParser2018.g:4579:1: locality_spec : ( LOCAL LPAREN generic_name_list RPAREN | LOCAL_INT LPAREN generic_name_list RPAREN | SHARED LPAREN generic_name_list RPAREN | DEFAULT LPAREN NONE RPAREN );
public final void locality_spec() throws RecognitionException {
Token LOCAL350=null;
Token LOCAL_INT351=null;
Token SHARED352=null;
Token DEFAULT353=null;
Token NONE354=null;
try {
// MFortranParser2018.g:4580:5: ( LOCAL LPAREN generic_name_list RPAREN | LOCAL_INT LPAREN generic_name_list RPAREN | SHARED LPAREN generic_name_list RPAREN | DEFAULT LPAREN NONE RPAREN )
int alt397=4;
switch ( input.LA(1) ) {
case LOCAL:
{
alt397=1;
}
break;
case LOCAL_INT:
{
alt397=2;
}
break;
case SHARED:
{
alt397=3;
}
break;
case DEFAULT:
{
alt397=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 397, 0, input);
throw nvae;
}
switch (alt397) {
case 1 :
// MFortranParser2018.g:4580:7: LOCAL LPAREN generic_name_list RPAREN
{
LOCAL350=(Token)match(input,LOCAL,FOLLOW_LOCAL_in_locality_spec19197); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_locality_spec19199); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_locality_spec19201);
generic_name_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_locality_spec19203); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.locality_spec(LOCAL350, null); }
}
break;
case 2 :
// MFortranParser2018.g:4582:7: LOCAL_INT LPAREN generic_name_list RPAREN
{
LOCAL_INT351=(Token)match(input,LOCAL_INT,FOLLOW_LOCAL_INT_in_locality_spec19221); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_locality_spec19223); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_locality_spec19225);
generic_name_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_locality_spec19227); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.locality_spec(LOCAL_INT351, null); }
}
break;
case 3 :
// MFortranParser2018.g:4584:7: SHARED LPAREN generic_name_list RPAREN
{
SHARED352=(Token)match(input,SHARED,FOLLOW_SHARED_in_locality_spec19245); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_locality_spec19247); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_locality_spec19249);
generic_name_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_locality_spec19251); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.locality_spec(SHARED352, null); }
}
break;
case 4 :
// MFortranParser2018.g:4586:7: DEFAULT LPAREN NONE RPAREN
{
DEFAULT353=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_locality_spec19269); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_locality_spec19271); if (state.failed) return;
NONE354=(Token)match(input,NONE,FOLLOW_NONE_in_locality_spec19273); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_locality_spec19275); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.locality_spec(DEFAULT353, NONE354); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "locality_spec"
// $ANTLR start "end_do"
// MFortranParser2018.g:4598:1: end_do : ( end_do_stmt | do_term_action_stmt );
public final void end_do() throws RecognitionException {
try {
// MFortranParser2018.g:4602:5: ( end_do_stmt | do_term_action_stmt )
int alt398=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA398_1 = input.LA(2);
if ( (LA398_1==END) ) {
alt398=1;
}
else if ( (LA398_1==M_LBL_DO_TERMINAL) ) {
alt398=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 398, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case END:
{
alt398=1;
}
break;
case M_LBL_DO_TERMINAL:
{
alt398=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 398, 0, input);
throw nvae;
}
switch (alt398) {
case 1 :
// MFortranParser2018.g:4602:7: end_do_stmt
{
pushFollow(FOLLOW_end_do_stmt_in_end_do19308);
end_do_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:4603:7: do_term_action_stmt
{
pushFollow(FOLLOW_do_term_action_stmt_in_end_do19316);
do_term_action_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.end_do();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_do"
// $ANTLR start "do_term_action_stmt"
// MFortranParser2018.g:4614:1: do_term_action_stmt : (lbl= label )? M_LBL_DO_TERMINAL ( action_stmt | ( END DO ( IDENT )? ) end_of_stmt ) ;
public final void do_term_action_stmt() throws RecognitionException {
Token END355=null;
Token DO356=null;
Token IDENT357=null;
Token lbl =null;
Token end_of_stmt358 =null;
Token id=null;
Token endToken = null;
Token doToken = null;
try {
// MFortranParser2018.g:4623:5: ( (lbl= label )? M_LBL_DO_TERMINAL ( action_stmt | ( END DO ( IDENT )? ) end_of_stmt ) )
// MFortranParser2018.g:4623:7: (lbl= label )? M_LBL_DO_TERMINAL ( action_stmt | ( END DO ( IDENT )? ) end_of_stmt )
{
// MFortranParser2018.g:4623:7: (lbl= label )?
int alt399=2;
int LA399_0 = input.LA(1);
if ( (LA399_0==DIGIT_STR) ) {
alt399=1;
}
switch (alt399) {
case 1 :
// MFortranParser2018.g:4623:8: lbl= label
{
pushFollow(FOLLOW_label_in_do_term_action_stmt19346);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_LBL_DO_TERMINAL,FOLLOW_M_LBL_DO_TERMINAL_in_do_term_action_stmt19350); if (state.failed) return;
// MFortranParser2018.g:4624:7: ( action_stmt | ( END DO ( IDENT )? ) end_of_stmt )
int alt401=2;
int LA401_0 = input.LA(1);
if ( (LA401_0==ALLOCATE||LA401_0==BACKSPACE||LA401_0==CALL||LA401_0==CLOSE||LA401_0==CONTINUE||LA401_0==CYCLE||LA401_0==DEALLOCATE||LA401_0==DIGIT_STR||LA401_0==EXIT||LA401_0==FLUSH||(LA401_0 >= GO && LA401_0 <= GOTO)||LA401_0==INQUIRE||(LA401_0 >= M_ALLOCATE_STMT_1 && LA401_0 <= M_ASSIGNMENT_STMT)||(LA401_0 >= M_FORALL_STMT && LA401_0 <= M_IF_STMT)||LA401_0==M_INQUIRE_STMT_2||LA401_0==M_PTR_ASSIGNMENT_STMT||LA401_0==M_WHERE_STMT||LA401_0==NULLIFY||LA401_0==OPEN||LA401_0==PRINT||LA401_0==READ||(LA401_0 >= RETURN && LA401_0 <= REWIND)||LA401_0==STOP||LA401_0==SYNC||LA401_0==WAIT||LA401_0==WRITE) ) {
alt401=1;
}
else if ( (LA401_0==END) ) {
int LA401_2 = input.LA(2);
if ( (LA401_2==FILE) ) {
alt401=1;
}
else if ( (LA401_2==DO) ) {
alt401=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 401, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 401, 0, input);
throw nvae;
}
switch (alt401) {
case 1 :
// MFortranParser2018.g:4624:9: action_stmt
{
pushFollow(FOLLOW_action_stmt_in_do_term_action_stmt19360);
action_stmt();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:4625:9: ( END DO ( IDENT )? ) end_of_stmt
{
// MFortranParser2018.g:4625:9: ( END DO ( IDENT )? )
// MFortranParser2018.g:4625:11: END DO ( IDENT )?
{
END355=(Token)match(input,END,FOLLOW_END_in_do_term_action_stmt19373); if (state.failed) return;
DO356=(Token)match(input,DO,FOLLOW_DO_in_do_term_action_stmt19375); if (state.failed) return;
if ( state.backtracking==0 ) {endToken=END355; doToken=DO356;}
// MFortranParser2018.g:4626:11: ( IDENT )?
int alt400=2;
int LA400_0 = input.LA(1);
if ( (LA400_0==IDENT) ) {
alt400=1;
}
switch (alt400) {
case 1 :
// MFortranParser2018.g:4626:12: IDENT
{
IDENT357=(Token)match(input,IDENT,FOLLOW_IDENT_in_do_term_action_stmt19391); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT357;}
}
break;
}
}
pushFollow(FOLLOW_end_of_stmt_in_do_term_action_stmt19416);
end_of_stmt358=end_of_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.do_term_action_stmt(lbl, id,
endToken, doToken, end_of_stmt358);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "do_term_action_stmt"
// $ANTLR start "end_do_stmt"
// MFortranParser2018.g:4638:1: end_do_stmt : (lbl= label )? END DO ( IDENT )? end_of_stmt ;
public final void end_do_stmt() throws RecognitionException {
Token IDENT359=null;
Token END360=null;
Token DO361=null;
Token lbl =null;
Token end_of_stmt362 =null;
Token id=null;
try {
// MFortranParser2018.g:4645:5: ( (lbl= label )? END DO ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4645:7: (lbl= label )? END DO ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4645:7: (lbl= label )?
int alt402=2;
int LA402_0 = input.LA(1);
if ( (LA402_0==DIGIT_STR) ) {
alt402=1;
}
switch (alt402) {
case 1 :
// MFortranParser2018.g:4645:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_do_stmt19464);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END360=(Token)match(input,END,FOLLOW_END_in_end_do_stmt19476); if (state.failed) return;
DO361=(Token)match(input,DO,FOLLOW_DO_in_end_do_stmt19478); if (state.failed) return;
// MFortranParser2018.g:4646:14: ( IDENT )?
int alt403=2;
int LA403_0 = input.LA(1);
if ( (LA403_0==IDENT) ) {
alt403=1;
}
switch (alt403) {
case 1 :
// MFortranParser2018.g:4646:16: IDENT
{
IDENT359=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_do_stmt19482); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT359;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_do_stmt19496);
end_of_stmt362=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_do_stmt(lbl, id,
END360, DO361, end_of_stmt362);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_do_stmt"
// $ANTLR start "cycle_stmt"
// MFortranParser2018.g:4656:1: cycle_stmt : (lbl= label )? CYCLE ( IDENT )? end_of_stmt ;
public final void cycle_stmt() throws RecognitionException {
Token IDENT363=null;
Token CYCLE364=null;
Token lbl =null;
Token end_of_stmt365 =null;
Token id = null;
try {
// MFortranParser2018.g:4663:5: ( (lbl= label )? CYCLE ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4663:7: (lbl= label )? CYCLE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4663:7: (lbl= label )?
int alt404=2;
int LA404_0 = input.LA(1);
if ( (LA404_0==DIGIT_STR) ) {
alt404=1;
}
switch (alt404) {
case 1 :
// MFortranParser2018.g:4663:8: lbl= label
{
pushFollow(FOLLOW_label_in_cycle_stmt19536);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CYCLE364=(Token)match(input,CYCLE,FOLLOW_CYCLE_in_cycle_stmt19548); if (state.failed) return;
// MFortranParser2018.g:4664:13: ( IDENT )?
int alt405=2;
int LA405_0 = input.LA(1);
if ( (LA405_0==IDENT) ) {
alt405=1;
}
switch (alt405) {
case 1 :
// MFortranParser2018.g:4664:14: IDENT
{
IDENT363=(Token)match(input,IDENT,FOLLOW_IDENT_in_cycle_stmt19551); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT363;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_cycle_stmt19564);
end_of_stmt365=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.cycle_stmt(lbl,
CYCLE364, id, end_of_stmt365); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "cycle_stmt"
// $ANTLR start "if_construct"
// MFortranParser2018.g:4673:1: if_construct : if_then_stmt block ( else_if_stmt block )* ( else_stmt block )? end_if_stmt ;
public final void if_construct() throws RecognitionException {
int numB = 1;
try {
// MFortranParser2018.g:4680:5: ( if_then_stmt block ( else_if_stmt block )* ( else_stmt block )? end_if_stmt )
// MFortranParser2018.g:4680:7: if_then_stmt block ( else_if_stmt block )* ( else_stmt block )? end_if_stmt
{
pushFollow(FOLLOW_if_then_stmt_in_if_construct19601);
if_then_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_if_construct19603);
block();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4681:7: ( else_if_stmt block )*
loop406:
while (true) {
int alt406=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA406_1 = input.LA(2);
if ( (LA406_1==ELSE) ) {
int LA406_2 = input.LA(3);
if ( (LA406_2==IF) ) {
alt406=1;
}
}
else if ( (LA406_1==ELSEIF) ) {
alt406=1;
}
}
break;
case ELSE:
{
int LA406_2 = input.LA(2);
if ( (LA406_2==IF) ) {
alt406=1;
}
}
break;
case ELSEIF:
{
alt406=1;
}
break;
}
switch (alt406) {
case 1 :
// MFortranParser2018.g:4681:9: else_if_stmt block
{
pushFollow(FOLLOW_else_if_stmt_in_if_construct19614);
else_if_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_if_construct19616);
block();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numB++;}
}
break;
default :
break loop406;
}
}
// MFortranParser2018.g:4682:7: ( else_stmt block )?
int alt407=2;
int LA407_0 = input.LA(1);
if ( (LA407_0==DIGIT_STR) ) {
int LA407_1 = input.LA(2);
if ( (LA407_1==ELSE) ) {
alt407=1;
}
}
else if ( (LA407_0==ELSE) ) {
alt407=1;
}
switch (alt407) {
case 1 :
// MFortranParser2018.g:4682:9: else_stmt block
{
pushFollow(FOLLOW_else_stmt_in_if_construct19632);
else_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_if_construct19634);
block();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numB++;}
}
break;
}
pushFollow(FOLLOW_end_if_stmt_in_if_construct19647);
end_if_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.if_construct(numB);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "if_construct"
// $ANTLR start "if_then_stmt"
// MFortranParser2018.g:4690:1: if_then_stmt : (lbl= label )? (id= IDENT COLON )? IF LPAREN expr RPAREN THEN end_of_stmt ;
public final void if_then_stmt() throws RecognitionException {
Token id=null;
Token IF366=null;
Token THEN367=null;
Token lbl =null;
Token end_of_stmt368 =null;
try {
// MFortranParser2018.g:4694:5: ( (lbl= label )? (id= IDENT COLON )? IF LPAREN expr RPAREN THEN end_of_stmt )
// MFortranParser2018.g:4694:7: (lbl= label )? (id= IDENT COLON )? IF LPAREN expr RPAREN THEN end_of_stmt
{
// MFortranParser2018.g:4694:7: (lbl= label )?
int alt408=2;
int LA408_0 = input.LA(1);
if ( (LA408_0==DIGIT_STR) ) {
alt408=1;
}
switch (alt408) {
case 1 :
// MFortranParser2018.g:4694:8: lbl= label
{
pushFollow(FOLLOW_label_in_if_then_stmt19673);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4695:7: (id= IDENT COLON )?
int alt409=2;
int LA409_0 = input.LA(1);
if ( (LA409_0==IDENT) ) {
alt409=1;
}
switch (alt409) {
case 1 :
// MFortranParser2018.g:4695:9: id= IDENT COLON
{
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_if_then_stmt19688); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_if_then_stmt19690); if (state.failed) return;
}
break;
}
IF366=(Token)match(input,IF,FOLLOW_IF_in_if_then_stmt19701); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_if_then_stmt19703); if (state.failed) return;
pushFollow(FOLLOW_expr_in_if_then_stmt19705);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_if_then_stmt19707); if (state.failed) return;
THEN367=(Token)match(input,THEN,FOLLOW_THEN_in_if_then_stmt19709); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_if_then_stmt19718);
end_of_stmt368=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.if_then_stmt(lbl, id,
IF366, THEN367, end_of_stmt368);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "if_then_stmt"
// $ANTLR start "else_if_stmt"
// MFortranParser2018.g:4706:1: else_if_stmt : ( (lbl= label )? ELSE IF LPAREN expr RPAREN THEN (id= IDENT )? end_of_stmt | (lbl= label )? ELSEIF LPAREN expr RPAREN THEN (id= IDENT )? end_of_stmt );
public final void else_if_stmt() throws RecognitionException {
Token id=null;
Token ELSE369=null;
Token IF370=null;
Token THEN371=null;
Token ELSEIF373=null;
Token THEN374=null;
Token lbl =null;
Token end_of_stmt372 =null;
Token end_of_stmt375 =null;
try {
// MFortranParser2018.g:4710:5: ( (lbl= label )? ELSE IF LPAREN expr RPAREN THEN (id= IDENT )? end_of_stmt | (lbl= label )? ELSEIF LPAREN expr RPAREN THEN (id= IDENT )? end_of_stmt )
int alt414=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA414_1 = input.LA(2);
if ( (LA414_1==ELSE) ) {
alt414=1;
}
else if ( (LA414_1==ELSEIF) ) {
alt414=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 414, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELSE:
{
alt414=1;
}
break;
case ELSEIF:
{
alt414=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 414, 0, input);
throw nvae;
}
switch (alt414) {
case 1 :
// MFortranParser2018.g:4710:7: (lbl= label )? ELSE IF LPAREN expr RPAREN THEN (id= IDENT )? end_of_stmt
{
// MFortranParser2018.g:4710:7: (lbl= label )?
int alt410=2;
int LA410_0 = input.LA(1);
if ( (LA410_0==DIGIT_STR) ) {
alt410=1;
}
switch (alt410) {
case 1 :
// MFortranParser2018.g:4710:8: lbl= label
{
pushFollow(FOLLOW_label_in_else_if_stmt19754);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ELSE369=(Token)match(input,ELSE,FOLLOW_ELSE_in_else_if_stmt19766); if (state.failed) return;
IF370=(Token)match(input,IF,FOLLOW_IF_in_else_if_stmt19768); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_else_if_stmt19770); if (state.failed) return;
pushFollow(FOLLOW_expr_in_else_if_stmt19772);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_else_if_stmt19774); if (state.failed) return;
THEN371=(Token)match(input,THEN,FOLLOW_THEN_in_else_if_stmt19776); if (state.failed) return;
// MFortranParser2018.g:4712:7: (id= IDENT )?
int alt411=2;
int LA411_0 = input.LA(1);
if ( (LA411_0==IDENT) ) {
alt411=1;
}
switch (alt411) {
case 1 :
// MFortranParser2018.g:4712:9: id= IDENT
{
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_else_if_stmt19789); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_else_if_stmt19801);
end_of_stmt372=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.else_if_stmt(lbl, id,
ELSE369, IF370, THEN371, end_of_stmt372);}
}
break;
case 2 :
// MFortranParser2018.g:4716:7: (lbl= label )? ELSEIF LPAREN expr RPAREN THEN (id= IDENT )? end_of_stmt
{
// MFortranParser2018.g:4716:7: (lbl= label )?
int alt412=2;
int LA412_0 = input.LA(1);
if ( (LA412_0==DIGIT_STR) ) {
alt412=1;
}
switch (alt412) {
case 1 :
// MFortranParser2018.g:4716:8: lbl= label
{
pushFollow(FOLLOW_label_in_else_if_stmt19822);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ELSEIF373=(Token)match(input,ELSEIF,FOLLOW_ELSEIF_in_else_if_stmt19833); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_else_if_stmt19835); if (state.failed) return;
pushFollow(FOLLOW_expr_in_else_if_stmt19837);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_else_if_stmt19839); if (state.failed) return;
THEN374=(Token)match(input,THEN,FOLLOW_THEN_in_else_if_stmt19841); if (state.failed) return;
// MFortranParser2018.g:4718:7: (id= IDENT )?
int alt413=2;
int LA413_0 = input.LA(1);
if ( (LA413_0==IDENT) ) {
alt413=1;
}
switch (alt413) {
case 1 :
// MFortranParser2018.g:4718:9: id= IDENT
{
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_else_if_stmt19854); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_else_if_stmt19866);
end_of_stmt375=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.else_if_stmt(lbl, id,
ELSEIF373, null, THEN374, end_of_stmt375);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "else_if_stmt"
// $ANTLR start "else_stmt"
// MFortranParser2018.g:4727:1: else_stmt : (lbl= label )? ELSE (id= IDENT )? end_of_stmt ;
public final void else_stmt() throws RecognitionException {
Token id=null;
Token ELSE376=null;
Token lbl =null;
Token end_of_stmt377 =null;
try {
// MFortranParser2018.g:4731:5: ( (lbl= label )? ELSE (id= IDENT )? end_of_stmt )
// MFortranParser2018.g:4731:7: (lbl= label )? ELSE (id= IDENT )? end_of_stmt
{
// MFortranParser2018.g:4731:7: (lbl= label )?
int alt415=2;
int LA415_0 = input.LA(1);
if ( (LA415_0==DIGIT_STR) ) {
alt415=1;
}
switch (alt415) {
case 1 :
// MFortranParser2018.g:4731:8: lbl= label
{
pushFollow(FOLLOW_label_in_else_stmt19902);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ELSE376=(Token)match(input,ELSE,FOLLOW_ELSE_in_else_stmt19913); if (state.failed) return;
// MFortranParser2018.g:4732:12: (id= IDENT )?
int alt416=2;
int LA416_0 = input.LA(1);
if ( (LA416_0==IDENT) ) {
alt416=1;
}
switch (alt416) {
case 1 :
// MFortranParser2018.g:4732:14: id= IDENT
{
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_else_stmt19919); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_else_stmt19930);
end_of_stmt377=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.else_stmt(lbl, id,
ELSE376, end_of_stmt377); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "else_stmt"
// $ANTLR start "end_if_stmt"
// MFortranParser2018.g:4741:1: end_if_stmt : (lbl= label )? END IF (id= IDENT )? end_of_stmt ;
public final void end_if_stmt() throws RecognitionException {
Token id=null;
Token END378=null;
Token IF379=null;
Token lbl =null;
Token end_of_stmt380 =null;
try {
// MFortranParser2018.g:4745:5: ( (lbl= label )? END IF (id= IDENT )? end_of_stmt )
// MFortranParser2018.g:4745:7: (lbl= label )? END IF (id= IDENT )? end_of_stmt
{
// MFortranParser2018.g:4745:7: (lbl= label )?
int alt417=2;
int LA417_0 = input.LA(1);
if ( (LA417_0==DIGIT_STR) ) {
alt417=1;
}
switch (alt417) {
case 1 :
// MFortranParser2018.g:4745:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_if_stmt19966);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END378=(Token)match(input,END,FOLLOW_END_in_end_if_stmt19977); if (state.failed) return;
IF379=(Token)match(input,IF,FOLLOW_IF_in_end_if_stmt19979); if (state.failed) return;
// MFortranParser2018.g:4746:14: (id= IDENT )?
int alt418=2;
int LA418_0 = input.LA(1);
if ( (LA418_0==IDENT) ) {
alt418=1;
}
switch (alt418) {
case 1 :
// MFortranParser2018.g:4746:16: id= IDENT
{
id=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_if_stmt19985); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_if_stmt19997);
end_of_stmt380=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_if_stmt(lbl, id, END378, IF379, end_of_stmt380);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_if_stmt"
// $ANTLR start "if_stmt"
// MFortranParser2018.g:4756:1: if_stmt : (lbl= label )? M_IF_STMT IF LPAREN expr RPAREN action_stmt ;
public final void if_stmt() throws RecognitionException {
Token IF381=null;
Token lbl =null;
try {
// MFortranParser2018.g:4762:5: ( (lbl= label )? M_IF_STMT IF LPAREN expr RPAREN action_stmt )
// MFortranParser2018.g:4762:7: (lbl= label )? M_IF_STMT IF LPAREN expr RPAREN action_stmt
{
// MFortranParser2018.g:4762:7: (lbl= label )?
int alt419=2;
int LA419_0 = input.LA(1);
if ( (LA419_0==DIGIT_STR) ) {
alt419=1;
}
switch (alt419) {
case 1 :
// MFortranParser2018.g:4762:8: lbl= label
{
pushFollow(FOLLOW_label_in_if_stmt20037);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_IF_STMT,FOLLOW_M_IF_STMT_in_if_stmt20049); if (state.failed) return;
IF381=(Token)match(input,IF,FOLLOW_IF_in_if_stmt20051); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_if_stmt20053); if (state.failed) return;
pushFollow(FOLLOW_expr_in_if_stmt20055);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_if_stmt20057); if (state.failed) return;
pushFollow(FOLLOW_action_stmt_in_if_stmt20066);
action_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.if_stmt(lbl, IF381); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "if_stmt"
// $ANTLR start "case_construct"
// MFortranParser2018.g:4771:1: case_construct : select_case_stmt ( case_stmt block )* end_select_stmt ;
public final void case_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4775:5: ( select_case_stmt ( case_stmt block )* end_select_stmt )
// MFortranParser2018.g:4775:7: select_case_stmt ( case_stmt block )* end_select_stmt
{
pushFollow(FOLLOW_select_case_stmt_in_case_construct20100);
select_case_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4775:24: ( case_stmt block )*
loop420:
while (true) {
int alt420=2;
int LA420_0 = input.LA(1);
if ( (LA420_0==DIGIT_STR) ) {
int LA420_1 = input.LA(2);
if ( (LA420_1==CASE) ) {
alt420=1;
}
}
else if ( (LA420_0==CASE) ) {
alt420=1;
}
switch (alt420) {
case 1 :
// MFortranParser2018.g:4775:26: case_stmt block
{
pushFollow(FOLLOW_case_stmt_in_case_construct20104);
case_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_case_construct20106);
block();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop420;
}
}
pushFollow(FOLLOW_end_select_stmt_in_case_construct20111);
end_select_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.case_construct();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "case_construct"
// $ANTLR start "select_case_stmt"
// MFortranParser2018.g:4782:1: select_case_stmt : (lbl= label )? ( IDENT COLON )? ( SELECT CASE | SELECTCASE ) LPAREN expr RPAREN end_of_stmt ;
public final void select_case_stmt() throws RecognitionException {
Token IDENT382=null;
Token SELECT383=null;
Token CASE384=null;
Token SELECTCASE385=null;
Token lbl =null;
Token end_of_stmt386 =null;
Token id = null;
Token t0 = null;
Token t1 = null;
try {
// MFortranParser2018.g:4791:5: ( (lbl= label )? ( IDENT COLON )? ( SELECT CASE | SELECTCASE ) LPAREN expr RPAREN end_of_stmt )
// MFortranParser2018.g:4791:7: (lbl= label )? ( IDENT COLON )? ( SELECT CASE | SELECTCASE ) LPAREN expr RPAREN end_of_stmt
{
// MFortranParser2018.g:4791:7: (lbl= label )?
int alt421=2;
int LA421_0 = input.LA(1);
if ( (LA421_0==DIGIT_STR) ) {
alt421=1;
}
switch (alt421) {
case 1 :
// MFortranParser2018.g:4791:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_case_stmt20141);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4792:7: ( IDENT COLON )?
int alt422=2;
int LA422_0 = input.LA(1);
if ( (LA422_0==IDENT) ) {
alt422=1;
}
switch (alt422) {
case 1 :
// MFortranParser2018.g:4792:9: IDENT COLON
{
IDENT382=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_case_stmt20154); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_select_case_stmt20156); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT382;}
}
break;
}
// MFortranParser2018.g:4793:7: ( SELECT CASE | SELECTCASE )
int alt423=2;
int LA423_0 = input.LA(1);
if ( (LA423_0==SELECT) ) {
alt423=1;
}
else if ( (LA423_0==SELECTCASE) ) {
alt423=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 423, 0, input);
throw nvae;
}
switch (alt423) {
case 1 :
// MFortranParser2018.g:4793:9: SELECT CASE
{
SELECT383=(Token)match(input,SELECT,FOLLOW_SELECT_in_select_case_stmt20170); if (state.failed) return;
CASE384=(Token)match(input,CASE,FOLLOW_CASE_in_select_case_stmt20172); if (state.failed) return;
if ( state.backtracking==0 ) {t0=SELECT383; t1=CASE384;}
}
break;
case 2 :
// MFortranParser2018.g:4794:9: SELECTCASE
{
SELECTCASE385=(Token)match(input,SELECTCASE,FOLLOW_SELECTCASE_in_select_case_stmt20184); if (state.failed) return;
if ( state.backtracking==0 ) {t0=SELECTCASE385; t1=null;}
}
break;
}
match(input,LPAREN,FOLLOW_LPAREN_in_select_case_stmt20197); if (state.failed) return;
pushFollow(FOLLOW_expr_in_select_case_stmt20199);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_select_case_stmt20201); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_select_case_stmt20210);
end_of_stmt386=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.select_case_stmt(lbl,
id, t0, t1, end_of_stmt386);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "select_case_stmt"
// $ANTLR start "case_stmt"
// MFortranParser2018.g:4804:1: case_stmt : (lbl= label )? CASE case_selector ( IDENT )? end_of_stmt ;
public final void case_stmt() throws RecognitionException {
Token IDENT387=null;
Token CASE388=null;
Token lbl =null;
Token end_of_stmt389 =null;
Token id=null;
try {
// MFortranParser2018.g:4811:5: ( (lbl= label )? CASE case_selector ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4811:7: (lbl= label )? CASE case_selector ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4811:7: (lbl= label )?
int alt424=2;
int LA424_0 = input.LA(1);
if ( (LA424_0==DIGIT_STR) ) {
alt424=1;
}
switch (alt424) {
case 1 :
// MFortranParser2018.g:4811:8: lbl= label
{
pushFollow(FOLLOW_label_in_case_stmt20254);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CASE388=(Token)match(input,CASE,FOLLOW_CASE_in_case_stmt20265); if (state.failed) return;
pushFollow(FOLLOW_case_selector_in_case_stmt20267);
case_selector();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4812:26: ( IDENT )?
int alt425=2;
int LA425_0 = input.LA(1);
if ( (LA425_0==IDENT) ) {
alt425=1;
}
switch (alt425) {
case 1 :
// MFortranParser2018.g:4812:28: IDENT
{
IDENT387=(Token)match(input,IDENT,FOLLOW_IDENT_in_case_stmt20271); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT387;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_case_stmt20284);
end_of_stmt389=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.case_stmt(lbl,
CASE388, id, end_of_stmt389);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "case_stmt"
// $ANTLR start "end_select_stmt"
// MFortranParser2018.g:4821:1: end_select_stmt : (lbl= label )? END SELECT ( IDENT )? end_of_stmt ;
public final void end_select_stmt() throws RecognitionException {
Token IDENT390=null;
Token END391=null;
Token SELECT392=null;
Token lbl =null;
Token end_of_stmt393 =null;
Token id=null;
try {
// MFortranParser2018.g:4828:5: ( (lbl= label )? END SELECT ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4828:7: (lbl= label )? END SELECT ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4828:7: (lbl= label )?
int alt426=2;
int LA426_0 = input.LA(1);
if ( (LA426_0==DIGIT_STR) ) {
alt426=1;
}
switch (alt426) {
case 1 :
// MFortranParser2018.g:4828:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_select_stmt20324);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END391=(Token)match(input,END,FOLLOW_END_in_end_select_stmt20335); if (state.failed) return;
SELECT392=(Token)match(input,SELECT,FOLLOW_SELECT_in_end_select_stmt20337); if (state.failed) return;
// MFortranParser2018.g:4829:18: ( IDENT )?
int alt427=2;
int LA427_0 = input.LA(1);
if ( (LA427_0==IDENT) ) {
alt427=1;
}
switch (alt427) {
case 1 :
// MFortranParser2018.g:4829:19: IDENT
{
IDENT390=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_select_stmt20340); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT390;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_select_stmt20353);
end_of_stmt393=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_select_stmt(lbl,
END391, SELECT392, id, end_of_stmt393);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_select_stmt"
// $ANTLR start "case_selector"
// MFortranParser2018.g:4843:1: case_selector : ( LPAREN case_value_range_list RPAREN | DEFAULT );
public final void case_selector() throws RecognitionException {
Token DEFAULT394=null;
try {
// MFortranParser2018.g:4844:5: ( LPAREN case_value_range_list RPAREN | DEFAULT )
int alt428=2;
int LA428_0 = input.LA(1);
if ( (LA428_0==LPAREN) ) {
alt428=1;
}
else if ( (LA428_0==DEFAULT) ) {
alt428=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 428, 0, input);
throw nvae;
}
switch (alt428) {
case 1 :
// MFortranParser2018.g:4844:7: LPAREN case_value_range_list RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_case_selector20385); if (state.failed) return;
pushFollow(FOLLOW_case_value_range_list_in_case_selector20387);
case_value_range_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_case_selector20389); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.case_selector(null); }
}
break;
case 2 :
// MFortranParser2018.g:4846:7: DEFAULT
{
DEFAULT394=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_case_selector20407); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.case_selector(DEFAULT394); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "case_selector"
// $ANTLR start "case_value_range"
// MFortranParser2018.g:4853:1: case_value_range : ( COLON case_value | case_value case_value_range_suffix );
public final void case_value_range() throws RecognitionException {
try {
// MFortranParser2018.g:4857:5: ( COLON case_value | case_value case_value_range_suffix )
int alt429=2;
int LA429_0 = input.LA(1);
if ( (LA429_0==COLON) ) {
alt429=1;
}
else if ( (LA429_0==BIN_CONST||LA429_0==CHAR_CONST||(LA429_0 >= DEFINED_OP && LA429_0 <= DIGIT_STR)||LA429_0==FALSE||(LA429_0 >= HEX_CONST && LA429_0 <= IDENT)||LA429_0==LBRACKET||LA429_0==LPAREN||LA429_0==MINUS||LA429_0==M_REAL_CONST||LA429_0==NOT||LA429_0==OCT_CONST||LA429_0==PLUS||LA429_0==TRUE) ) {
alt429=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 429, 0, input);
throw nvae;
}
switch (alt429) {
case 1 :
// MFortranParser2018.g:4857:7: COLON case_value
{
match(input,COLON,FOLLOW_COLON_in_case_value_range20440); if (state.failed) return;
pushFollow(FOLLOW_case_value_in_case_value_range20442);
case_value();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:4858:7: case_value case_value_range_suffix
{
pushFollow(FOLLOW_case_value_in_case_value_range20450);
case_value();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_case_value_range_suffix_in_case_value_range20452);
case_value_range_suffix();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.case_value_range();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "case_value_range"
// $ANTLR start "case_value_range_suffix"
// MFortranParser2018.g:4861:1: case_value_range_suffix : ( COLON ( case_value )? |);
public final void case_value_range_suffix() throws RecognitionException {
try {
// MFortranParser2018.g:4865:5: ( COLON ( case_value )? |)
int alt431=2;
int LA431_0 = input.LA(1);
if ( (LA431_0==COLON) ) {
alt431=1;
}
else if ( (LA431_0==COMMA||LA431_0==RPAREN) ) {
alt431=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 431, 0, input);
throw nvae;
}
switch (alt431) {
case 1 :
// MFortranParser2018.g:4865:7: COLON ( case_value )?
{
match(input,COLON,FOLLOW_COLON_in_case_value_range_suffix20473); if (state.failed) return;
// MFortranParser2018.g:4865:13: ( case_value )?
int alt430=2;
int LA430_0 = input.LA(1);
if ( (LA430_0==BIN_CONST||LA430_0==CHAR_CONST||(LA430_0 >= DEFINED_OP && LA430_0 <= DIGIT_STR)||LA430_0==FALSE||(LA430_0 >= HEX_CONST && LA430_0 <= IDENT)||LA430_0==LBRACKET||LA430_0==LPAREN||LA430_0==MINUS||LA430_0==M_REAL_CONST||LA430_0==NOT||LA430_0==OCT_CONST||LA430_0==PLUS||LA430_0==TRUE) ) {
alt430=1;
}
switch (alt430) {
case 1 :
// MFortranParser2018.g:4865:15: case_value
{
pushFollow(FOLLOW_case_value_in_case_value_range_suffix20477);
case_value();
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
case 2 :
// MFortranParser2018.g:4866:7:
{
if ( state.backtracking==0 ) { /* empty */ }
}
break;
}
if ( state.backtracking==0 ) {
MFPA.case_value_range_suffix();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "case_value_range_suffix"
// $ANTLR start "case_value_range_list"
// MFortranParser2018.g:4869:1: case_value_range_list : case_value_range ( COMMA case_value_range )* ;
public final void case_value_range_list() throws RecognitionException {
int numCVR = 1;
try {
// MFortranParser2018.g:4876:5: ( case_value_range ( COMMA case_value_range )* )
// MFortranParser2018.g:4876:7: case_value_range ( COMMA case_value_range )*
{
pushFollow(FOLLOW_case_value_range_in_case_value_range_list20513);
case_value_range();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCVR++;}
// MFortranParser2018.g:4877:7: ( COMMA case_value_range )*
loop432:
while (true) {
int alt432=2;
int LA432_0 = input.LA(1);
if ( (LA432_0==COMMA) ) {
alt432=1;
}
switch (alt432) {
case 1 :
// MFortranParser2018.g:4877:9: COMMA case_value_range
{
match(input,COMMA,FOLLOW_COMMA_in_case_value_range_list20525); if (state.failed) return;
pushFollow(FOLLOW_case_value_range_in_case_value_range_list20527);
case_value_range();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCVR++;}
}
break;
default :
break loop432;
}
}
}
if ( state.backtracking==0 ) {
MFPA.case_value_range_list(numCVR);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "case_value_range_list"
// $ANTLR start "case_value"
// MFortranParser2018.g:4884:1: case_value : expr ;
public final void case_value() throws RecognitionException {
try {
// MFortranParser2018.g:4885:5: ( expr )
// MFortranParser2018.g:4885:7: expr
{
pushFollow(FOLLOW_expr_in_case_value20551);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.case_value(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "case_value"
// $ANTLR start "select_rank_construct"
// MFortranParser2018.g:4891:1: select_rank_construct : select_rank_stmt ( select_rank_case_stmt block )* end_select_rank_stmt ;
public final void select_rank_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4892:5: ( select_rank_stmt ( select_rank_case_stmt block )* end_select_rank_stmt )
// MFortranParser2018.g:4892:7: select_rank_stmt ( select_rank_case_stmt block )* end_select_rank_stmt
{
pushFollow(FOLLOW_select_rank_stmt_in_select_rank_construct20572);
select_rank_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4893:7: ( select_rank_case_stmt block )*
loop433:
while (true) {
int alt433=2;
int LA433_0 = input.LA(1);
if ( (LA433_0==DIGIT_STR) ) {
int LA433_1 = input.LA(2);
if ( (LA433_1==RANK) ) {
alt433=1;
}
}
else if ( (LA433_0==RANK) ) {
alt433=1;
}
switch (alt433) {
case 1 :
// MFortranParser2018.g:4893:8: select_rank_case_stmt block
{
pushFollow(FOLLOW_select_rank_case_stmt_in_select_rank_construct20581);
select_rank_case_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_select_rank_construct20583);
block();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop433;
}
}
pushFollow(FOLLOW_end_select_rank_stmt_in_select_rank_construct20593);
end_select_rank_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.select_rank_construct(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "select_rank_construct"
// $ANTLR start "select_rank_stmt"
// MFortranParser2018.g:4901:1: select_rank_stmt : ( (lbl= label )? (sname= IDENT COLON )? SELECT RANK LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt | (lbl= label )? (sname= IDENT COLON )? SELECTRANK LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt );
public final void select_rank_stmt() throws RecognitionException {
Token sname=null;
Token aname=null;
Token SELECT395=null;
Token RANK396=null;
Token SELECTRANK398=null;
Token lbl =null;
Token end_of_stmt397 =null;
Token end_of_stmt399 =null;
try {
// MFortranParser2018.g:4905:5: ( (lbl= label )? (sname= IDENT COLON )? SELECT RANK LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt | (lbl= label )? (sname= IDENT COLON )? SELECTRANK LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt )
int alt440=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case IDENT:
{
int LA440_2 = input.LA(3);
if ( (LA440_2==COLON) ) {
int LA440_5 = input.LA(4);
if ( (LA440_5==SELECT) ) {
alt440=1;
}
else if ( (LA440_5==SELECTRANK) ) {
alt440=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 440, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 440, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECT:
{
alt440=1;
}
break;
case SELECTRANK:
{
alt440=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 440, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENT:
{
int LA440_2 = input.LA(2);
if ( (LA440_2==COLON) ) {
int LA440_5 = input.LA(3);
if ( (LA440_5==SELECT) ) {
alt440=1;
}
else if ( (LA440_5==SELECTRANK) ) {
alt440=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 440, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 440, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECT:
{
alt440=1;
}
break;
case SELECTRANK:
{
alt440=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 440, 0, input);
throw nvae;
}
switch (alt440) {
case 1 :
// MFortranParser2018.g:4905:7: (lbl= label )? (sname= IDENT COLON )? SELECT RANK LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt
{
// MFortranParser2018.g:4905:7: (lbl= label )?
int alt434=2;
int LA434_0 = input.LA(1);
if ( (LA434_0==DIGIT_STR) ) {
alt434=1;
}
switch (alt434) {
case 1 :
// MFortranParser2018.g:4905:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_rank_stmt20629);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4906:7: (sname= IDENT COLON )?
int alt435=2;
int LA435_0 = input.LA(1);
if ( (LA435_0==IDENT) ) {
alt435=1;
}
switch (alt435) {
case 1 :
// MFortranParser2018.g:4906:8: sname= IDENT COLON
{
sname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_rank_stmt20643); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_select_rank_stmt20645); if (state.failed) return;
}
break;
}
SELECT395=(Token)match(input,SELECT,FOLLOW_SELECT_in_select_rank_stmt20655); if (state.failed) return;
RANK396=(Token)match(input,RANK,FOLLOW_RANK_in_select_rank_stmt20657); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_select_rank_stmt20659); if (state.failed) return;
// MFortranParser2018.g:4908:7: (aname= IDENT EQ_GT )?
int alt436=2;
int LA436_0 = input.LA(1);
if ( (LA436_0==IDENT) ) {
int LA436_1 = input.LA(2);
if ( (LA436_1==EQ_GT) ) {
alt436=1;
}
}
switch (alt436) {
case 1 :
// MFortranParser2018.g:4908:8: aname= IDENT EQ_GT
{
aname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_rank_stmt20671); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_select_rank_stmt20673); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_selector_in_select_rank_stmt20677);
selector();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_select_rank_stmt20679); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_select_rank_stmt20687);
end_of_stmt397=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.select_rank_stmt(lbl,
sname, SELECT395, RANK396, aname, end_of_stmt397); }
}
break;
case 2 :
// MFortranParser2018.g:4912:7: (lbl= label )? (sname= IDENT COLON )? SELECTRANK LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt
{
// MFortranParser2018.g:4912:7: (lbl= label )?
int alt437=2;
int LA437_0 = input.LA(1);
if ( (LA437_0==DIGIT_STR) ) {
alt437=1;
}
switch (alt437) {
case 1 :
// MFortranParser2018.g:4912:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_rank_stmt20708);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4913:7: (sname= IDENT COLON )?
int alt438=2;
int LA438_0 = input.LA(1);
if ( (LA438_0==IDENT) ) {
alt438=1;
}
switch (alt438) {
case 1 :
// MFortranParser2018.g:4913:8: sname= IDENT COLON
{
sname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_rank_stmt20723); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_select_rank_stmt20725); if (state.failed) return;
}
break;
}
SELECTRANK398=(Token)match(input,SELECTRANK,FOLLOW_SELECTRANK_in_select_rank_stmt20735); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_select_rank_stmt20737); if (state.failed) return;
// MFortranParser2018.g:4915:7: (aname= IDENT EQ_GT )?
int alt439=2;
int LA439_0 = input.LA(1);
if ( (LA439_0==IDENT) ) {
int LA439_1 = input.LA(2);
if ( (LA439_1==EQ_GT) ) {
alt439=1;
}
}
switch (alt439) {
case 1 :
// MFortranParser2018.g:4915:8: aname= IDENT EQ_GT
{
aname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_rank_stmt20749); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_select_rank_stmt20751); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_selector_in_select_rank_stmt20755);
selector();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_select_rank_stmt20757); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_select_rank_stmt20765);
end_of_stmt399=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.select_rank_stmt(lbl,
sname, SELECTRANK398, null, aname, end_of_stmt399); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "select_rank_stmt"
// $ANTLR start "select_rank_case_stmt"
// MFortranParser2018.g:4924:1: select_rank_case_stmt : ( (lbl= label )? RANK LPAREN expr RPAREN ( IDENT )? | (lbl= label )? RANK LPAREN ASTERISK RPAREN ( IDENT )? | (lbl= label )? RANK DEFAULT ( IDENT )? );
public final void select_rank_case_stmt() throws RecognitionException {
Token IDENT400=null;
Token RANK401=null;
Token IDENT402=null;
Token RANK403=null;
Token ASTERISK404=null;
Token IDENT405=null;
Token RANK406=null;
Token DEFAULT407=null;
Token lbl =null;
Token id = null;
try {
// MFortranParser2018.g:4928:5: ( (lbl= label )? RANK LPAREN expr RPAREN ( IDENT )? | (lbl= label )? RANK LPAREN ASTERISK RPAREN ( IDENT )? | (lbl= label )? RANK DEFAULT ( IDENT )? )
int alt447=3;
int LA447_0 = input.LA(1);
if ( (LA447_0==DIGIT_STR) ) {
int LA447_1 = input.LA(2);
if ( (LA447_1==RANK) ) {
int LA447_2 = input.LA(3);
if ( (LA447_2==LPAREN) ) {
int LA447_3 = input.LA(4);
if ( (LA447_3==ASTERISK) ) {
alt447=2;
}
else if ( (LA447_3==BIN_CONST||LA447_3==CHAR_CONST||(LA447_3 >= DEFINED_OP && LA447_3 <= DIGIT_STR)||LA447_3==FALSE||(LA447_3 >= HEX_CONST && LA447_3 <= IDENT)||LA447_3==LBRACKET||LA447_3==LPAREN||LA447_3==MINUS||LA447_3==M_REAL_CONST||LA447_3==NOT||LA447_3==OCT_CONST||LA447_3==PLUS||LA447_3==TRUE) ) {
alt447=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 447, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA447_2==DEFAULT) ) {
alt447=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 447, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 447, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA447_0==RANK) ) {
int LA447_2 = input.LA(2);
if ( (LA447_2==LPAREN) ) {
int LA447_3 = input.LA(3);
if ( (LA447_3==ASTERISK) ) {
alt447=2;
}
else if ( (LA447_3==BIN_CONST||LA447_3==CHAR_CONST||(LA447_3 >= DEFINED_OP && LA447_3 <= DIGIT_STR)||LA447_3==FALSE||(LA447_3 >= HEX_CONST && LA447_3 <= IDENT)||LA447_3==LBRACKET||LA447_3==LPAREN||LA447_3==MINUS||LA447_3==M_REAL_CONST||LA447_3==NOT||LA447_3==OCT_CONST||LA447_3==PLUS||LA447_3==TRUE) ) {
alt447=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 447, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA447_2==DEFAULT) ) {
alt447=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 447, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 447, 0, input);
throw nvae;
}
switch (alt447) {
case 1 :
// MFortranParser2018.g:4928:7: (lbl= label )? RANK LPAREN expr RPAREN ( IDENT )?
{
// MFortranParser2018.g:4928:7: (lbl= label )?
int alt441=2;
int LA441_0 = input.LA(1);
if ( (LA441_0==DIGIT_STR) ) {
alt441=1;
}
switch (alt441) {
case 1 :
// MFortranParser2018.g:4928:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_rank_case_stmt20801);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
RANK401=(Token)match(input,RANK,FOLLOW_RANK_in_select_rank_case_stmt20813); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_select_rank_case_stmt20815); if (state.failed) return;
pushFollow(FOLLOW_expr_in_select_rank_case_stmt20817);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_select_rank_case_stmt20819); if (state.failed) return;
// MFortranParser2018.g:4929:31: ( IDENT )?
int alt442=2;
int LA442_0 = input.LA(1);
if ( (LA442_0==IDENT) ) {
int LA442_1 = input.LA(2);
if ( (LA442_1==ALLOCATE||LA442_1==ASSOCIATE||LA442_1==BACKSPACE||LA442_1==BLOCK||LA442_1==CALL||LA442_1==CLOSE||LA442_1==CONTINUE||(LA442_1 >= CRITICAL && LA442_1 <= DEALLOCATE)||LA442_1==DIGIT_STR||LA442_1==DO||(LA442_1 >= END && LA442_1 <= ENTRY)||LA442_1==EXIT||LA442_1==FLUSH||LA442_1==FORMAT||(LA442_1 >= GO && LA442_1 <= GOTO)||(LA442_1 >= IDENT && LA442_1 <= IF)||LA442_1==INQUIRE||(LA442_1 >= M_ALLOCATE_STMT_1 && LA442_1 <= M_ASSIGNMENT_STMT)||(LA442_1 >= M_FORALL_CONSTRUCT_STMT && LA442_1 <= M_IF_STMT)||LA442_1==M_INQUIRE_STMT_2||LA442_1==M_PTR_ASSIGNMENT_STMT||(LA442_1 >= M_WHERE_CONSTRUCT_STMT && LA442_1 <= M_WHERE_STMT)||LA442_1==NULLIFY||LA442_1==OPEN||LA442_1==PRAGMA||LA442_1==PRINT||LA442_1==RANK||LA442_1==READ||(LA442_1 >= RETURN && LA442_1 <= REWIND)||(LA442_1 >= SELECT && LA442_1 <= SELECTTYPE)||LA442_1==STOP||LA442_1==SYNC||LA442_1==WAIT||LA442_1==WRITE) ) {
alt442=1;
}
}
switch (alt442) {
case 1 :
// MFortranParser2018.g:4929:33: IDENT
{
IDENT400=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_rank_case_stmt20823); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT400;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.select_rank_case_stmt(lbl, RANK401, null, id); }
}
break;
case 2 :
// MFortranParser2018.g:4931:7: (lbl= label )? RANK LPAREN ASTERISK RPAREN ( IDENT )?
{
// MFortranParser2018.g:4931:7: (lbl= label )?
int alt443=2;
int LA443_0 = input.LA(1);
if ( (LA443_0==DIGIT_STR) ) {
alt443=1;
}
switch (alt443) {
case 1 :
// MFortranParser2018.g:4931:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_rank_case_stmt20849);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
RANK403=(Token)match(input,RANK,FOLLOW_RANK_in_select_rank_case_stmt20860); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_select_rank_case_stmt20862); if (state.failed) return;
ASTERISK404=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_select_rank_case_stmt20864); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_select_rank_case_stmt20866); if (state.failed) return;
// MFortranParser2018.g:4932:35: ( IDENT )?
int alt444=2;
int LA444_0 = input.LA(1);
if ( (LA444_0==IDENT) ) {
int LA444_1 = input.LA(2);
if ( (LA444_1==ALLOCATE||LA444_1==ASSOCIATE||LA444_1==BACKSPACE||LA444_1==BLOCK||LA444_1==CALL||LA444_1==CLOSE||LA444_1==CONTINUE||(LA444_1 >= CRITICAL && LA444_1 <= DEALLOCATE)||LA444_1==DIGIT_STR||LA444_1==DO||(LA444_1 >= END && LA444_1 <= ENTRY)||LA444_1==EXIT||LA444_1==FLUSH||LA444_1==FORMAT||(LA444_1 >= GO && LA444_1 <= GOTO)||(LA444_1 >= IDENT && LA444_1 <= IF)||LA444_1==INQUIRE||(LA444_1 >= M_ALLOCATE_STMT_1 && LA444_1 <= M_ASSIGNMENT_STMT)||(LA444_1 >= M_FORALL_CONSTRUCT_STMT && LA444_1 <= M_IF_STMT)||LA444_1==M_INQUIRE_STMT_2||LA444_1==M_PTR_ASSIGNMENT_STMT||(LA444_1 >= M_WHERE_CONSTRUCT_STMT && LA444_1 <= M_WHERE_STMT)||LA444_1==NULLIFY||LA444_1==OPEN||LA444_1==PRAGMA||LA444_1==PRINT||LA444_1==RANK||LA444_1==READ||(LA444_1 >= RETURN && LA444_1 <= REWIND)||(LA444_1 >= SELECT && LA444_1 <= SELECTTYPE)||LA444_1==STOP||LA444_1==SYNC||LA444_1==WAIT||LA444_1==WRITE) ) {
alt444=1;
}
}
switch (alt444) {
case 1 :
// MFortranParser2018.g:4932:37: IDENT
{
IDENT402=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_rank_case_stmt20870); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT402;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.select_rank_case_stmt(lbl, RANK403, ASTERISK404, id); }
}
break;
case 3 :
// MFortranParser2018.g:4934:7: (lbl= label )? RANK DEFAULT ( IDENT )?
{
// MFortranParser2018.g:4934:7: (lbl= label )?
int alt445=2;
int LA445_0 = input.LA(1);
if ( (LA445_0==DIGIT_STR) ) {
alt445=1;
}
switch (alt445) {
case 1 :
// MFortranParser2018.g:4934:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_rank_case_stmt20895);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
RANK406=(Token)match(input,RANK,FOLLOW_RANK_in_select_rank_case_stmt20906); if (state.failed) return;
DEFAULT407=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_select_rank_case_stmt20908); if (state.failed) return;
// MFortranParser2018.g:4935:20: ( IDENT )?
int alt446=2;
int LA446_0 = input.LA(1);
if ( (LA446_0==IDENT) ) {
int LA446_1 = input.LA(2);
if ( (LA446_1==ALLOCATE||LA446_1==ASSOCIATE||LA446_1==BACKSPACE||LA446_1==BLOCK||LA446_1==CALL||LA446_1==CLOSE||LA446_1==CONTINUE||(LA446_1 >= CRITICAL && LA446_1 <= DEALLOCATE)||LA446_1==DIGIT_STR||LA446_1==DO||(LA446_1 >= END && LA446_1 <= ENTRY)||LA446_1==EXIT||LA446_1==FLUSH||LA446_1==FORMAT||(LA446_1 >= GO && LA446_1 <= GOTO)||(LA446_1 >= IDENT && LA446_1 <= IF)||LA446_1==INQUIRE||(LA446_1 >= M_ALLOCATE_STMT_1 && LA446_1 <= M_ASSIGNMENT_STMT)||(LA446_1 >= M_FORALL_CONSTRUCT_STMT && LA446_1 <= M_IF_STMT)||LA446_1==M_INQUIRE_STMT_2||LA446_1==M_PTR_ASSIGNMENT_STMT||(LA446_1 >= M_WHERE_CONSTRUCT_STMT && LA446_1 <= M_WHERE_STMT)||LA446_1==NULLIFY||LA446_1==OPEN||LA446_1==PRAGMA||LA446_1==PRINT||LA446_1==RANK||LA446_1==READ||(LA446_1 >= RETURN && LA446_1 <= REWIND)||(LA446_1 >= SELECT && LA446_1 <= SELECTTYPE)||LA446_1==STOP||LA446_1==SYNC||LA446_1==WAIT||LA446_1==WRITE) ) {
alt446=1;
}
}
switch (alt446) {
case 1 :
// MFortranParser2018.g:4935:22: IDENT
{
IDENT405=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_rank_case_stmt20912); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT405;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.select_rank_case_stmt(lbl, RANK406, DEFAULT407, id); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "select_rank_case_stmt"
// $ANTLR start "end_select_rank_stmt"
// MFortranParser2018.g:4942:1: end_select_rank_stmt : (lbl= label )? END SELECT ( IDENT )? end_of_stmt ;
public final void end_select_rank_stmt() throws RecognitionException {
Token IDENT408=null;
Token END409=null;
Token SELECT410=null;
Token lbl =null;
Token end_of_stmt411 =null;
Token id=null;
try {
// MFortranParser2018.g:4949:5: ( (lbl= label )? END SELECT ( IDENT )? end_of_stmt )
// MFortranParser2018.g:4949:7: (lbl= label )? END SELECT ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4949:7: (lbl= label )?
int alt448=2;
int LA448_0 = input.LA(1);
if ( (LA448_0==DIGIT_STR) ) {
alt448=1;
}
switch (alt448) {
case 1 :
// MFortranParser2018.g:4949:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_select_rank_stmt20956);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END409=(Token)match(input,END,FOLLOW_END_in_end_select_rank_stmt20968); if (state.failed) return;
SELECT410=(Token)match(input,SELECT,FOLLOW_SELECT_in_end_select_rank_stmt20970); if (state.failed) return;
// MFortranParser2018.g:4950:18: ( IDENT )?
int alt449=2;
int LA449_0 = input.LA(1);
if ( (LA449_0==IDENT) ) {
alt449=1;
}
switch (alt449) {
case 1 :
// MFortranParser2018.g:4950:20: IDENT
{
IDENT408=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_select_rank_stmt20974); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT408;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_select_rank_stmt20988);
end_of_stmt411=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_select_rank_stmt(lbl,
END409, SELECT410, id, end_of_stmt411);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_select_rank_stmt"
// $ANTLR start "select_type_construct"
// MFortranParser2018.g:4959:1: select_type_construct : select_type_stmt ( type_guard_stmt block )* end_select_type_stmt ;
public final void select_type_construct() throws RecognitionException {
try {
// MFortranParser2018.g:4960:5: ( select_type_stmt ( type_guard_stmt block )* end_select_type_stmt )
// MFortranParser2018.g:4960:7: select_type_stmt ( type_guard_stmt block )* end_select_type_stmt
{
pushFollow(FOLLOW_select_type_stmt_in_select_type_construct21017);
select_type_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:4960:24: ( type_guard_stmt block )*
loop450:
while (true) {
int alt450=2;
int LA450_0 = input.LA(1);
if ( (LA450_0==DIGIT_STR) ) {
int LA450_1 = input.LA(2);
if ( (LA450_1==CLASS||LA450_1==TYPE) ) {
alt450=1;
}
}
else if ( (LA450_0==CLASS||LA450_0==TYPE) ) {
alt450=1;
}
switch (alt450) {
case 1 :
// MFortranParser2018.g:4960:26: type_guard_stmt block
{
pushFollow(FOLLOW_type_guard_stmt_in_select_type_construct21021);
type_guard_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_select_type_construct21023);
block();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop450;
}
}
pushFollow(FOLLOW_end_select_type_stmt_in_select_type_construct21035);
end_select_type_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.select_type_construct(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "select_type_construct"
// $ANTLR start "select_type_stmt"
// MFortranParser2018.g:4969:1: select_type_stmt : ( (lbl= label )? (sname= IDENT COLON )? SELECT TYPE LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt | (lbl= label )? (sname= IDENT COLON )? SELECTTYPE LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt );
public final void select_type_stmt() throws RecognitionException {
Token sname=null;
Token aname=null;
Token SELECT412=null;
Token TYPE413=null;
Token SELECTTYPE415=null;
Token lbl =null;
Token end_of_stmt414 =null;
Token end_of_stmt416 =null;
try {
// MFortranParser2018.g:4971:5: ( (lbl= label )? (sname= IDENT COLON )? SELECT TYPE LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt | (lbl= label )? (sname= IDENT COLON )? SELECTTYPE LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt )
int alt457=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case IDENT:
{
int LA457_2 = input.LA(3);
if ( (LA457_2==COLON) ) {
int LA457_5 = input.LA(4);
if ( (LA457_5==SELECT) ) {
alt457=1;
}
else if ( (LA457_5==SELECTTYPE) ) {
alt457=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 457, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 457, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECT:
{
alt457=1;
}
break;
case SELECTTYPE:
{
alt457=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 457, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENT:
{
int LA457_2 = input.LA(2);
if ( (LA457_2==COLON) ) {
int LA457_5 = input.LA(3);
if ( (LA457_5==SELECT) ) {
alt457=1;
}
else if ( (LA457_5==SELECTTYPE) ) {
alt457=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 457, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 457, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SELECT:
{
alt457=1;
}
break;
case SELECTTYPE:
{
alt457=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 457, 0, input);
throw nvae;
}
switch (alt457) {
case 1 :
// MFortranParser2018.g:4971:7: (lbl= label )? (sname= IDENT COLON )? SELECT TYPE LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt
{
// MFortranParser2018.g:4971:7: (lbl= label )?
int alt451=2;
int LA451_0 = input.LA(1);
if ( (LA451_0==DIGIT_STR) ) {
alt451=1;
}
switch (alt451) {
case 1 :
// MFortranParser2018.g:4971:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_type_stmt21072);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4972:7: (sname= IDENT COLON )?
int alt452=2;
int LA452_0 = input.LA(1);
if ( (LA452_0==IDENT) ) {
alt452=1;
}
switch (alt452) {
case 1 :
// MFortranParser2018.g:4972:8: sname= IDENT COLON
{
sname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_type_stmt21085); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_select_type_stmt21087); if (state.failed) return;
}
break;
}
SELECT412=(Token)match(input,SELECT,FOLLOW_SELECT_in_select_type_stmt21098); if (state.failed) return;
TYPE413=(Token)match(input,TYPE,FOLLOW_TYPE_in_select_type_stmt21100); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_select_type_stmt21102); if (state.failed) return;
// MFortranParser2018.g:4974:7: (aname= IDENT EQ_GT )?
int alt453=2;
int LA453_0 = input.LA(1);
if ( (LA453_0==IDENT) ) {
int LA453_1 = input.LA(2);
if ( (LA453_1==EQ_GT) ) {
alt453=1;
}
}
switch (alt453) {
case 1 :
// MFortranParser2018.g:4974:8: aname= IDENT EQ_GT
{
aname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_type_stmt21114); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_select_type_stmt21116); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_selector_in_select_type_stmt21120);
selector();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_select_type_stmt21122); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_select_type_stmt21131);
end_of_stmt414=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.select_type_stmt(lbl,
sname, SELECT412, TYPE413, aname, end_of_stmt414);}
}
break;
case 2 :
// MFortranParser2018.g:4978:7: (lbl= label )? (sname= IDENT COLON )? SELECTTYPE LPAREN (aname= IDENT EQ_GT )? selector RPAREN end_of_stmt
{
// MFortranParser2018.g:4978:7: (lbl= label )?
int alt454=2;
int LA454_0 = input.LA(1);
if ( (LA454_0==DIGIT_STR) ) {
alt454=1;
}
switch (alt454) {
case 1 :
// MFortranParser2018.g:4978:8: lbl= label
{
pushFollow(FOLLOW_label_in_select_type_stmt21152);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:4979:7: (sname= IDENT COLON )?
int alt455=2;
int LA455_0 = input.LA(1);
if ( (LA455_0==IDENT) ) {
alt455=1;
}
switch (alt455) {
case 1 :
// MFortranParser2018.g:4979:8: sname= IDENT COLON
{
sname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_type_stmt21166); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_select_type_stmt21168); if (state.failed) return;
}
break;
}
SELECTTYPE415=(Token)match(input,SELECTTYPE,FOLLOW_SELECTTYPE_in_select_type_stmt21179); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_select_type_stmt21181); if (state.failed) return;
// MFortranParser2018.g:4981:7: (aname= IDENT EQ_GT )?
int alt456=2;
int LA456_0 = input.LA(1);
if ( (LA456_0==IDENT) ) {
int LA456_1 = input.LA(2);
if ( (LA456_1==EQ_GT) ) {
alt456=1;
}
}
switch (alt456) {
case 1 :
// MFortranParser2018.g:4981:8: aname= IDENT EQ_GT
{
aname=(Token)match(input,IDENT,FOLLOW_IDENT_in_select_type_stmt21193); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_select_type_stmt21195); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_selector_in_select_type_stmt21199);
selector();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_select_type_stmt21201); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_select_type_stmt21210);
end_of_stmt416=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.select_type_stmt(lbl,
sname, SELECTTYPE415, null, aname, end_of_stmt416);}
}
break;
}
if ( state.backtracking==0 ) {checkForInclude();}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "select_type_stmt"
// $ANTLR start "type_guard_stmt"
// MFortranParser2018.g:4992:1: type_guard_stmt : ( (lbl= label )? TYPE IS LPAREN type_spec RPAREN ( IDENT )? end_of_stmt | (lbl= label )? CLASS IS LPAREN type_spec RPAREN ( IDENT )? end_of_stmt | (lbl= label )? CLASS DEFAULT ( IDENT )? end_of_stmt );
public final void type_guard_stmt() throws RecognitionException {
Token IDENT417=null;
Token TYPE418=null;
Token IS419=null;
Token IDENT421=null;
Token CLASS422=null;
Token IS423=null;
Token IDENT425=null;
Token CLASS426=null;
Token DEFAULT427=null;
Token lbl =null;
Token end_of_stmt420 =null;
Token end_of_stmt424 =null;
Token end_of_stmt428 =null;
Token sname = null;
try {
// MFortranParser2018.g:4999:5: ( (lbl= label )? TYPE IS LPAREN type_spec RPAREN ( IDENT )? end_of_stmt | (lbl= label )? CLASS IS LPAREN type_spec RPAREN ( IDENT )? end_of_stmt | (lbl= label )? CLASS DEFAULT ( IDENT )? end_of_stmt )
int alt464=3;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA464_1 = input.LA(2);
if ( (LA464_1==TYPE) ) {
alt464=1;
}
else if ( (LA464_1==CLASS) ) {
int LA464_3 = input.LA(3);
if ( (LA464_3==IS) ) {
alt464=2;
}
else if ( (LA464_3==DEFAULT) ) {
alt464=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 464, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 464, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TYPE:
{
alt464=1;
}
break;
case CLASS:
{
int LA464_3 = input.LA(2);
if ( (LA464_3==IS) ) {
alt464=2;
}
else if ( (LA464_3==DEFAULT) ) {
alt464=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 464, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 464, 0, input);
throw nvae;
}
switch (alt464) {
case 1 :
// MFortranParser2018.g:4999:7: (lbl= label )? TYPE IS LPAREN type_spec RPAREN ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:4999:7: (lbl= label )?
int alt458=2;
int LA458_0 = input.LA(1);
if ( (LA458_0==DIGIT_STR) ) {
alt458=1;
}
switch (alt458) {
case 1 :
// MFortranParser2018.g:4999:8: lbl= label
{
pushFollow(FOLLOW_label_in_type_guard_stmt21250);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
TYPE418=(Token)match(input,TYPE,FOLLOW_TYPE_in_type_guard_stmt21262); if (state.failed) return;
IS419=(Token)match(input,IS,FOLLOW_IS_in_type_guard_stmt21264); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_type_guard_stmt21266); if (state.failed) return;
pushFollow(FOLLOW_type_spec_in_type_guard_stmt21268);
type_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_type_guard_stmt21270); if (state.failed) return;
// MFortranParser2018.g:5001:7: ( IDENT )?
int alt459=2;
int LA459_0 = input.LA(1);
if ( (LA459_0==IDENT) ) {
alt459=1;
}
switch (alt459) {
case 1 :
// MFortranParser2018.g:5001:9: IDENT
{
IDENT417=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_guard_stmt21280); if (state.failed) return;
if ( state.backtracking==0 ) {sname=IDENT417;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_type_guard_stmt21294);
end_of_stmt420=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_guard_stmt(lbl,
TYPE418, IS419, sname, end_of_stmt420);}
}
break;
case 2 :
// MFortranParser2018.g:5005:7: (lbl= label )? CLASS IS LPAREN type_spec RPAREN ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:5005:7: (lbl= label )?
int alt460=2;
int LA460_0 = input.LA(1);
if ( (LA460_0==DIGIT_STR) ) {
alt460=1;
}
switch (alt460) {
case 1 :
// MFortranParser2018.g:5005:8: lbl= label
{
pushFollow(FOLLOW_label_in_type_guard_stmt21315);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CLASS422=(Token)match(input,CLASS,FOLLOW_CLASS_in_type_guard_stmt21326); if (state.failed) return;
IS423=(Token)match(input,IS,FOLLOW_IS_in_type_guard_stmt21328); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_type_guard_stmt21330); if (state.failed) return;
pushFollow(FOLLOW_type_spec_in_type_guard_stmt21332);
type_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_type_guard_stmt21334); if (state.failed) return;
// MFortranParser2018.g:5007:7: ( IDENT )?
int alt461=2;
int LA461_0 = input.LA(1);
if ( (LA461_0==IDENT) ) {
alt461=1;
}
switch (alt461) {
case 1 :
// MFortranParser2018.g:5007:9: IDENT
{
IDENT421=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_guard_stmt21344); if (state.failed) return;
if ( state.backtracking==0 ) {sname=IDENT421;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_type_guard_stmt21358);
end_of_stmt424=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_guard_stmt(lbl,
CLASS422, IS423, sname, end_of_stmt424);}
}
break;
case 3 :
// MFortranParser2018.g:5011:7: (lbl= label )? CLASS DEFAULT ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:5011:7: (lbl= label )?
int alt462=2;
int LA462_0 = input.LA(1);
if ( (LA462_0==DIGIT_STR) ) {
alt462=1;
}
switch (alt462) {
case 1 :
// MFortranParser2018.g:5011:8: lbl= label
{
pushFollow(FOLLOW_label_in_type_guard_stmt21379);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CLASS426=(Token)match(input,CLASS,FOLLOW_CLASS_in_type_guard_stmt21391); if (state.failed) return;
DEFAULT427=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_type_guard_stmt21393); if (state.failed) return;
// MFortranParser2018.g:5013:7: ( IDENT )?
int alt463=2;
int LA463_0 = input.LA(1);
if ( (LA463_0==IDENT) ) {
alt463=1;
}
switch (alt463) {
case 1 :
// MFortranParser2018.g:5013:9: IDENT
{
IDENT425=(Token)match(input,IDENT,FOLLOW_IDENT_in_type_guard_stmt21404); if (state.failed) return;
if ( state.backtracking==0 ) {sname=IDENT425;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_type_guard_stmt21417);
end_of_stmt428=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.type_guard_stmt(lbl,
CLASS426, DEFAULT427, sname, end_of_stmt428);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "type_guard_stmt"
// $ANTLR start "end_select_type_stmt"
// MFortranParser2018.g:5023:1: end_select_type_stmt : (lbl= label )? END SELECT ( IDENT )? end_of_stmt ;
public final void end_select_type_stmt() throws RecognitionException {
Token IDENT429=null;
Token END430=null;
Token SELECT431=null;
Token lbl =null;
Token end_of_stmt432 =null;
Token id = null;
try {
// MFortranParser2018.g:5030:5: ( (lbl= label )? END SELECT ( IDENT )? end_of_stmt )
// MFortranParser2018.g:5030:7: (lbl= label )? END SELECT ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:5030:7: (lbl= label )?
int alt465=2;
int LA465_0 = input.LA(1);
if ( (LA465_0==DIGIT_STR) ) {
alt465=1;
}
switch (alt465) {
case 1 :
// MFortranParser2018.g:5030:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_select_type_stmt21457);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END430=(Token)match(input,END,FOLLOW_END_in_end_select_type_stmt21468); if (state.failed) return;
SELECT431=(Token)match(input,SELECT,FOLLOW_SELECT_in_end_select_type_stmt21470); if (state.failed) return;
// MFortranParser2018.g:5031:18: ( IDENT )?
int alt466=2;
int LA466_0 = input.LA(1);
if ( (LA466_0==IDENT) ) {
alt466=1;
}
switch (alt466) {
case 1 :
// MFortranParser2018.g:5031:20: IDENT
{
IDENT429=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_select_type_stmt21474); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT429;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_select_type_stmt21487);
end_of_stmt432=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_select_type_stmt(lbl,
END430, SELECT431, id, end_of_stmt432);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_select_type_stmt"
// $ANTLR start "exit_stmt"
// MFortranParser2018.g:5041:1: exit_stmt : (lbl= label )? EXIT ( IDENT )? end_of_stmt ;
public final void exit_stmt() throws RecognitionException {
Token IDENT433=null;
Token EXIT434=null;
Token lbl =null;
Token end_of_stmt435 =null;
Token id = null;
try {
// MFortranParser2018.g:5048:5: ( (lbl= label )? EXIT ( IDENT )? end_of_stmt )
// MFortranParser2018.g:5048:7: (lbl= label )? EXIT ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:5048:7: (lbl= label )?
int alt467=2;
int LA467_0 = input.LA(1);
if ( (LA467_0==DIGIT_STR) ) {
alt467=1;
}
switch (alt467) {
case 1 :
// MFortranParser2018.g:5048:8: lbl= label
{
pushFollow(FOLLOW_label_in_exit_stmt21527);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
EXIT434=(Token)match(input,EXIT,FOLLOW_EXIT_in_exit_stmt21539); if (state.failed) return;
// MFortranParser2018.g:5049:12: ( IDENT )?
int alt468=2;
int LA468_0 = input.LA(1);
if ( (LA468_0==IDENT) ) {
alt468=1;
}
switch (alt468) {
case 1 :
// MFortranParser2018.g:5049:13: IDENT
{
IDENT433=(Token)match(input,IDENT,FOLLOW_IDENT_in_exit_stmt21542); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT433;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_exit_stmt21555);
end_of_stmt435=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.exit_stmt(lbl,
EXIT434, id, end_of_stmt435); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "exit_stmt"
// $ANTLR start "goto_stmt"
// MFortranParser2018.g:5058:1: goto_stmt : ( (lbl= label )? GO TO DIGIT_STR end_of_stmt | (lbl= label )? GOTO DIGIT_STR end_of_stmt );
public final void goto_stmt() throws RecognitionException {
Token GO436=null;
Token TO437=null;
Token DIGIT_STR438=null;
Token GOTO440=null;
Token DIGIT_STR441=null;
Token lbl =null;
Token end_of_stmt439 =null;
Token end_of_stmt442 =null;
Token toLbl=null;
try {
// MFortranParser2018.g:5065:5: ( (lbl= label )? GO TO DIGIT_STR end_of_stmt | (lbl= label )? GOTO DIGIT_STR end_of_stmt )
int alt471=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA471_1 = input.LA(2);
if ( (LA471_1==GO) ) {
alt471=1;
}
else if ( (LA471_1==GOTO) ) {
alt471=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 471, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GO:
{
alt471=1;
}
break;
case GOTO:
{
alt471=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 471, 0, input);
throw nvae;
}
switch (alt471) {
case 1 :
// MFortranParser2018.g:5065:7: (lbl= label )? GO TO DIGIT_STR end_of_stmt
{
// MFortranParser2018.g:5065:7: (lbl= label )?
int alt469=2;
int LA469_0 = input.LA(1);
if ( (LA469_0==DIGIT_STR) ) {
alt469=1;
}
switch (alt469) {
case 1 :
// MFortranParser2018.g:5065:8: lbl= label
{
pushFollow(FOLLOW_label_in_goto_stmt21595);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
GO436=(Token)match(input,GO,FOLLOW_GO_in_goto_stmt21606); if (state.failed) return;
TO437=(Token)match(input,TO,FOLLOW_TO_in_goto_stmt21608); if (state.failed) return;
DIGIT_STR438=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_goto_stmt21610); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_goto_stmt21619);
end_of_stmt439=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.goto_stmt(lbl,
GO436, TO437, DIGIT_STR438, end_of_stmt439); }
}
break;
case 2 :
// MFortranParser2018.g:5070:7: (lbl= label )? GOTO DIGIT_STR end_of_stmt
{
// MFortranParser2018.g:5070:7: (lbl= label )?
int alt470=2;
int LA470_0 = input.LA(1);
if ( (LA470_0==DIGIT_STR) ) {
alt470=1;
}
switch (alt470) {
case 1 :
// MFortranParser2018.g:5070:8: lbl= label
{
pushFollow(FOLLOW_label_in_goto_stmt21640);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
GOTO440=(Token)match(input,GOTO,FOLLOW_GOTO_in_goto_stmt21651); if (state.failed) return;
DIGIT_STR441=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_goto_stmt21653); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_goto_stmt21662);
end_of_stmt442=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.goto_stmt(lbl,
GOTO440, null, DIGIT_STR441, end_of_stmt442); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "goto_stmt"
// $ANTLR start "computed_goto_stmt"
// MFortranParser2018.g:5080:1: computed_goto_stmt : ( (lbl= label )? GO TO LPAREN label_list RPAREN ( COMMA )? expr end_of_stmt | (lbl= label )? GOTO LPAREN label_list RPAREN ( COMMA )? expr end_of_stmt );
public final void computed_goto_stmt() throws RecognitionException {
Token GO443=null;
Token TO444=null;
Token GOTO446=null;
Token lbl =null;
Token end_of_stmt445 =null;
Token end_of_stmt447 =null;
try {
// MFortranParser2018.g:5084:5: ( (lbl= label )? GO TO LPAREN label_list RPAREN ( COMMA )? expr end_of_stmt | (lbl= label )? GOTO LPAREN label_list RPAREN ( COMMA )? expr end_of_stmt )
int alt476=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA476_1 = input.LA(2);
if ( (LA476_1==GO) ) {
alt476=1;
}
else if ( (LA476_1==GOTO) ) {
alt476=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 476, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GO:
{
alt476=1;
}
break;
case GOTO:
{
alt476=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 476, 0, input);
throw nvae;
}
switch (alt476) {
case 1 :
// MFortranParser2018.g:5084:7: (lbl= label )? GO TO LPAREN label_list RPAREN ( COMMA )? expr end_of_stmt
{
// MFortranParser2018.g:5084:7: (lbl= label )?
int alt472=2;
int LA472_0 = input.LA(1);
if ( (LA472_0==DIGIT_STR) ) {
alt472=1;
}
switch (alt472) {
case 1 :
// MFortranParser2018.g:5084:8: lbl= label
{
pushFollow(FOLLOW_label_in_computed_goto_stmt21698);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
GO443=(Token)match(input,GO,FOLLOW_GO_in_computed_goto_stmt21709); if (state.failed) return;
TO444=(Token)match(input,TO,FOLLOW_TO_in_computed_goto_stmt21711); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_computed_goto_stmt21713); if (state.failed) return;
pushFollow(FOLLOW_label_list_in_computed_goto_stmt21715);
label_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_computed_goto_stmt21717); if (state.failed) return;
// MFortranParser2018.g:5085:38: ( COMMA )?
int alt473=2;
int LA473_0 = input.LA(1);
if ( (LA473_0==COMMA) ) {
alt473=1;
}
switch (alt473) {
case 1 :
// MFortranParser2018.g:5085:40: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_computed_goto_stmt21721); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_expr_in_computed_goto_stmt21726);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_computed_goto_stmt21735);
end_of_stmt445=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.computed_goto_stmt(lbl,
GO443, TO444, end_of_stmt445); }
}
break;
case 2 :
// MFortranParser2018.g:5089:7: (lbl= label )? GOTO LPAREN label_list RPAREN ( COMMA )? expr end_of_stmt
{
// MFortranParser2018.g:5089:7: (lbl= label )?
int alt474=2;
int LA474_0 = input.LA(1);
if ( (LA474_0==DIGIT_STR) ) {
alt474=1;
}
switch (alt474) {
case 1 :
// MFortranParser2018.g:5089:8: lbl= label
{
pushFollow(FOLLOW_label_in_computed_goto_stmt21756);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
GOTO446=(Token)match(input,GOTO,FOLLOW_GOTO_in_computed_goto_stmt21767); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_computed_goto_stmt21769); if (state.failed) return;
pushFollow(FOLLOW_label_list_in_computed_goto_stmt21771);
label_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_computed_goto_stmt21773); if (state.failed) return;
// MFortranParser2018.g:5090:37: ( COMMA )?
int alt475=2;
int LA475_0 = input.LA(1);
if ( (LA475_0==COMMA) ) {
alt475=1;
}
switch (alt475) {
case 1 :
// MFortranParser2018.g:5090:39: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_computed_goto_stmt21777); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_expr_in_computed_goto_stmt21782);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_computed_goto_stmt21792);
end_of_stmt447=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.computed_goto_stmt(lbl,
GOTO446, null, end_of_stmt447); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "computed_goto_stmt"
// $ANTLR start "continue_stmt"
// MFortranParser2018.g:5099:1: continue_stmt : (lbl= label )? CONTINUE end_of_stmt ;
public final void continue_stmt() throws RecognitionException {
Token CONTINUE448=null;
Token lbl =null;
Token end_of_stmt449 =null;
try {
// MFortranParser2018.g:5103:5: ( (lbl= label )? CONTINUE end_of_stmt )
// MFortranParser2018.g:5103:7: (lbl= label )? CONTINUE end_of_stmt
{
// MFortranParser2018.g:5103:7: (lbl= label )?
int alt477=2;
int LA477_0 = input.LA(1);
if ( (LA477_0==DIGIT_STR) ) {
alt477=1;
}
switch (alt477) {
case 1 :
// MFortranParser2018.g:5103:8: lbl= label
{
pushFollow(FOLLOW_label_in_continue_stmt21828);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CONTINUE448=(Token)match(input,CONTINUE,FOLLOW_CONTINUE_in_continue_stmt21839); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_continue_stmt21848);
end_of_stmt449=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.continue_stmt(lbl,
CONTINUE448, end_of_stmt449); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "continue_stmt"
// $ANTLR start "stop_stmt"
// MFortranParser2018.g:5115:1: stop_stmt : (lbl= label )? STOP ( stop_code )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt ;
public final void stop_stmt() throws RecognitionException {
Token quiet=null;
Token STOP450=null;
Token lbl =null;
Token end_of_stmt451 =null;
boolean hasSC = false;
try {
// MFortranParser2018.g:5122:5: ( (lbl= label )? STOP ( stop_code )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt )
// MFortranParser2018.g:5122:7: (lbl= label )? STOP ( stop_code )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt
{
// MFortranParser2018.g:5122:7: (lbl= label )?
int alt478=2;
int LA478_0 = input.LA(1);
if ( (LA478_0==DIGIT_STR) ) {
alt478=1;
}
switch (alt478) {
case 1 :
// MFortranParser2018.g:5122:8: lbl= label
{
pushFollow(FOLLOW_label_in_stop_stmt21889);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
STOP450=(Token)match(input,STOP,FOLLOW_STOP_in_stop_stmt21900); if (state.failed) return;
// MFortranParser2018.g:5123:12: ( stop_code )?
int alt479=2;
int LA479_0 = input.LA(1);
if ( (LA479_0==CHAR_CONST||LA479_0==DIGIT_STR||LA479_0==IDENT) ) {
alt479=1;
}
switch (alt479) {
case 1 :
// MFortranParser2018.g:5123:13: stop_code
{
pushFollow(FOLLOW_stop_code_in_stop_stmt21903);
stop_code();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSC=true;}
}
break;
}
// MFortranParser2018.g:5124:7: ( COMMA quiet= QUIET EQUALS expr )?
int alt480=2;
int LA480_0 = input.LA(1);
if ( (LA480_0==COMMA) ) {
alt480=1;
}
switch (alt480) {
case 1 :
// MFortranParser2018.g:5124:8: COMMA quiet= QUIET EQUALS expr
{
match(input,COMMA,FOLLOW_COMMA_in_stop_stmt21917); if (state.failed) return;
quiet=(Token)match(input,QUIET,FOLLOW_QUIET_in_stop_stmt21921); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_stop_stmt21923); if (state.failed) return;
pushFollow(FOLLOW_expr_in_stop_stmt21925);
expr();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_stop_stmt21935);
end_of_stmt451=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.stop_stmt(lbl,
STOP450, quiet, end_of_stmt451, hasSC); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "stop_stmt"
// $ANTLR start "error_stop_stmt"
// MFortranParser2018.g:5135:1: error_stop_stmt : ( (lbl= label )? ERROR STOP ( stop_code )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt | (lbl= label )? ERRORSTOP ( expr )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt );
public final void error_stop_stmt() throws RecognitionException {
Token quiet=null;
Token ERROR452=null;
Token STOP453=null;
Token ERRORSTOP455=null;
Token lbl =null;
Token end_of_stmt454 =null;
Token end_of_stmt456 =null;
boolean hasSC = false;
try {
// MFortranParser2018.g:5142:5: ( (lbl= label )? ERROR STOP ( stop_code )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt | (lbl= label )? ERRORSTOP ( expr )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt )
int alt487=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA487_1 = input.LA(2);
if ( (LA487_1==ERROR) ) {
alt487=1;
}
else if ( (LA487_1==ERRORSTOP) ) {
alt487=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 487, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ERROR:
{
alt487=1;
}
break;
case ERRORSTOP:
{
alt487=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 487, 0, input);
throw nvae;
}
switch (alt487) {
case 1 :
// MFortranParser2018.g:5142:7: (lbl= label )? ERROR STOP ( stop_code )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt
{
// MFortranParser2018.g:5142:7: (lbl= label )?
int alt481=2;
int LA481_0 = input.LA(1);
if ( (LA481_0==DIGIT_STR) ) {
alt481=1;
}
switch (alt481) {
case 1 :
// MFortranParser2018.g:5142:8: lbl= label
{
pushFollow(FOLLOW_label_in_error_stop_stmt21975);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ERROR452=(Token)match(input,ERROR,FOLLOW_ERROR_in_error_stop_stmt21986); if (state.failed) return;
STOP453=(Token)match(input,STOP,FOLLOW_STOP_in_error_stop_stmt21988); if (state.failed) return;
// MFortranParser2018.g:5143:18: ( stop_code )?
int alt482=2;
int LA482_0 = input.LA(1);
if ( (LA482_0==CHAR_CONST||LA482_0==DIGIT_STR||LA482_0==IDENT) ) {
alt482=1;
}
switch (alt482) {
case 1 :
// MFortranParser2018.g:5143:19: stop_code
{
pushFollow(FOLLOW_stop_code_in_error_stop_stmt21991);
stop_code();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSC=true;}
}
break;
}
// MFortranParser2018.g:5144:7: ( COMMA quiet= QUIET EQUALS expr )?
int alt483=2;
int LA483_0 = input.LA(1);
if ( (LA483_0==COMMA) ) {
alt483=1;
}
switch (alt483) {
case 1 :
// MFortranParser2018.g:5144:8: COMMA quiet= QUIET EQUALS expr
{
match(input,COMMA,FOLLOW_COMMA_in_error_stop_stmt22004); if (state.failed) return;
quiet=(Token)match(input,QUIET,FOLLOW_QUIET_in_error_stop_stmt22008); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_error_stop_stmt22010); if (state.failed) return;
pushFollow(FOLLOW_expr_in_error_stop_stmt22012);
expr();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_error_stop_stmt22022);
end_of_stmt454=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.error_stop_stmt(lbl,
ERROR452, STOP453, quiet, end_of_stmt454, hasSC); }
}
break;
case 2 :
// MFortranParser2018.g:5148:8: (lbl= label )? ERRORSTOP ( expr )? ( COMMA quiet= QUIET EQUALS expr )? end_of_stmt
{
// MFortranParser2018.g:5148:8: (lbl= label )?
int alt484=2;
int LA484_0 = input.LA(1);
if ( (LA484_0==DIGIT_STR) ) {
alt484=1;
}
switch (alt484) {
case 1 :
// MFortranParser2018.g:5148:9: lbl= label
{
pushFollow(FOLLOW_label_in_error_stop_stmt22044);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ERRORSTOP455=(Token)match(input,ERRORSTOP,FOLLOW_ERRORSTOP_in_error_stop_stmt22055); if (state.failed) return;
// MFortranParser2018.g:5149:17: ( expr )?
int alt485=2;
int LA485_0 = input.LA(1);
if ( (LA485_0==BIN_CONST||LA485_0==CHAR_CONST||(LA485_0 >= DEFINED_OP && LA485_0 <= DIGIT_STR)||LA485_0==FALSE||(LA485_0 >= HEX_CONST && LA485_0 <= IDENT)||LA485_0==LBRACKET||LA485_0==LPAREN||LA485_0==MINUS||LA485_0==M_REAL_CONST||LA485_0==NOT||LA485_0==OCT_CONST||LA485_0==PLUS||LA485_0==TRUE) ) {
alt485=1;
}
switch (alt485) {
case 1 :
// MFortranParser2018.g:5149:18: expr
{
pushFollow(FOLLOW_expr_in_error_stop_stmt22058);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSC=true;}
}
break;
}
// MFortranParser2018.g:5150:7: ( COMMA quiet= QUIET EQUALS expr )?
int alt486=2;
int LA486_0 = input.LA(1);
if ( (LA486_0==COMMA) ) {
alt486=1;
}
switch (alt486) {
case 1 :
// MFortranParser2018.g:5150:8: COMMA quiet= QUIET EQUALS expr
{
match(input,COMMA,FOLLOW_COMMA_in_error_stop_stmt22071); if (state.failed) return;
quiet=(Token)match(input,QUIET,FOLLOW_QUIET_in_error_stop_stmt22075); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_error_stop_stmt22077); if (state.failed) return;
pushFollow(FOLLOW_expr_in_error_stop_stmt22079);
expr();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_error_stop_stmt22089);
end_of_stmt456=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.error_stop_stmt(lbl,
ERRORSTOP455, null, quiet, end_of_stmt456, hasSC); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "error_stop_stmt"
// $ANTLR start "stop_code"
// MFortranParser2018.g:5161:1: stop_code : ( char_constant | DIGIT_STR );
public final void stop_code() throws RecognitionException {
Token DIGIT_STR457=null;
try {
// MFortranParser2018.g:5162:5: ( char_constant | DIGIT_STR )
int alt488=2;
int LA488_0 = input.LA(1);
if ( (LA488_0==DIGIT_STR) ) {
int LA488_1 = input.LA(2);
if ( (LA488_1==UNDERSCORE) ) {
alt488=1;
}
else if ( (LA488_1==EOF||LA488_1==COMMA||LA488_1==EOS) ) {
alt488=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 488, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA488_0==CHAR_CONST||LA488_0==IDENT) ) {
alt488=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 488, 0, input);
throw nvae;
}
switch (alt488) {
case 1 :
// MFortranParser2018.g:5162:7: char_constant
{
pushFollow(FOLLOW_char_constant_in_stop_code22118);
char_constant();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.stop_code(null); }
}
break;
case 2 :
// MFortranParser2018.g:5164:7: DIGIT_STR
{
DIGIT_STR457=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_stop_code22136); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.stop_code(DIGIT_STR457); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "stop_code"
// $ANTLR start "sync_all_stmt"
// MFortranParser2018.g:5185:1: sync_all_stmt : ( (lbl= label )? SYNC ALL ( LPAREN RPAREN )? end_of_stmt | (lbl= label )? SYNC ALL LPAREN sync_stat_list RPAREN end_of_stmt );
public final void sync_all_stmt() throws RecognitionException {
Token SYNC458=null;
Token ALL459=null;
Token SYNC461=null;
Token ALL462=null;
Token lbl =null;
Token end_of_stmt460 =null;
Token end_of_stmt463 =null;
boolean hasSSL = false;
try {
// MFortranParser2018.g:5192:5: ( (lbl= label )? SYNC ALL ( LPAREN RPAREN )? end_of_stmt | (lbl= label )? SYNC ALL LPAREN sync_stat_list RPAREN end_of_stmt )
int alt492=2;
int LA492_0 = input.LA(1);
if ( (LA492_0==DIGIT_STR) ) {
int LA492_1 = input.LA(2);
if ( (LA492_1==SYNC) ) {
int LA492_2 = input.LA(3);
if ( (LA492_2==ALL) ) {
int LA492_3 = input.LA(4);
if ( (LA492_3==LPAREN) ) {
int LA492_4 = input.LA(5);
if ( (LA492_4==RPAREN) ) {
alt492=1;
}
else if ( (LA492_4==IDENT) ) {
alt492=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 492, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA492_3==EOF||LA492_3==EOS) ) {
alt492=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 492, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 492, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 492, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA492_0==SYNC) ) {
int LA492_2 = input.LA(2);
if ( (LA492_2==ALL) ) {
int LA492_3 = input.LA(3);
if ( (LA492_3==LPAREN) ) {
int LA492_4 = input.LA(4);
if ( (LA492_4==RPAREN) ) {
alt492=1;
}
else if ( (LA492_4==IDENT) ) {
alt492=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 492, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA492_3==EOF||LA492_3==EOS) ) {
alt492=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 492, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 492, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 492, 0, input);
throw nvae;
}
switch (alt492) {
case 1 :
// MFortranParser2018.g:5192:7: (lbl= label )? SYNC ALL ( LPAREN RPAREN )? end_of_stmt
{
// MFortranParser2018.g:5192:7: (lbl= label )?
int alt489=2;
int LA489_0 = input.LA(1);
if ( (LA489_0==DIGIT_STR) ) {
alt489=1;
}
switch (alt489) {
case 1 :
// MFortranParser2018.g:5192:8: lbl= label
{
pushFollow(FOLLOW_label_in_sync_all_stmt22182);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SYNC458=(Token)match(input,SYNC,FOLLOW_SYNC_in_sync_all_stmt22193); if (state.failed) return;
ALL459=(Token)match(input,ALL,FOLLOW_ALL_in_sync_all_stmt22195); if (state.failed) return;
// MFortranParser2018.g:5193:16: ( LPAREN RPAREN )?
int alt490=2;
int LA490_0 = input.LA(1);
if ( (LA490_0==LPAREN) ) {
alt490=1;
}
switch (alt490) {
case 1 :
// MFortranParser2018.g:5193:17: LPAREN RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_sync_all_stmt22198); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_sync_all_stmt22200); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_sync_all_stmt22211);
end_of_stmt460=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.sync_all_stmt(lbl,
SYNC458, ALL459, end_of_stmt460, hasSSL); }
}
break;
case 2 :
// MFortranParser2018.g:5197:7: (lbl= label )? SYNC ALL LPAREN sync_stat_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5197:7: (lbl= label )?
int alt491=2;
int LA491_0 = input.LA(1);
if ( (LA491_0==DIGIT_STR) ) {
alt491=1;
}
switch (alt491) {
case 1 :
// MFortranParser2018.g:5197:8: lbl= label
{
pushFollow(FOLLOW_label_in_sync_all_stmt22232);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SYNC461=(Token)match(input,SYNC,FOLLOW_SYNC_in_sync_all_stmt22243); if (state.failed) return;
ALL462=(Token)match(input,ALL,FOLLOW_ALL_in_sync_all_stmt22245); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_sync_all_stmt22247); if (state.failed) return;
pushFollow(FOLLOW_sync_stat_list_in_sync_all_stmt22249);
sync_stat_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_sync_all_stmt22251); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_sync_all_stmt22260);
end_of_stmt463=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.sync_all_stmt(lbl,
SYNC461, ALL462, end_of_stmt463, true); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "sync_all_stmt"
// $ANTLR start "sync_stat"
// MFortranParser2018.g:5209:1: sync_stat : IDENT EQUALS expr ;
public final void sync_stat() throws RecognitionException {
Token IDENT464=null;
try {
// MFortranParser2018.g:5210:5: ( IDENT EQUALS expr )
// MFortranParser2018.g:5210:7: IDENT EQUALS expr
{
IDENT464=(Token)match(input,IDENT,FOLLOW_IDENT_in_sync_stat22289); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_sync_stat22291); if (state.failed) return;
pushFollow(FOLLOW_expr_in_sync_stat22293);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.sync_stat(IDENT464); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "sync_stat"
// $ANTLR start "sync_stat_list"
// MFortranParser2018.g:5214:1: sync_stat_list : sync_stat ( COMMA sync_stat )* ;
public final void sync_stat_list() throws RecognitionException {
int numSS = 1;
try {
// MFortranParser2018.g:5221:5: ( sync_stat ( COMMA sync_stat )* )
// MFortranParser2018.g:5221:7: sync_stat ( COMMA sync_stat )*
{
pushFollow(FOLLOW_sync_stat_in_sync_stat_list22328);
sync_stat();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5222:7: ( COMMA sync_stat )*
loop493:
while (true) {
int alt493=2;
int LA493_0 = input.LA(1);
if ( (LA493_0==COMMA) ) {
alt493=1;
}
switch (alt493) {
case 1 :
// MFortranParser2018.g:5222:9: COMMA sync_stat
{
match(input,COMMA,FOLLOW_COMMA_in_sync_stat_list22339); if (state.failed) return;
pushFollow(FOLLOW_sync_stat_in_sync_stat_list22341);
sync_stat();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numSS++;}
}
break;
default :
break loop493;
}
}
}
if ( state.backtracking==0 ) {
MFPA.sync_stat_list(numSS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "sync_stat_list"
// $ANTLR start "sync_images_stmt"
// MFortranParser2018.g:5228:1: sync_images_stmt : (lbl= label )? SYNC IMAGES LPAREN image_set ( COMMA sync_stat_list )? RPAREN end_of_stmt ;
public final void sync_images_stmt() throws RecognitionException {
Token SYNC465=null;
Token IMAGES466=null;
Token lbl =null;
Token end_of_stmt467 =null;
boolean hasSSL = false;
try {
// MFortranParser2018.g:5235:5: ( (lbl= label )? SYNC IMAGES LPAREN image_set ( COMMA sync_stat_list )? RPAREN end_of_stmt )
// MFortranParser2018.g:5235:7: (lbl= label )? SYNC IMAGES LPAREN image_set ( COMMA sync_stat_list )? RPAREN end_of_stmt
{
// MFortranParser2018.g:5235:7: (lbl= label )?
int alt494=2;
int LA494_0 = input.LA(1);
if ( (LA494_0==DIGIT_STR) ) {
alt494=1;
}
switch (alt494) {
case 1 :
// MFortranParser2018.g:5235:8: lbl= label
{
pushFollow(FOLLOW_label_in_sync_images_stmt22376);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SYNC465=(Token)match(input,SYNC,FOLLOW_SYNC_in_sync_images_stmt22387); if (state.failed) return;
IMAGES466=(Token)match(input,IMAGES,FOLLOW_IMAGES_in_sync_images_stmt22389); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_sync_images_stmt22391); if (state.failed) return;
pushFollow(FOLLOW_image_set_in_sync_images_stmt22393);
image_set();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5237:7: ( COMMA sync_stat_list )?
int alt495=2;
int LA495_0 = input.LA(1);
if ( (LA495_0==COMMA) ) {
alt495=1;
}
switch (alt495) {
case 1 :
// MFortranParser2018.g:5237:8: COMMA sync_stat_list
{
match(input,COMMA,FOLLOW_COMMA_in_sync_images_stmt22403); if (state.failed) return;
pushFollow(FOLLOW_sync_stat_list_in_sync_images_stmt22405);
sync_stat_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSSL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_sync_images_stmt22411); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_sync_images_stmt22420);
end_of_stmt467=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.sync_images_stmt(lbl,
SYNC465, IMAGES466, end_of_stmt467, hasSSL); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "sync_images_stmt"
// $ANTLR start "image_set"
// MFortranParser2018.g:5246:1: image_set : ( expr | ASTERISK );
public final void image_set() throws RecognitionException {
Token ASTERISK468=null;
try {
// MFortranParser2018.g:5247:5: ( expr | ASTERISK )
int alt496=2;
int LA496_0 = input.LA(1);
if ( (LA496_0==BIN_CONST||LA496_0==CHAR_CONST||(LA496_0 >= DEFINED_OP && LA496_0 <= DIGIT_STR)||LA496_0==FALSE||(LA496_0 >= HEX_CONST && LA496_0 <= IDENT)||LA496_0==LBRACKET||LA496_0==LPAREN||LA496_0==MINUS||LA496_0==M_REAL_CONST||LA496_0==NOT||LA496_0==OCT_CONST||LA496_0==PLUS||LA496_0==TRUE) ) {
alt496=1;
}
else if ( (LA496_0==ASTERISK) ) {
alt496=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 496, 0, input);
throw nvae;
}
switch (alt496) {
case 1 :
// MFortranParser2018.g:5247:7: expr
{
pushFollow(FOLLOW_expr_in_image_set22449);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.image_set(null); }
}
break;
case 2 :
// MFortranParser2018.g:5248:7: ASTERISK
{
ASTERISK468=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_image_set22459); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.image_set(ASTERISK468); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "image_set"
// $ANTLR start "sync_memory_stmt"
// MFortranParser2018.g:5254:1: sync_memory_stmt : ( (lbl= label )? SYNC MEMORY ( LPAREN RPAREN )? end_of_stmt | (lbl= label )? SYNC MEMORY LPAREN sync_stat_list RPAREN end_of_stmt );
public final void sync_memory_stmt() throws RecognitionException {
Token SYNC469=null;
Token MEMORY470=null;
Token SYNC472=null;
Token MEMORY473=null;
Token lbl =null;
Token end_of_stmt471 =null;
Token end_of_stmt474 =null;
boolean hasSSL = false;
try {
// MFortranParser2018.g:5261:5: ( (lbl= label )? SYNC MEMORY ( LPAREN RPAREN )? end_of_stmt | (lbl= label )? SYNC MEMORY LPAREN sync_stat_list RPAREN end_of_stmt )
int alt500=2;
int LA500_0 = input.LA(1);
if ( (LA500_0==DIGIT_STR) ) {
int LA500_1 = input.LA(2);
if ( (LA500_1==SYNC) ) {
int LA500_2 = input.LA(3);
if ( (LA500_2==MEMORY) ) {
int LA500_3 = input.LA(4);
if ( (LA500_3==LPAREN) ) {
int LA500_4 = input.LA(5);
if ( (LA500_4==RPAREN) ) {
alt500=1;
}
else if ( (LA500_4==IDENT) ) {
alt500=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 500, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA500_3==EOF||LA500_3==EOS) ) {
alt500=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 500, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 500, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 500, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA500_0==SYNC) ) {
int LA500_2 = input.LA(2);
if ( (LA500_2==MEMORY) ) {
int LA500_3 = input.LA(3);
if ( (LA500_3==LPAREN) ) {
int LA500_4 = input.LA(4);
if ( (LA500_4==RPAREN) ) {
alt500=1;
}
else if ( (LA500_4==IDENT) ) {
alt500=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 500, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA500_3==EOF||LA500_3==EOS) ) {
alt500=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 500, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 500, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 500, 0, input);
throw nvae;
}
switch (alt500) {
case 1 :
// MFortranParser2018.g:5261:7: (lbl= label )? SYNC MEMORY ( LPAREN RPAREN )? end_of_stmt
{
// MFortranParser2018.g:5261:7: (lbl= label )?
int alt497=2;
int LA497_0 = input.LA(1);
if ( (LA497_0==DIGIT_STR) ) {
alt497=1;
}
switch (alt497) {
case 1 :
// MFortranParser2018.g:5261:8: lbl= label
{
pushFollow(FOLLOW_label_in_sync_memory_stmt22491);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SYNC469=(Token)match(input,SYNC,FOLLOW_SYNC_in_sync_memory_stmt22503); if (state.failed) return;
MEMORY470=(Token)match(input,MEMORY,FOLLOW_MEMORY_in_sync_memory_stmt22505); if (state.failed) return;
// MFortranParser2018.g:5262:19: ( LPAREN RPAREN )?
int alt498=2;
int LA498_0 = input.LA(1);
if ( (LA498_0==LPAREN) ) {
alt498=1;
}
switch (alt498) {
case 1 :
// MFortranParser2018.g:5262:20: LPAREN RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_sync_memory_stmt22508); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_sync_memory_stmt22510); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_sync_memory_stmt22521);
end_of_stmt471=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.sync_memory_stmt(lbl,
SYNC469, MEMORY470, end_of_stmt471, hasSSL); }
}
break;
case 2 :
// MFortranParser2018.g:5266:7: (lbl= label )? SYNC MEMORY LPAREN sync_stat_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5266:7: (lbl= label )?
int alt499=2;
int LA499_0 = input.LA(1);
if ( (LA499_0==DIGIT_STR) ) {
alt499=1;
}
switch (alt499) {
case 1 :
// MFortranParser2018.g:5266:8: lbl= label
{
pushFollow(FOLLOW_label_in_sync_memory_stmt22542);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SYNC472=(Token)match(input,SYNC,FOLLOW_SYNC_in_sync_memory_stmt22554); if (state.failed) return;
MEMORY473=(Token)match(input,MEMORY,FOLLOW_MEMORY_in_sync_memory_stmt22556); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_sync_memory_stmt22558); if (state.failed) return;
pushFollow(FOLLOW_sync_stat_list_in_sync_memory_stmt22560);
sync_stat_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_sync_memory_stmt22562); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_sync_memory_stmt22571);
end_of_stmt474=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.sync_memory_stmt(lbl,
SYNC472, MEMORY473, end_of_stmt474, true); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "sync_memory_stmt"
// $ANTLR start "io_unit"
// MFortranParser2018.g:5525:1: io_unit : ( expr |asterisk= ASTERISK );
public final void io_unit() throws RecognitionException {
Token asterisk=null;
try {
// MFortranParser2018.g:5529:5: ( expr |asterisk= ASTERISK )
int alt501=2;
int LA501_0 = input.LA(1);
if ( (LA501_0==BIN_CONST||LA501_0==CHAR_CONST||(LA501_0 >= DEFINED_OP && LA501_0 <= DIGIT_STR)||LA501_0==FALSE||(LA501_0 >= HEX_CONST && LA501_0 <= IDENT)||LA501_0==LBRACKET||LA501_0==LPAREN||LA501_0==MINUS||LA501_0==M_REAL_CONST||LA501_0==NOT||LA501_0==OCT_CONST||LA501_0==PLUS||LA501_0==TRUE) ) {
alt501=1;
}
else if ( (LA501_0==ASTERISK) ) {
alt501=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 501, 0, input);
throw nvae;
}
switch (alt501) {
case 1 :
// MFortranParser2018.g:5529:7: expr
{
pushFollow(FOLLOW_expr_in_io_unit22664);
expr();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:5530:7: asterisk= ASTERISK
{
asterisk=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_io_unit22674); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.io_unit(asterisk);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "io_unit"
// $ANTLR start "file_unit_number"
// MFortranParser2018.g:5537:1: file_unit_number : expr ;
public final void file_unit_number() throws RecognitionException {
try {
// MFortranParser2018.g:5541:5: ( expr )
// MFortranParser2018.g:5541:7: expr
{
pushFollow(FOLLOW_expr_in_file_unit_number22697);
expr();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.file_unit_number();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "file_unit_number"
// $ANTLR start "open_stmt"
// MFortranParser2018.g:5552:1: open_stmt : (lbl= label )? OPEN LPAREN connect_spec_list RPAREN end_of_stmt ;
public final void open_stmt() throws RecognitionException {
Token OPEN475=null;
Token lbl =null;
Token end_of_stmt476 =null;
try {
// MFortranParser2018.g:5558:5: ( (lbl= label )? OPEN LPAREN connect_spec_list RPAREN end_of_stmt )
// MFortranParser2018.g:5558:7: (lbl= label )? OPEN LPAREN connect_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5558:7: (lbl= label )?
int alt502=2;
int LA502_0 = input.LA(1);
if ( (LA502_0==DIGIT_STR) ) {
alt502=1;
}
switch (alt502) {
case 1 :
// MFortranParser2018.g:5558:8: lbl= label
{
pushFollow(FOLLOW_label_in_open_stmt22730);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
OPEN475=(Token)match(input,OPEN,FOLLOW_OPEN_in_open_stmt22742); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_open_stmt22744); if (state.failed) return;
pushFollow(FOLLOW_connect_spec_list_in_open_stmt22746);
connect_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_open_stmt22748); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_open_stmt22757);
end_of_stmt476=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.open_stmt(lbl,
OPEN475, end_of_stmt476);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "open_stmt"
// $ANTLR start "connect_spec"
// MFortranParser2018.g:5574:1: connect_spec : ( expr | IDENT EQUALS expr );
public final void connect_spec() throws RecognitionException {
Token IDENT477=null;
try {
// MFortranParser2018.g:5575:5: ( expr | IDENT EQUALS expr )
int alt503=2;
int LA503_0 = input.LA(1);
if ( (LA503_0==BIN_CONST||LA503_0==CHAR_CONST||(LA503_0 >= DEFINED_OP && LA503_0 <= DIGIT_STR)||LA503_0==FALSE||LA503_0==HEX_CONST||LA503_0==LBRACKET||LA503_0==LPAREN||LA503_0==MINUS||LA503_0==M_REAL_CONST||LA503_0==NOT||LA503_0==OCT_CONST||LA503_0==PLUS||LA503_0==TRUE) ) {
alt503=1;
}
else if ( (LA503_0==IDENT) ) {
int LA503_2 = input.LA(2);
if ( (LA503_2==AND||LA503_2==ASTERISK||LA503_2==CHAR_CONST||LA503_2==COMMA||LA503_2==DEFINED_OP||LA503_2==EQ||(LA503_2 >= EQV && LA503_2 <= EQ_EQ)||LA503_2==GE||(LA503_2 >= GREATERTHAN && LA503_2 <= GT)||(LA503_2 >= LBRACKET && LA503_2 <= LE)||(LA503_2 >= LESSTHAN && LA503_2 <= LESSTHAN_EQ)||(LA503_2 >= LPAREN && LA503_2 <= LT)||LA503_2==MINUS||(LA503_2 >= NE && LA503_2 <= NEQV)||LA503_2==OR||LA503_2==PERCENT||LA503_2==PLUS||LA503_2==POWER||LA503_2==RPAREN||(LA503_2 >= SLASH && LA503_2 <= SLASH_SLASH)) ) {
alt503=1;
}
else if ( (LA503_2==EQUALS) ) {
alt503=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 503, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 503, 0, input);
throw nvae;
}
switch (alt503) {
case 1 :
// MFortranParser2018.g:5575:7: expr
{
pushFollow(FOLLOW_expr_in_connect_spec22786);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.connect_spec(null); }
}
break;
case 2 :
// MFortranParser2018.g:5577:7: IDENT EQUALS expr
{
IDENT477=(Token)match(input,IDENT,FOLLOW_IDENT_in_connect_spec22804); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_connect_spec22806); if (state.failed) return;
pushFollow(FOLLOW_expr_in_connect_spec22808);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.connect_spec(IDENT477); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "connect_spec"
// $ANTLR start "connect_spec_list"
// MFortranParser2018.g:5581:1: connect_spec_list : connect_spec ( COMMA connect_spec )* ;
public final void connect_spec_list() throws RecognitionException {
int numCS = 1;
try {
// MFortranParser2018.g:5588:5: ( connect_spec ( COMMA connect_spec )* )
// MFortranParser2018.g:5588:7: connect_spec ( COMMA connect_spec )*
{
pushFollow(FOLLOW_connect_spec_in_connect_spec_list22843);
connect_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5589:7: ( COMMA connect_spec )*
loop504:
while (true) {
int alt504=2;
int LA504_0 = input.LA(1);
if ( (LA504_0==COMMA) ) {
alt504=1;
}
switch (alt504) {
case 1 :
// MFortranParser2018.g:5589:9: COMMA connect_spec
{
match(input,COMMA,FOLLOW_COMMA_in_connect_spec_list22853); if (state.failed) return;
pushFollow(FOLLOW_connect_spec_in_connect_spec_list22855);
connect_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCS++;}
}
break;
default :
break loop504;
}
}
}
if ( state.backtracking==0 ) {
MFPA.connect_spec_list(numCS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "connect_spec_list"
// $ANTLR start "close_stmt"
// MFortranParser2018.g:5606:1: close_stmt : (lbl= label )? CLOSE LPAREN close_spec_list RPAREN end_of_stmt ;
public final void close_stmt() throws RecognitionException {
Token CLOSE478=null;
Token lbl =null;
Token end_of_stmt479 =null;
try {
// MFortranParser2018.g:5612:5: ( (lbl= label )? CLOSE LPAREN close_spec_list RPAREN end_of_stmt )
// MFortranParser2018.g:5612:7: (lbl= label )? CLOSE LPAREN close_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5612:7: (lbl= label )?
int alt505=2;
int LA505_0 = input.LA(1);
if ( (LA505_0==DIGIT_STR) ) {
alt505=1;
}
switch (alt505) {
case 1 :
// MFortranParser2018.g:5612:8: lbl= label
{
pushFollow(FOLLOW_label_in_close_stmt22896);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CLOSE478=(Token)match(input,CLOSE,FOLLOW_CLOSE_in_close_stmt22907); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_close_stmt22909); if (state.failed) return;
pushFollow(FOLLOW_close_spec_list_in_close_stmt22911);
close_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_close_stmt22913); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_close_stmt22922);
end_of_stmt479=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.close_stmt(lbl,
CLOSE478, end_of_stmt479);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "close_stmt"
// $ANTLR start "close_spec"
// MFortranParser2018.g:5625:1: close_spec : ( expr | IDENT EQUALS expr );
public final void close_spec() throws RecognitionException {
Token IDENT480=null;
try {
// MFortranParser2018.g:5626:5: ( expr | IDENT EQUALS expr )
int alt506=2;
int LA506_0 = input.LA(1);
if ( (LA506_0==BIN_CONST||LA506_0==CHAR_CONST||(LA506_0 >= DEFINED_OP && LA506_0 <= DIGIT_STR)||LA506_0==FALSE||LA506_0==HEX_CONST||LA506_0==LBRACKET||LA506_0==LPAREN||LA506_0==MINUS||LA506_0==M_REAL_CONST||LA506_0==NOT||LA506_0==OCT_CONST||LA506_0==PLUS||LA506_0==TRUE) ) {
alt506=1;
}
else if ( (LA506_0==IDENT) ) {
int LA506_2 = input.LA(2);
if ( (LA506_2==AND||LA506_2==ASTERISK||LA506_2==CHAR_CONST||LA506_2==COMMA||LA506_2==DEFINED_OP||LA506_2==EQ||(LA506_2 >= EQV && LA506_2 <= EQ_EQ)||LA506_2==GE||(LA506_2 >= GREATERTHAN && LA506_2 <= GT)||(LA506_2 >= LBRACKET && LA506_2 <= LE)||(LA506_2 >= LESSTHAN && LA506_2 <= LESSTHAN_EQ)||(LA506_2 >= LPAREN && LA506_2 <= LT)||LA506_2==MINUS||(LA506_2 >= NE && LA506_2 <= NEQV)||LA506_2==OR||LA506_2==PERCENT||LA506_2==PLUS||LA506_2==POWER||LA506_2==RPAREN||(LA506_2 >= SLASH && LA506_2 <= SLASH_SLASH)) ) {
alt506=1;
}
else if ( (LA506_2==EQUALS) ) {
alt506=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 506, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 506, 0, input);
throw nvae;
}
switch (alt506) {
case 1 :
// MFortranParser2018.g:5626:7: expr
{
pushFollow(FOLLOW_expr_in_close_spec22952);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.close_spec(null); }
}
break;
case 2 :
// MFortranParser2018.g:5628:7: IDENT EQUALS expr
{
IDENT480=(Token)match(input,IDENT,FOLLOW_IDENT_in_close_spec22970); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_close_spec22972); if (state.failed) return;
pushFollow(FOLLOW_expr_in_close_spec22974);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.close_spec(IDENT480); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "close_spec"
// $ANTLR start "close_spec_list"
// MFortranParser2018.g:5632:1: close_spec_list : close_spec ( COMMA close_spec )* ;
public final void close_spec_list() throws RecognitionException {
int numCS = 1;
try {
// MFortranParser2018.g:5636:5: ( close_spec ( COMMA close_spec )* )
// MFortranParser2018.g:5636:7: close_spec ( COMMA close_spec )*
{
pushFollow(FOLLOW_close_spec_in_close_spec_list23005);
close_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5637:7: ( COMMA close_spec )*
loop507:
while (true) {
int alt507=2;
int LA507_0 = input.LA(1);
if ( (LA507_0==COMMA) ) {
alt507=1;
}
switch (alt507) {
case 1 :
// MFortranParser2018.g:5637:9: COMMA close_spec
{
match(input,COMMA,FOLLOW_COMMA_in_close_spec_list23015); if (state.failed) return;
pushFollow(FOLLOW_close_spec_in_close_spec_list23017);
close_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numCS++;}
}
break;
default :
break loop507;
}
}
if ( state.backtracking==0 ) { MFPA.close_spec_list(numCS); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "close_spec_list"
// $ANTLR start "read_stmt"
// MFortranParser2018.g:5644:1: read_stmt options {k=3; } : ( ( ( label )? READ LPAREN )=> (lbl= label )? READ LPAREN io_control_spec_list RPAREN ( input_item_list )? end_of_stmt | ( ( label )? READ )=> (lbl= label )? READ format ( COMMA input_item_list )? end_of_stmt );
public final void read_stmt() throws RecognitionException {
Token READ481=null;
Token READ483=null;
Token lbl =null;
Token end_of_stmt482 =null;
Token end_of_stmt484 =null;
boolean hasIIL = false;
try {
// MFortranParser2018.g:5652:5: ( ( ( label )? READ LPAREN )=> (lbl= label )? READ LPAREN io_control_spec_list RPAREN ( input_item_list )? end_of_stmt | ( ( label )? READ )=> (lbl= label )? READ format ( COMMA input_item_list )? end_of_stmt )
int alt512=2;
int LA512_0 = input.LA(1);
if ( (LA512_0==DIGIT_STR) ) {
int LA512_1 = input.LA(2);
if ( (LA512_1==READ) ) {
int LA512_3 = input.LA(3);
if ( (LA512_3==LPAREN) ) {
int LA512_20 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 20, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_3==NOT) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==PLUS) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==MINUS) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==DEFINED_OP) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==IDENT) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==DIGIT_STR) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==CHAR_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==M_REAL_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==TRUE) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==FALSE) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==BIN_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==OCT_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==HEX_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==LBRACKET) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_3==ASTERISK) && (synpred59_MFortranParser2018())) {
alt512=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 512, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_0==READ) ) {
int LA512_2 = input.LA(2);
if ( (LA512_2==LPAREN) ) {
int LA512_4 = input.LA(3);
if ( (LA512_4==SLASH) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_4==NOT) ) {
int LA512_37 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 37, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==PLUS) ) {
int LA512_38 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 38, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==MINUS) ) {
int LA512_39 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 39, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==DEFINED_OP) ) {
int LA512_40 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 40, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==IDENT) ) {
int LA512_41 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 41, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==DIGIT_STR) ) {
int LA512_42 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 42, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==CHAR_CONST) ) {
int LA512_43 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 43, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==M_REAL_CONST) ) {
int LA512_44 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 44, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==LPAREN) ) {
int LA512_45 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 45, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==TRUE) ) {
int LA512_46 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 46, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==FALSE) ) {
int LA512_47 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 47, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==BIN_CONST) ) {
int LA512_48 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 48, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==OCT_CONST) ) {
int LA512_49 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 49, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==HEX_CONST) ) {
int LA512_50 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 50, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==LBRACKET) ) {
int LA512_51 = input.LA(4);
if ( (synpred58_MFortranParser2018()) ) {
alt512=1;
}
else if ( (synpred59_MFortranParser2018()) ) {
alt512=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 512, 51, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA512_4==ASTERISK) && (synpred58_MFortranParser2018())) {
alt512=1;
}
}
else if ( (LA512_2==NOT) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==PLUS) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==MINUS) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==DEFINED_OP) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==IDENT) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==DIGIT_STR) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==CHAR_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==M_REAL_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==TRUE) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==FALSE) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==BIN_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==OCT_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==HEX_CONST) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==LBRACKET) && (synpred59_MFortranParser2018())) {
alt512=2;
}
else if ( (LA512_2==ASTERISK) && (synpred59_MFortranParser2018())) {
alt512=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 512, 0, input);
throw nvae;
}
switch (alt512) {
case 1 :
// MFortranParser2018.g:5652:7: ( ( label )? READ LPAREN )=> (lbl= label )? READ LPAREN io_control_spec_list RPAREN ( input_item_list )? end_of_stmt
{
// MFortranParser2018.g:5653:11: (lbl= label )?
int alt508=2;
int LA508_0 = input.LA(1);
if ( (LA508_0==DIGIT_STR) ) {
alt508=1;
}
switch (alt508) {
case 1 :
// MFortranParser2018.g:5653:12: lbl= label
{
pushFollow(FOLLOW_label_in_read_stmt23092);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
READ481=(Token)match(input,READ,FOLLOW_READ_in_read_stmt23108); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_read_stmt23110); if (state.failed) return;
pushFollow(FOLLOW_io_control_spec_list_in_read_stmt23112);
io_control_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_read_stmt23114); if (state.failed) return;
// MFortranParser2018.g:5655:11: ( input_item_list )?
int alt509=2;
int LA509_0 = input.LA(1);
if ( (LA509_0==CHAR_CONST||LA509_0==DIGIT_STR||LA509_0==IDENT||LA509_0==LPAREN) ) {
alt509=1;
}
switch (alt509) {
case 1 :
// MFortranParser2018.g:5655:13: input_item_list
{
pushFollow(FOLLOW_input_item_list_in_read_stmt23128);
input_item_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasIIL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_read_stmt23144);
end_of_stmt482=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.read_stmt(lbl,
READ481, end_of_stmt482, hasIIL);}
}
break;
case 2 :
// MFortranParser2018.g:5659:7: ( ( label )? READ )=> (lbl= label )? READ format ( COMMA input_item_list )? end_of_stmt
{
// MFortranParser2018.g:5660:11: (lbl= label )?
int alt510=2;
int LA510_0 = input.LA(1);
if ( (LA510_0==DIGIT_STR) ) {
alt510=1;
}
switch (alt510) {
case 1 :
// MFortranParser2018.g:5660:12: lbl= label
{
pushFollow(FOLLOW_label_in_read_stmt23190);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
READ483=(Token)match(input,READ,FOLLOW_READ_in_read_stmt23206); if (state.failed) return;
pushFollow(FOLLOW_format_in_read_stmt23208);
format();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5662:11: ( COMMA input_item_list )?
int alt511=2;
int LA511_0 = input.LA(1);
if ( (LA511_0==COMMA) ) {
alt511=1;
}
switch (alt511) {
case 1 :
// MFortranParser2018.g:5662:13: COMMA input_item_list
{
match(input,COMMA,FOLLOW_COMMA_in_read_stmt23223); if (state.failed) return;
pushFollow(FOLLOW_input_item_list_in_read_stmt23225);
input_item_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasIIL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_read_stmt23243);
end_of_stmt484=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.read_stmt(lbl,
READ483, end_of_stmt484, hasIIL);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "read_stmt"
// $ANTLR start "write_stmt"
// MFortranParser2018.g:5671:1: write_stmt : (lbl= label )? WRITE LPAREN io_control_spec_list RPAREN ( output_item_list )? end_of_stmt ;
public final void write_stmt() throws RecognitionException {
Token WRITE485=null;
Token lbl =null;
Token end_of_stmt486 =null;
boolean hasOIL=false;
try {
// MFortranParser2018.g:5678:5: ( (lbl= label )? WRITE LPAREN io_control_spec_list RPAREN ( output_item_list )? end_of_stmt )
// MFortranParser2018.g:5678:7: (lbl= label )? WRITE LPAREN io_control_spec_list RPAREN ( output_item_list )? end_of_stmt
{
// MFortranParser2018.g:5678:7: (lbl= label )?
int alt513=2;
int LA513_0 = input.LA(1);
if ( (LA513_0==DIGIT_STR) ) {
alt513=1;
}
switch (alt513) {
case 1 :
// MFortranParser2018.g:5678:8: lbl= label
{
pushFollow(FOLLOW_label_in_write_stmt23287);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
WRITE485=(Token)match(input,WRITE,FOLLOW_WRITE_in_write_stmt23298); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_write_stmt23300); if (state.failed) return;
pushFollow(FOLLOW_io_control_spec_list_in_write_stmt23302);
io_control_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_write_stmt23304); if (state.failed) return;
// MFortranParser2018.g:5680:7: ( output_item_list )?
int alt514=2;
int LA514_0 = input.LA(1);
if ( (LA514_0==BIN_CONST||LA514_0==CHAR_CONST||(LA514_0 >= DEFINED_OP && LA514_0 <= DIGIT_STR)||LA514_0==FALSE||(LA514_0 >= HEX_CONST && LA514_0 <= IDENT)||LA514_0==LBRACKET||LA514_0==LPAREN||LA514_0==MINUS||LA514_0==M_REAL_CONST||LA514_0==NOT||LA514_0==OCT_CONST||LA514_0==PLUS||LA514_0==TRUE) ) {
alt514=1;
}
switch (alt514) {
case 1 :
// MFortranParser2018.g:5680:9: output_item_list
{
pushFollow(FOLLOW_output_item_list_in_write_stmt23314);
output_item_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasOIL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_write_stmt23327);
end_of_stmt486=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.write_stmt(lbl,
WRITE485, end_of_stmt486, hasOIL); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "write_stmt"
// $ANTLR start "print_stmt"
// MFortranParser2018.g:5689:1: print_stmt : (lbl= label )? PRINT format ( COMMA output_item_list )? end_of_stmt ;
public final void print_stmt() throws RecognitionException {
Token PRINT487=null;
Token lbl =null;
Token end_of_stmt488 =null;
boolean hasOIL =false;
try {
// MFortranParser2018.g:5696:5: ( (lbl= label )? PRINT format ( COMMA output_item_list )? end_of_stmt )
// MFortranParser2018.g:5696:7: (lbl= label )? PRINT format ( COMMA output_item_list )? end_of_stmt
{
// MFortranParser2018.g:5696:7: (lbl= label )?
int alt515=2;
int LA515_0 = input.LA(1);
if ( (LA515_0==DIGIT_STR) ) {
alt515=1;
}
switch (alt515) {
case 1 :
// MFortranParser2018.g:5696:8: lbl= label
{
pushFollow(FOLLOW_label_in_print_stmt23367);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PRINT487=(Token)match(input,PRINT,FOLLOW_PRINT_in_print_stmt23378); if (state.failed) return;
pushFollow(FOLLOW_format_in_print_stmt23380);
format();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5698:7: ( COMMA output_item_list )?
int alt516=2;
int LA516_0 = input.LA(1);
if ( (LA516_0==COMMA) ) {
alt516=1;
}
switch (alt516) {
case 1 :
// MFortranParser2018.g:5698:9: COMMA output_item_list
{
match(input,COMMA,FOLLOW_COMMA_in_print_stmt23391); if (state.failed) return;
pushFollow(FOLLOW_output_item_list_in_print_stmt23393);
output_item_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasOIL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_print_stmt23406);
end_of_stmt488=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.print_stmt(lbl,
PRINT487, end_of_stmt488, hasOIL); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "print_stmt"
// $ANTLR start "io_control_spec"
// MFortranParser2018.g:5711:1: io_control_spec : ( expr | ASTERISK | IDENT EQUALS ASTERISK | IDENT EQUALS expr );
public final void io_control_spec() throws RecognitionException {
Token ASTERISK489=null;
Token IDENT490=null;
Token ASTERISK491=null;
Token IDENT492=null;
try {
// MFortranParser2018.g:5712:5: ( expr | ASTERISK | IDENT EQUALS ASTERISK | IDENT EQUALS expr )
int alt517=4;
switch ( input.LA(1) ) {
case BIN_CONST:
case CHAR_CONST:
case DEFINED_OP:
case DIGIT_STR:
case FALSE:
case HEX_CONST:
case LBRACKET:
case LPAREN:
case MINUS:
case M_REAL_CONST:
case NOT:
case OCT_CONST:
case PLUS:
case TRUE:
{
alt517=1;
}
break;
case IDENT:
{
int LA517_2 = input.LA(2);
if ( (LA517_2==AND||LA517_2==ASTERISK||LA517_2==CHAR_CONST||LA517_2==COMMA||LA517_2==DEFINED_OP||LA517_2==EQ||(LA517_2 >= EQV && LA517_2 <= EQ_EQ)||LA517_2==GE||(LA517_2 >= GREATERTHAN && LA517_2 <= GT)||(LA517_2 >= LBRACKET && LA517_2 <= LE)||(LA517_2 >= LESSTHAN && LA517_2 <= LESSTHAN_EQ)||(LA517_2 >= LPAREN && LA517_2 <= LT)||LA517_2==MINUS||(LA517_2 >= NE && LA517_2 <= NEQV)||LA517_2==OR||LA517_2==PERCENT||LA517_2==PLUS||LA517_2==POWER||LA517_2==RPAREN||(LA517_2 >= SLASH && LA517_2 <= SLASH_SLASH)) ) {
alt517=1;
}
else if ( (LA517_2==EQUALS) ) {
int LA517_4 = input.LA(3);
if ( (LA517_4==ASTERISK) ) {
alt517=3;
}
else if ( (LA517_4==BIN_CONST||LA517_4==CHAR_CONST||(LA517_4 >= DEFINED_OP && LA517_4 <= DIGIT_STR)||LA517_4==FALSE||(LA517_4 >= HEX_CONST && LA517_4 <= IDENT)||LA517_4==LBRACKET||LA517_4==LPAREN||LA517_4==MINUS||LA517_4==M_REAL_CONST||LA517_4==NOT||LA517_4==OCT_CONST||LA517_4==PLUS||LA517_4==TRUE) ) {
alt517=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 517, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 517, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ASTERISK:
{
alt517=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 517, 0, input);
throw nvae;
}
switch (alt517) {
case 1 :
// MFortranParser2018.g:5712:7: expr
{
pushFollow(FOLLOW_expr_in_io_control_spec23435);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.io_control_spec(null, null);
}
}
break;
case 2 :
// MFortranParser2018.g:5715:7: ASTERISK
{
ASTERISK489=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_io_control_spec23455); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.io_control_spec(null, ASTERISK489);
}
}
break;
case 3 :
// MFortranParser2018.g:5718:7: IDENT EQUALS ASTERISK
{
IDENT490=(Token)match(input,IDENT,FOLLOW_IDENT_in_io_control_spec23475); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_io_control_spec23477); if (state.failed) return;
ASTERISK491=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_io_control_spec23479); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.io_control_spec(IDENT490, ASTERISK491);
}
}
break;
case 4 :
// MFortranParser2018.g:5721:7: IDENT EQUALS expr
{
IDENT492=(Token)match(input,IDENT,FOLLOW_IDENT_in_io_control_spec23500); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_io_control_spec23502); if (state.failed) return;
pushFollow(FOLLOW_expr_in_io_control_spec23504);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.io_control_spec(IDENT492, null);
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "io_control_spec"
// $ANTLR start "io_control_spec_list"
// MFortranParser2018.g:5731:1: io_control_spec_list : io_control_spec ( COMMA io_control_spec )* ;
public final void io_control_spec_list() throws RecognitionException {
int numICS = 1;
try {
// MFortranParser2018.g:5738:5: ( io_control_spec ( COMMA io_control_spec )* )
// MFortranParser2018.g:5738:7: io_control_spec ( COMMA io_control_spec )*
{
pushFollow(FOLLOW_io_control_spec_in_io_control_spec_list23601);
io_control_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5739:7: ( COMMA io_control_spec )*
loop518:
while (true) {
int alt518=2;
int LA518_0 = input.LA(1);
if ( (LA518_0==COMMA) ) {
alt518=1;
}
switch (alt518) {
case 1 :
// MFortranParser2018.g:5739:9: COMMA io_control_spec
{
match(input,COMMA,FOLLOW_COMMA_in_io_control_spec_list23611); if (state.failed) return;
pushFollow(FOLLOW_io_control_spec_in_io_control_spec_list23613);
io_control_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numICS++;}
}
break;
default :
break loop518;
}
}
}
if ( state.backtracking==0 ) {
MFPA.io_control_spec_list(numICS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "io_control_spec_list"
// $ANTLR start "format"
// MFortranParser2018.g:5747:1: format : ( expr |asterisk= ASTERISK );
public final void format() throws RecognitionException {
Token asterisk=null;
try {
// MFortranParser2018.g:5751:5: ( expr |asterisk= ASTERISK )
int alt519=2;
int LA519_0 = input.LA(1);
if ( (LA519_0==BIN_CONST||LA519_0==CHAR_CONST||(LA519_0 >= DEFINED_OP && LA519_0 <= DIGIT_STR)||LA519_0==FALSE||(LA519_0 >= HEX_CONST && LA519_0 <= IDENT)||LA519_0==LBRACKET||LA519_0==LPAREN||LA519_0==MINUS||LA519_0==M_REAL_CONST||LA519_0==NOT||LA519_0==OCT_CONST||LA519_0==PLUS||LA519_0==TRUE) ) {
alt519=1;
}
else if ( (LA519_0==ASTERISK) ) {
alt519=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 519, 0, input);
throw nvae;
}
switch (alt519) {
case 1 :
// MFortranParser2018.g:5751:7: expr
{
pushFollow(FOLLOW_expr_in_format23642);
expr();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:5752:7: asterisk= ASTERISK
{
asterisk=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_format23652); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.format(asterisk);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "format"
// $ANTLR start "input_item"
// MFortranParser2018.g:5758:1: input_item : ( variable | io_implied_do );
public final void input_item() throws RecognitionException {
try {
// MFortranParser2018.g:5762:5: ( variable | io_implied_do )
int alt520=2;
int LA520_0 = input.LA(1);
if ( (LA520_0==CHAR_CONST||LA520_0==DIGIT_STR||LA520_0==IDENT) ) {
alt520=1;
}
else if ( (LA520_0==LPAREN) ) {
alt520=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 520, 0, input);
throw nvae;
}
switch (alt520) {
case 1 :
// MFortranParser2018.g:5762:7: variable
{
pushFollow(FOLLOW_variable_in_input_item23676);
variable();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:5763:7: io_implied_do
{
pushFollow(FOLLOW_io_implied_do_in_input_item23684);
io_implied_do();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.input_item();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "input_item"
// $ANTLR start "input_item_list"
// MFortranParser2018.g:5766:1: input_item_list : input_item ( COMMA input_item )* ;
public final void input_item_list() throws RecognitionException {
int numII = 1;
try {
// MFortranParser2018.g:5773:5: ( input_item ( COMMA input_item )* )
// MFortranParser2018.g:5773:7: input_item ( COMMA input_item )*
{
pushFollow(FOLLOW_input_item_in_input_item_list23709);
input_item();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5774:7: ( COMMA input_item )*
loop521:
while (true) {
int alt521=2;
int LA521_0 = input.LA(1);
if ( (LA521_0==COMMA) ) {
alt521=1;
}
switch (alt521) {
case 1 :
// MFortranParser2018.g:5774:9: COMMA input_item
{
match(input,COMMA,FOLLOW_COMMA_in_input_item_list23719); if (state.failed) return;
pushFollow(FOLLOW_input_item_in_input_item_list23721);
input_item();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numII++;}
}
break;
default :
break loop521;
}
}
}
if ( state.backtracking==0 ) {
MFPA.input_item_list(numII);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "input_item_list"
// $ANTLR start "output_item"
// MFortranParser2018.g:5780:1: output_item options {backtrack=true; } : ( expr | io_implied_do );
public final void output_item() throws RecognitionException {
try {
// MFortranParser2018.g:5785:5: ( expr | io_implied_do )
int alt522=2;
int LA522_0 = input.LA(1);
if ( (LA522_0==BIN_CONST||LA522_0==CHAR_CONST||(LA522_0 >= DEFINED_OP && LA522_0 <= DIGIT_STR)||LA522_0==FALSE||(LA522_0 >= HEX_CONST && LA522_0 <= IDENT)||LA522_0==LBRACKET||LA522_0==MINUS||LA522_0==M_REAL_CONST||LA522_0==NOT||LA522_0==OCT_CONST||LA522_0==PLUS||LA522_0==TRUE) ) {
alt522=1;
}
else if ( (LA522_0==LPAREN) ) {
int LA522_9 = input.LA(2);
if ( (synpred60_MFortranParser2018()) ) {
alt522=1;
}
else if ( (true) ) {
alt522=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 522, 0, input);
throw nvae;
}
switch (alt522) {
case 1 :
// MFortranParser2018.g:5785:7: expr
{
pushFollow(FOLLOW_expr_in_output_item23756);
expr();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:5786:7: io_implied_do
{
pushFollow(FOLLOW_io_implied_do_in_output_item23764);
io_implied_do();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.output_item();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "output_item"
// $ANTLR start "output_item_list"
// MFortranParser2018.g:5789:1: output_item_list : output_item ( COMMA output_item )* ;
public final void output_item_list() throws RecognitionException {
int numOI = 1;
try {
// MFortranParser2018.g:5796:5: ( output_item ( COMMA output_item )* )
// MFortranParser2018.g:5796:7: output_item ( COMMA output_item )*
{
pushFollow(FOLLOW_output_item_in_output_item_list23789);
output_item();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5797:7: ( COMMA output_item )*
loop523:
while (true) {
int alt523=2;
int LA523_0 = input.LA(1);
if ( (LA523_0==COMMA) ) {
alt523=1;
}
switch (alt523) {
case 1 :
// MFortranParser2018.g:5797:9: COMMA output_item
{
match(input,COMMA,FOLLOW_COMMA_in_output_item_list23799); if (state.failed) return;
pushFollow(FOLLOW_output_item_in_output_item_list23801);
output_item();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numOI++;}
}
break;
default :
break loop523;
}
}
}
if ( state.backtracking==0 ) {
MFPA.output_item_list(numOI);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "output_item_list"
// $ANTLR start "io_implied_do"
// MFortranParser2018.g:5803:1: io_implied_do : LPAREN io_implied_do_object io_implied_do_suffix RPAREN ;
public final void io_implied_do() throws RecognitionException {
try {
// MFortranParser2018.g:5804:5: ( LPAREN io_implied_do_object io_implied_do_suffix RPAREN )
// MFortranParser2018.g:5804:7: LPAREN io_implied_do_object io_implied_do_suffix RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_io_implied_do23825); if (state.failed) return;
pushFollow(FOLLOW_io_implied_do_object_in_io_implied_do23827);
io_implied_do_object();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_io_implied_do_suffix_in_io_implied_do23829);
io_implied_do_suffix();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_io_implied_do23831); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.io_implied_do(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "io_implied_do"
// $ANTLR start "io_implied_do_object"
// MFortranParser2018.g:5812:1: io_implied_do_object : output_item ;
public final void io_implied_do_object() throws RecognitionException {
try {
// MFortranParser2018.g:5813:5: ( output_item )
// MFortranParser2018.g:5813:7: output_item
{
pushFollow(FOLLOW_output_item_in_io_implied_do_object23860);
output_item();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.io_implied_do_object(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "io_implied_do_object"
// $ANTLR start "io_implied_do_suffix"
// MFortranParser2018.g:5817:1: io_implied_do_suffix options {backtrack=true; } : ( COMMA io_implied_do_object io_implied_do_suffix | COMMA io_implied_do_control );
public final void io_implied_do_suffix() throws RecognitionException {
try {
// MFortranParser2018.g:5819:5: ( COMMA io_implied_do_object io_implied_do_suffix | COMMA io_implied_do_control )
int alt524=2;
int LA524_0 = input.LA(1);
if ( (LA524_0==COMMA) ) {
int LA524_1 = input.LA(2);
if ( (LA524_1==BIN_CONST||LA524_1==CHAR_CONST||(LA524_1 >= DEFINED_OP && LA524_1 <= DIGIT_STR)||LA524_1==FALSE||LA524_1==HEX_CONST||LA524_1==LBRACKET||LA524_1==LPAREN||LA524_1==MINUS||LA524_1==M_REAL_CONST||LA524_1==NOT||LA524_1==OCT_CONST||LA524_1==PLUS||LA524_1==TRUE) ) {
alt524=1;
}
else if ( (LA524_1==IDENT) ) {
int LA524_3 = input.LA(3);
if ( (LA524_3==AND||LA524_3==ASTERISK||LA524_3==CHAR_CONST||LA524_3==COMMA||LA524_3==DEFINED_OP||LA524_3==EQ||(LA524_3 >= EQV && LA524_3 <= EQ_EQ)||LA524_3==GE||(LA524_3 >= GREATERTHAN && LA524_3 <= GT)||(LA524_3 >= LBRACKET && LA524_3 <= LE)||(LA524_3 >= LESSTHAN && LA524_3 <= LESSTHAN_EQ)||(LA524_3 >= LPAREN && LA524_3 <= LT)||LA524_3==MINUS||(LA524_3 >= NE && LA524_3 <= NEQV)||LA524_3==OR||LA524_3==PERCENT||LA524_3==PLUS||LA524_3==POWER||(LA524_3 >= SLASH && LA524_3 <= SLASH_SLASH)) ) {
alt524=1;
}
else if ( (LA524_3==EQUALS) ) {
alt524=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 524, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 524, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 524, 0, input);
throw nvae;
}
switch (alt524) {
case 1 :
// MFortranParser2018.g:5819:7: COMMA io_implied_do_object io_implied_do_suffix
{
match(input,COMMA,FOLLOW_COMMA_in_io_implied_do_suffix23893); if (state.failed) return;
pushFollow(FOLLOW_io_implied_do_object_in_io_implied_do_suffix23895);
io_implied_do_object();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_io_implied_do_suffix_in_io_implied_do_suffix23897);
io_implied_do_suffix();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:5820:7: COMMA io_implied_do_control
{
match(input,COMMA,FOLLOW_COMMA_in_io_implied_do_suffix23905); if (state.failed) return;
pushFollow(FOLLOW_io_implied_do_control_in_io_implied_do_suffix23907);
io_implied_do_control();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "io_implied_do_suffix"
// $ANTLR start "io_implied_do_control"
// MFortranParser2018.g:5827:1: io_implied_do_control : IDENT EQUALS expr COMMA expr ( COMMA expr )? ;
public final void io_implied_do_control() throws RecognitionException {
Token IDENT493=null;
boolean hasStrd=false;
try {
// MFortranParser2018.g:5831:5: ( IDENT EQUALS expr COMMA expr ( COMMA expr )? )
// MFortranParser2018.g:5831:7: IDENT EQUALS expr COMMA expr ( COMMA expr )?
{
IDENT493=(Token)match(input,IDENT,FOLLOW_IDENT_in_io_implied_do_control23930); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_io_implied_do_control23932); if (state.failed) return;
pushFollow(FOLLOW_expr_in_io_implied_do_control23934);
expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_io_implied_do_control23936); if (state.failed) return;
pushFollow(FOLLOW_expr_in_io_implied_do_control23938);
expr();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5832:7: ( COMMA expr )?
int alt525=2;
int LA525_0 = input.LA(1);
if ( (LA525_0==COMMA) ) {
alt525=1;
}
switch (alt525) {
case 1 :
// MFortranParser2018.g:5832:9: COMMA expr
{
match(input,COMMA,FOLLOW_COMMA_in_io_implied_do_control23949); if (state.failed) return;
pushFollow(FOLLOW_expr_in_io_implied_do_control23951);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasStrd=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.io_implied_do_control(IDENT493, hasStrd); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "io_implied_do_control"
// $ANTLR start "dtv_type_spec"
// MFortranParser2018.g:5840:1: dtv_type_spec : ( TYPE LPAREN derived_type_spec RPAREN | CLASS LPAREN derived_type_spec RPAREN );
public final void dtv_type_spec() throws RecognitionException {
Token TYPE494=null;
Token CLASS495=null;
try {
// MFortranParser2018.g:5841:5: ( TYPE LPAREN derived_type_spec RPAREN | CLASS LPAREN derived_type_spec RPAREN )
int alt526=2;
int LA526_0 = input.LA(1);
if ( (LA526_0==TYPE) ) {
alt526=1;
}
else if ( (LA526_0==CLASS) ) {
alt526=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 526, 0, input);
throw nvae;
}
switch (alt526) {
case 1 :
// MFortranParser2018.g:5841:7: TYPE LPAREN derived_type_spec RPAREN
{
TYPE494=(Token)match(input,TYPE,FOLLOW_TYPE_in_dtv_type_spec23985); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_dtv_type_spec23987); if (state.failed) return;
pushFollow(FOLLOW_derived_type_spec_in_dtv_type_spec23989);
derived_type_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_dtv_type_spec23991); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.dtv_type_spec(TYPE494); }
}
break;
case 2 :
// MFortranParser2018.g:5843:7: CLASS LPAREN derived_type_spec RPAREN
{
CLASS495=(Token)match(input,CLASS,FOLLOW_CLASS_in_dtv_type_spec24009); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_dtv_type_spec24011); if (state.failed) return;
pushFollow(FOLLOW_derived_type_spec_in_dtv_type_spec24013);
derived_type_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_dtv_type_spec24015); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.dtv_type_spec(CLASS495); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dtv_type_spec"
// $ANTLR start "wait_stmt"
// MFortranParser2018.g:5850:1: wait_stmt : (lbl= label )? WAIT LPAREN wait_spec_list RPAREN end_of_stmt ;
public final void wait_stmt() throws RecognitionException {
Token WAIT496=null;
Token lbl =null;
Token end_of_stmt497 =null;
try {
// MFortranParser2018.g:5856:5: ( (lbl= label )? WAIT LPAREN wait_spec_list RPAREN end_of_stmt )
// MFortranParser2018.g:5856:7: (lbl= label )? WAIT LPAREN wait_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5856:7: (lbl= label )?
int alt527=2;
int LA527_0 = input.LA(1);
if ( (LA527_0==DIGIT_STR) ) {
alt527=1;
}
switch (alt527) {
case 1 :
// MFortranParser2018.g:5856:8: lbl= label
{
pushFollow(FOLLOW_label_in_wait_stmt24055);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
WAIT496=(Token)match(input,WAIT,FOLLOW_WAIT_in_wait_stmt24067); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_wait_stmt24069); if (state.failed) return;
pushFollow(FOLLOW_wait_spec_list_in_wait_stmt24071);
wait_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_wait_stmt24073); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_wait_stmt24081);
end_of_stmt497=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.wait_stmt(lbl,
WAIT496, end_of_stmt497); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "wait_stmt"
// $ANTLR start "wait_spec"
// MFortranParser2018.g:5869:1: wait_spec : ( expr | IDENT EQUALS expr );
public final void wait_spec() throws RecognitionException {
Token IDENT498=null;
try {
// MFortranParser2018.g:5870:5: ( expr | IDENT EQUALS expr )
int alt528=2;
int LA528_0 = input.LA(1);
if ( (LA528_0==BIN_CONST||LA528_0==CHAR_CONST||(LA528_0 >= DEFINED_OP && LA528_0 <= DIGIT_STR)||LA528_0==FALSE||LA528_0==HEX_CONST||LA528_0==LBRACKET||LA528_0==LPAREN||LA528_0==MINUS||LA528_0==M_REAL_CONST||LA528_0==NOT||LA528_0==OCT_CONST||LA528_0==PLUS||LA528_0==TRUE) ) {
alt528=1;
}
else if ( (LA528_0==IDENT) ) {
int LA528_2 = input.LA(2);
if ( (LA528_2==AND||LA528_2==ASTERISK||LA528_2==CHAR_CONST||LA528_2==COMMA||LA528_2==DEFINED_OP||LA528_2==EQ||(LA528_2 >= EQV && LA528_2 <= EQ_EQ)||LA528_2==GE||(LA528_2 >= GREATERTHAN && LA528_2 <= GT)||(LA528_2 >= LBRACKET && LA528_2 <= LE)||(LA528_2 >= LESSTHAN && LA528_2 <= LESSTHAN_EQ)||(LA528_2 >= LPAREN && LA528_2 <= LT)||LA528_2==MINUS||(LA528_2 >= NE && LA528_2 <= NEQV)||LA528_2==OR||LA528_2==PERCENT||LA528_2==PLUS||LA528_2==POWER||LA528_2==RPAREN||(LA528_2 >= SLASH && LA528_2 <= SLASH_SLASH)) ) {
alt528=1;
}
else if ( (LA528_2==EQUALS) ) {
alt528=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 528, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 528, 0, input);
throw nvae;
}
switch (alt528) {
case 1 :
// MFortranParser2018.g:5870:7: expr
{
pushFollow(FOLLOW_expr_in_wait_spec24110);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.wait_spec(null); }
}
break;
case 2 :
// MFortranParser2018.g:5872:7: IDENT EQUALS expr
{
IDENT498=(Token)match(input,IDENT,FOLLOW_IDENT_in_wait_spec24128); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_wait_spec24130); if (state.failed) return;
pushFollow(FOLLOW_expr_in_wait_spec24132);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.wait_spec(IDENT498); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "wait_spec"
// $ANTLR start "wait_spec_list"
// MFortranParser2018.g:5876:1: wait_spec_list : wait_spec ( COMMA wait_spec )* ;
public final void wait_spec_list() throws RecognitionException {
int numWS = 1;
try {
// MFortranParser2018.g:5883:5: ( wait_spec ( COMMA wait_spec )* )
// MFortranParser2018.g:5883:7: wait_spec ( COMMA wait_spec )*
{
pushFollow(FOLLOW_wait_spec_in_wait_spec_list24167);
wait_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5884:7: ( COMMA wait_spec )*
loop529:
while (true) {
int alt529=2;
int LA529_0 = input.LA(1);
if ( (LA529_0==COMMA) ) {
alt529=1;
}
switch (alt529) {
case 1 :
// MFortranParser2018.g:5884:9: COMMA wait_spec
{
match(input,COMMA,FOLLOW_COMMA_in_wait_spec_list24177); if (state.failed) return;
pushFollow(FOLLOW_wait_spec_in_wait_spec_list24179);
wait_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numWS++;}
}
break;
default :
break loop529;
}
}
}
if ( state.backtracking==0 ) {
MFPA.wait_spec_list(numWS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "wait_spec_list"
// $ANTLR start "backspace_stmt"
// MFortranParser2018.g:5890:1: backspace_stmt options {k=3; } : ( ( ( label )? BACKSPACE LPAREN )=> (lbl= label )? BACKSPACE LPAREN position_spec_list RPAREN end_of_stmt | ( ( label )? BACKSPACE )=> (lbl= label )? BACKSPACE file_unit_number end_of_stmt );
public final void backspace_stmt() throws RecognitionException {
Token BACKSPACE499=null;
Token BACKSPACE501=null;
Token lbl =null;
Token end_of_stmt500 =null;
Token end_of_stmt502 =null;
try {
// MFortranParser2018.g:5897:5: ( ( ( label )? BACKSPACE LPAREN )=> (lbl= label )? BACKSPACE LPAREN position_spec_list RPAREN end_of_stmt | ( ( label )? BACKSPACE )=> (lbl= label )? BACKSPACE file_unit_number end_of_stmt )
int alt532=2;
int LA532_0 = input.LA(1);
if ( (LA532_0==DIGIT_STR) ) {
int LA532_1 = input.LA(2);
if ( (LA532_1==BACKSPACE) ) {
int LA532_3 = input.LA(3);
if ( (LA532_3==LPAREN) ) {
int LA532_19 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_3==NOT) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==PLUS) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==MINUS) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==DEFINED_OP) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==IDENT) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==DIGIT_STR) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==CHAR_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==M_REAL_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==TRUE) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==FALSE) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==BIN_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==OCT_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==HEX_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_3==LBRACKET) && (synpred63_MFortranParser2018())) {
alt532=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 532, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_0==BACKSPACE) ) {
int LA532_2 = input.LA(2);
if ( (LA532_2==LPAREN) ) {
int LA532_4 = input.LA(3);
if ( (LA532_4==SLASH) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_4==NOT) ) {
int LA532_35 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 35, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==PLUS) ) {
int LA532_36 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 36, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==MINUS) ) {
int LA532_37 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 37, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==DEFINED_OP) ) {
int LA532_38 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 38, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==IDENT) ) {
int LA532_39 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 39, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==DIGIT_STR) ) {
int LA532_40 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 40, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==CHAR_CONST) ) {
int LA532_41 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 41, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==M_REAL_CONST) ) {
int LA532_42 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 42, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==LPAREN) ) {
int LA532_43 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 43, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==TRUE) ) {
int LA532_44 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 44, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==FALSE) ) {
int LA532_45 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 45, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==BIN_CONST) ) {
int LA532_46 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 46, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==OCT_CONST) ) {
int LA532_47 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 47, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==HEX_CONST) ) {
int LA532_48 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 48, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_4==LBRACKET) ) {
int LA532_49 = input.LA(4);
if ( (synpred62_MFortranParser2018()) ) {
alt532=1;
}
else if ( (synpred63_MFortranParser2018()) ) {
alt532=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 49, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 532, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA532_2==NOT) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==PLUS) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==MINUS) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==DEFINED_OP) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==IDENT) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==DIGIT_STR) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==CHAR_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==M_REAL_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==TRUE) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==FALSE) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==BIN_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==OCT_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==HEX_CONST) && (synpred63_MFortranParser2018())) {
alt532=2;
}
else if ( (LA532_2==LBRACKET) && (synpred63_MFortranParser2018())) {
alt532=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 532, 0, input);
throw nvae;
}
switch (alt532) {
case 1 :
// MFortranParser2018.g:5897:7: ( ( label )? BACKSPACE LPAREN )=> (lbl= label )? BACKSPACE LPAREN position_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5898:11: (lbl= label )?
int alt530=2;
int LA530_0 = input.LA(1);
if ( (LA530_0==DIGIT_STR) ) {
alt530=1;
}
switch (alt530) {
case 1 :
// MFortranParser2018.g:5898:12: lbl= label
{
pushFollow(FOLLOW_label_in_backspace_stmt24244);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
BACKSPACE499=(Token)match(input,BACKSPACE,FOLLOW_BACKSPACE_in_backspace_stmt24260); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_backspace_stmt24262); if (state.failed) return;
pushFollow(FOLLOW_position_spec_list_in_backspace_stmt24264);
position_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_backspace_stmt24266); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_backspace_stmt24278);
end_of_stmt500=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.backspace_stmt(lbl,
BACKSPACE499, end_of_stmt500, true);}
}
break;
case 2 :
// MFortranParser2018.g:5903:7: ( ( label )? BACKSPACE )=> (lbl= label )? BACKSPACE file_unit_number end_of_stmt
{
// MFortranParser2018.g:5904:11: (lbl= label )?
int alt531=2;
int LA531_0 = input.LA(1);
if ( (LA531_0==DIGIT_STR) ) {
alt531=1;
}
switch (alt531) {
case 1 :
// MFortranParser2018.g:5904:12: lbl= label
{
pushFollow(FOLLOW_label_in_backspace_stmt24324);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
BACKSPACE501=(Token)match(input,BACKSPACE,FOLLOW_BACKSPACE_in_backspace_stmt24340); if (state.failed) return;
pushFollow(FOLLOW_file_unit_number_in_backspace_stmt24342);
file_unit_number();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_backspace_stmt24355);
end_of_stmt502=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.backspace_stmt(lbl,
BACKSPACE501, end_of_stmt502, false);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "backspace_stmt"
// $ANTLR start "endfile_stmt"
// MFortranParser2018.g:5914:1: endfile_stmt options {k=3; } : ( ( ( label )? END FILE LPAREN )=> (lbl= label )? END FILE LPAREN position_spec_list RPAREN end_of_stmt | ( ( label )? END FILE )=> (lbl= label )? END FILE file_unit_number end_of_stmt );
public final void endfile_stmt() throws RecognitionException {
Token END503=null;
Token FILE504=null;
Token END506=null;
Token FILE507=null;
Token lbl =null;
Token end_of_stmt505 =null;
Token end_of_stmt508 =null;
try {
// MFortranParser2018.g:5921:5: ( ( ( label )? END FILE LPAREN )=> (lbl= label )? END FILE LPAREN position_spec_list RPAREN end_of_stmt | ( ( label )? END FILE )=> (lbl= label )? END FILE file_unit_number end_of_stmt )
int alt535=2;
int LA535_0 = input.LA(1);
if ( (LA535_0==DIGIT_STR) ) {
int LA535_1 = input.LA(2);
if ( (LA535_1==END) ) {
int LA535_3 = input.LA(3);
if ( (LA535_3==FILE) ) {
int LA535_5 = input.LA(4);
if ( (synpred64_MFortranParser2018()) ) {
alt535=1;
}
else if ( (synpred65_MFortranParser2018()) ) {
alt535=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 535, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 535, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 535, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA535_0==END) ) {
int LA535_2 = input.LA(2);
if ( (LA535_2==FILE) ) {
int LA535_4 = input.LA(3);
if ( (LA535_4==LPAREN) ) {
int LA535_6 = input.LA(4);
if ( (synpred64_MFortranParser2018()) ) {
alt535=1;
}
else if ( (synpred65_MFortranParser2018()) ) {
alt535=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 535, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA535_4==NOT) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==PLUS) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==MINUS) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==DEFINED_OP) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==IDENT) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==DIGIT_STR) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==CHAR_CONST) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==M_REAL_CONST) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==TRUE) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==FALSE) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==BIN_CONST) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==OCT_CONST) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==HEX_CONST) && (synpred65_MFortranParser2018())) {
alt535=2;
}
else if ( (LA535_4==LBRACKET) && (synpred65_MFortranParser2018())) {
alt535=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 535, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 535, 0, input);
throw nvae;
}
switch (alt535) {
case 1 :
// MFortranParser2018.g:5921:7: ( ( label )? END FILE LPAREN )=> (lbl= label )? END FILE LPAREN position_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5922:11: (lbl= label )?
int alt533=2;
int LA533_0 = input.LA(1);
if ( (LA533_0==DIGIT_STR) ) {
alt533=1;
}
switch (alt533) {
case 1 :
// MFortranParser2018.g:5922:12: lbl= label
{
pushFollow(FOLLOW_label_in_endfile_stmt24431);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END503=(Token)match(input,END,FOLLOW_END_in_endfile_stmt24447); if (state.failed) return;
FILE504=(Token)match(input,FILE,FOLLOW_FILE_in_endfile_stmt24449); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_endfile_stmt24451); if (state.failed) return;
pushFollow(FOLLOW_position_spec_list_in_endfile_stmt24453);
position_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_endfile_stmt24455); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_endfile_stmt24468);
end_of_stmt505=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.endfile_stmt(lbl,
END503, FILE504, end_of_stmt505, true);}
}
break;
case 2 :
// MFortranParser2018.g:5927:7: ( ( label )? END FILE )=> (lbl= label )? END FILE file_unit_number end_of_stmt
{
// MFortranParser2018.g:5928:11: (lbl= label )?
int alt534=2;
int LA534_0 = input.LA(1);
if ( (LA534_0==DIGIT_STR) ) {
alt534=1;
}
switch (alt534) {
case 1 :
// MFortranParser2018.g:5928:12: lbl= label
{
pushFollow(FOLLOW_label_in_endfile_stmt24517);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END506=(Token)match(input,END,FOLLOW_END_in_endfile_stmt24533); if (state.failed) return;
FILE507=(Token)match(input,FILE,FOLLOW_FILE_in_endfile_stmt24535); if (state.failed) return;
pushFollow(FOLLOW_file_unit_number_in_endfile_stmt24537);
file_unit_number();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_endfile_stmt24550);
end_of_stmt508=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.endfile_stmt(lbl,
END506, FILE507, end_of_stmt508, false);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "endfile_stmt"
// $ANTLR start "rewind_stmt"
// MFortranParser2018.g:5938:1: rewind_stmt options {k=3; } : ( ( ( label )? REWIND LPAREN )=> (lbl= label )? REWIND LPAREN position_spec_list RPAREN end_of_stmt | ( ( label )? REWIND )=> (lbl= label )? REWIND file_unit_number end_of_stmt );
public final void rewind_stmt() throws RecognitionException {
Token REWIND509=null;
Token REWIND511=null;
Token lbl =null;
Token end_of_stmt510 =null;
Token end_of_stmt512 =null;
try {
// MFortranParser2018.g:5945:5: ( ( ( label )? REWIND LPAREN )=> (lbl= label )? REWIND LPAREN position_spec_list RPAREN end_of_stmt | ( ( label )? REWIND )=> (lbl= label )? REWIND file_unit_number end_of_stmt )
int alt538=2;
int LA538_0 = input.LA(1);
if ( (LA538_0==DIGIT_STR) ) {
int LA538_1 = input.LA(2);
if ( (LA538_1==REWIND) ) {
int LA538_3 = input.LA(3);
if ( (LA538_3==LPAREN) ) {
int LA538_19 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_3==NOT) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==PLUS) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==MINUS) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==DEFINED_OP) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==IDENT) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==DIGIT_STR) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==CHAR_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==M_REAL_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==TRUE) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==FALSE) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==BIN_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==OCT_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==HEX_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_3==LBRACKET) && (synpred67_MFortranParser2018())) {
alt538=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 538, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_0==REWIND) ) {
int LA538_2 = input.LA(2);
if ( (LA538_2==LPAREN) ) {
int LA538_4 = input.LA(3);
if ( (LA538_4==SLASH) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_4==NOT) ) {
int LA538_35 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 35, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==PLUS) ) {
int LA538_36 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 36, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==MINUS) ) {
int LA538_37 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 37, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==DEFINED_OP) ) {
int LA538_38 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 38, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==IDENT) ) {
int LA538_39 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 39, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==DIGIT_STR) ) {
int LA538_40 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 40, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==CHAR_CONST) ) {
int LA538_41 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 41, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==M_REAL_CONST) ) {
int LA538_42 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 42, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==LPAREN) ) {
int LA538_43 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 43, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==TRUE) ) {
int LA538_44 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 44, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==FALSE) ) {
int LA538_45 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 45, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==BIN_CONST) ) {
int LA538_46 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 46, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==OCT_CONST) ) {
int LA538_47 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 47, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==HEX_CONST) ) {
int LA538_48 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 48, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_4==LBRACKET) ) {
int LA538_49 = input.LA(4);
if ( (synpred66_MFortranParser2018()) ) {
alt538=1;
}
else if ( (synpred67_MFortranParser2018()) ) {
alt538=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 49, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 538, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA538_2==NOT) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==PLUS) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==MINUS) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==DEFINED_OP) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==IDENT) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==DIGIT_STR) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==CHAR_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==M_REAL_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==TRUE) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==FALSE) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==BIN_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==OCT_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==HEX_CONST) && (synpred67_MFortranParser2018())) {
alt538=2;
}
else if ( (LA538_2==LBRACKET) && (synpred67_MFortranParser2018())) {
alt538=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 538, 0, input);
throw nvae;
}
switch (alt538) {
case 1 :
// MFortranParser2018.g:5945:7: ( ( label )? REWIND LPAREN )=> (lbl= label )? REWIND LPAREN position_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5946:11: (lbl= label )?
int alt536=2;
int LA536_0 = input.LA(1);
if ( (LA536_0==DIGIT_STR) ) {
alt536=1;
}
switch (alt536) {
case 1 :
// MFortranParser2018.g:5946:12: lbl= label
{
pushFollow(FOLLOW_label_in_rewind_stmt24625);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
REWIND509=(Token)match(input,REWIND,FOLLOW_REWIND_in_rewind_stmt24641); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_rewind_stmt24643); if (state.failed) return;
pushFollow(FOLLOW_position_spec_list_in_rewind_stmt24645);
position_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_rewind_stmt24647); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_rewind_stmt24660);
end_of_stmt510=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.rewind_stmt(lbl,
REWIND509, end_of_stmt510, true);}
}
break;
case 2 :
// MFortranParser2018.g:5951:7: ( ( label )? REWIND )=> (lbl= label )? REWIND file_unit_number end_of_stmt
{
// MFortranParser2018.g:5952:11: (lbl= label )?
int alt537=2;
int LA537_0 = input.LA(1);
if ( (LA537_0==DIGIT_STR) ) {
alt537=1;
}
switch (alt537) {
case 1 :
// MFortranParser2018.g:5952:12: lbl= label
{
pushFollow(FOLLOW_label_in_rewind_stmt24706);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
REWIND511=(Token)match(input,REWIND,FOLLOW_REWIND_in_rewind_stmt24721); if (state.failed) return;
pushFollow(FOLLOW_file_unit_number_in_rewind_stmt24723);
file_unit_number();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_rewind_stmt24736);
end_of_stmt512=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.rewind_stmt(lbl,
REWIND511, end_of_stmt512, false);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "rewind_stmt"
// $ANTLR start "position_spec"
// MFortranParser2018.g:5965:1: position_spec : ( expr | IDENT EQUALS expr );
public final void position_spec() throws RecognitionException {
Token IDENT513=null;
try {
// MFortranParser2018.g:5966:5: ( expr | IDENT EQUALS expr )
int alt539=2;
int LA539_0 = input.LA(1);
if ( (LA539_0==BIN_CONST||LA539_0==CHAR_CONST||(LA539_0 >= DEFINED_OP && LA539_0 <= DIGIT_STR)||LA539_0==FALSE||LA539_0==HEX_CONST||LA539_0==LBRACKET||LA539_0==LPAREN||LA539_0==MINUS||LA539_0==M_REAL_CONST||LA539_0==NOT||LA539_0==OCT_CONST||LA539_0==PLUS||LA539_0==TRUE) ) {
alt539=1;
}
else if ( (LA539_0==IDENT) ) {
int LA539_2 = input.LA(2);
if ( (LA539_2==AND||LA539_2==ASTERISK||LA539_2==CHAR_CONST||LA539_2==COMMA||LA539_2==DEFINED_OP||LA539_2==EQ||(LA539_2 >= EQV && LA539_2 <= EQ_EQ)||LA539_2==GE||(LA539_2 >= GREATERTHAN && LA539_2 <= GT)||(LA539_2 >= LBRACKET && LA539_2 <= LE)||(LA539_2 >= LESSTHAN && LA539_2 <= LESSTHAN_EQ)||(LA539_2 >= LPAREN && LA539_2 <= LT)||LA539_2==MINUS||(LA539_2 >= NE && LA539_2 <= NEQV)||LA539_2==OR||LA539_2==PERCENT||LA539_2==PLUS||LA539_2==POWER||LA539_2==RPAREN||(LA539_2 >= SLASH && LA539_2 <= SLASH_SLASH)) ) {
alt539=1;
}
else if ( (LA539_2==EQUALS) ) {
alt539=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 539, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 539, 0, input);
throw nvae;
}
switch (alt539) {
case 1 :
// MFortranParser2018.g:5966:7: expr
{
pushFollow(FOLLOW_expr_in_position_spec24769);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.position_spec(null); }
}
break;
case 2 :
// MFortranParser2018.g:5968:7: IDENT EQUALS expr
{
IDENT513=(Token)match(input,IDENT,FOLLOW_IDENT_in_position_spec24787); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_position_spec24789); if (state.failed) return;
pushFollow(FOLLOW_expr_in_position_spec24791);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.position_spec(IDENT513); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "position_spec"
// $ANTLR start "position_spec_list"
// MFortranParser2018.g:5972:1: position_spec_list : position_spec ( COMMA position_spec )* ;
public final void position_spec_list() throws RecognitionException {
int numPS = 1;
try {
// MFortranParser2018.g:5979:5: ( position_spec ( COMMA position_spec )* )
// MFortranParser2018.g:5979:7: position_spec ( COMMA position_spec )*
{
pushFollow(FOLLOW_position_spec_in_position_spec_list24826);
position_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:5980:7: ( COMMA position_spec )*
loop540:
while (true) {
int alt540=2;
int LA540_0 = input.LA(1);
if ( (LA540_0==COMMA) ) {
alt540=1;
}
switch (alt540) {
case 1 :
// MFortranParser2018.g:5980:9: COMMA position_spec
{
match(input,COMMA,FOLLOW_COMMA_in_position_spec_list24837); if (state.failed) return;
pushFollow(FOLLOW_position_spec_in_position_spec_list24839);
position_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPS++;}
}
break;
default :
break loop540;
}
}
}
if ( state.backtracking==0 ) {
MFPA.position_spec_list(numPS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "position_spec_list"
// $ANTLR start "flush_stmt"
// MFortranParser2018.g:5986:1: flush_stmt options {k=3; } : ( ( ( label )? FLUSH LPAREN )=> (lbl= label )? FLUSH LPAREN flush_spec_list RPAREN end_of_stmt | ( ( label )? FLUSH )=> (lbl= label )? FLUSH file_unit_number end_of_stmt );
public final void flush_stmt() throws RecognitionException {
Token FLUSH514=null;
Token FLUSH516=null;
Token lbl =null;
Token end_of_stmt515 =null;
Token end_of_stmt517 =null;
try {
// MFortranParser2018.g:5991:5: ( ( ( label )? FLUSH LPAREN )=> (lbl= label )? FLUSH LPAREN flush_spec_list RPAREN end_of_stmt | ( ( label )? FLUSH )=> (lbl= label )? FLUSH file_unit_number end_of_stmt )
int alt543=2;
int LA543_0 = input.LA(1);
if ( (LA543_0==DIGIT_STR) ) {
int LA543_1 = input.LA(2);
if ( (LA543_1==FLUSH) ) {
int LA543_3 = input.LA(3);
if ( (LA543_3==LPAREN) ) {
int LA543_19 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_3==NOT) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==PLUS) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==MINUS) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==DEFINED_OP) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==IDENT) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==DIGIT_STR) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==CHAR_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==M_REAL_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==TRUE) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==FALSE) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==BIN_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==OCT_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==HEX_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_3==LBRACKET) && (synpred69_MFortranParser2018())) {
alt543=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 543, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_0==FLUSH) ) {
int LA543_2 = input.LA(2);
if ( (LA543_2==LPAREN) ) {
int LA543_4 = input.LA(3);
if ( (LA543_4==SLASH) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_4==NOT) ) {
int LA543_35 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 35, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==PLUS) ) {
int LA543_36 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 36, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==MINUS) ) {
int LA543_37 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 37, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==DEFINED_OP) ) {
int LA543_38 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 38, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==IDENT) ) {
int LA543_39 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 39, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==DIGIT_STR) ) {
int LA543_40 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 40, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==CHAR_CONST) ) {
int LA543_41 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 41, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==M_REAL_CONST) ) {
int LA543_42 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 42, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==LPAREN) ) {
int LA543_43 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 43, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==TRUE) ) {
int LA543_44 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 44, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==FALSE) ) {
int LA543_45 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 45, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==BIN_CONST) ) {
int LA543_46 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 46, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==OCT_CONST) ) {
int LA543_47 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 47, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==HEX_CONST) ) {
int LA543_48 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 48, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_4==LBRACKET) ) {
int LA543_49 = input.LA(4);
if ( (synpred68_MFortranParser2018()) ) {
alt543=1;
}
else if ( (synpred69_MFortranParser2018()) ) {
alt543=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 49, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 543, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA543_2==NOT) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==PLUS) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==MINUS) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==DEFINED_OP) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==IDENT) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==DIGIT_STR) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==CHAR_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==M_REAL_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==TRUE) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==FALSE) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==BIN_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==OCT_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==HEX_CONST) && (synpred69_MFortranParser2018())) {
alt543=2;
}
else if ( (LA543_2==LBRACKET) && (synpred69_MFortranParser2018())) {
alt543=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 543, 0, input);
throw nvae;
}
switch (alt543) {
case 1 :
// MFortranParser2018.g:5991:7: ( ( label )? FLUSH LPAREN )=> (lbl= label )? FLUSH LPAREN flush_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:5992:11: (lbl= label )?
int alt541=2;
int LA541_0 = input.LA(1);
if ( (LA541_0==DIGIT_STR) ) {
alt541=1;
}
switch (alt541) {
case 1 :
// MFortranParser2018.g:5992:12: lbl= label
{
pushFollow(FOLLOW_label_in_flush_stmt24901);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
FLUSH514=(Token)match(input,FLUSH,FOLLOW_FLUSH_in_flush_stmt24917); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_flush_stmt24919); if (state.failed) return;
pushFollow(FOLLOW_flush_spec_list_in_flush_stmt24921);
flush_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_flush_stmt24923); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_flush_stmt24936);
end_of_stmt515=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.flush_stmt(lbl,
FLUSH514, end_of_stmt515, true); }
}
break;
case 2 :
// MFortranParser2018.g:5997:7: ( ( label )? FLUSH )=> (lbl= label )? FLUSH file_unit_number end_of_stmt
{
// MFortranParser2018.g:5998:10: (lbl= label )?
int alt542=2;
int LA542_0 = input.LA(1);
if ( (LA542_0==DIGIT_STR) ) {
alt542=1;
}
switch (alt542) {
case 1 :
// MFortranParser2018.g:5998:11: lbl= label
{
pushFollow(FOLLOW_label_in_flush_stmt24983);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
FLUSH516=(Token)match(input,FLUSH,FOLLOW_FLUSH_in_flush_stmt24997); if (state.failed) return;
pushFollow(FOLLOW_file_unit_number_in_flush_stmt24999);
file_unit_number();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_flush_stmt25011);
end_of_stmt517=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.flush_stmt(lbl,
FLUSH516, end_of_stmt517, false);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "flush_stmt"
// $ANTLR start "flush_spec"
// MFortranParser2018.g:6011:1: flush_spec : ( expr | IDENT EQUALS expr );
public final void flush_spec() throws RecognitionException {
Token IDENT518=null;
try {
// MFortranParser2018.g:6012:5: ( expr | IDENT EQUALS expr )
int alt544=2;
int LA544_0 = input.LA(1);
if ( (LA544_0==BIN_CONST||LA544_0==CHAR_CONST||(LA544_0 >= DEFINED_OP && LA544_0 <= DIGIT_STR)||LA544_0==FALSE||LA544_0==HEX_CONST||LA544_0==LBRACKET||LA544_0==LPAREN||LA544_0==MINUS||LA544_0==M_REAL_CONST||LA544_0==NOT||LA544_0==OCT_CONST||LA544_0==PLUS||LA544_0==TRUE) ) {
alt544=1;
}
else if ( (LA544_0==IDENT) ) {
int LA544_2 = input.LA(2);
if ( (LA544_2==AND||LA544_2==ASTERISK||LA544_2==CHAR_CONST||LA544_2==COMMA||LA544_2==DEFINED_OP||LA544_2==EQ||(LA544_2 >= EQV && LA544_2 <= EQ_EQ)||LA544_2==GE||(LA544_2 >= GREATERTHAN && LA544_2 <= GT)||(LA544_2 >= LBRACKET && LA544_2 <= LE)||(LA544_2 >= LESSTHAN && LA544_2 <= LESSTHAN_EQ)||(LA544_2 >= LPAREN && LA544_2 <= LT)||LA544_2==MINUS||(LA544_2 >= NE && LA544_2 <= NEQV)||LA544_2==OR||LA544_2==PERCENT||LA544_2==PLUS||LA544_2==POWER||LA544_2==RPAREN||(LA544_2 >= SLASH && LA544_2 <= SLASH_SLASH)) ) {
alt544=1;
}
else if ( (LA544_2==EQUALS) ) {
alt544=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 544, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 544, 0, input);
throw nvae;
}
switch (alt544) {
case 1 :
// MFortranParser2018.g:6012:7: expr
{
pushFollow(FOLLOW_expr_in_flush_spec25043);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.flush_spec(null); }
}
break;
case 2 :
// MFortranParser2018.g:6014:7: IDENT EQUALS expr
{
IDENT518=(Token)match(input,IDENT,FOLLOW_IDENT_in_flush_spec25061); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_flush_spec25063); if (state.failed) return;
pushFollow(FOLLOW_expr_in_flush_spec25065);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.flush_spec(IDENT518); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "flush_spec"
// $ANTLR start "flush_spec_list"
// MFortranParser2018.g:6018:1: flush_spec_list : flush_spec ( COMMA flush_spec )* ;
public final void flush_spec_list() throws RecognitionException {
int numFS = 1;
try {
// MFortranParser2018.g:6025:5: ( flush_spec ( COMMA flush_spec )* )
// MFortranParser2018.g:6025:7: flush_spec ( COMMA flush_spec )*
{
pushFollow(FOLLOW_flush_spec_in_flush_spec_list25101);
flush_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6026:7: ( COMMA flush_spec )*
loop545:
while (true) {
int alt545=2;
int LA545_0 = input.LA(1);
if ( (LA545_0==COMMA) ) {
alt545=1;
}
switch (alt545) {
case 1 :
// MFortranParser2018.g:6026:9: COMMA flush_spec
{
match(input,COMMA,FOLLOW_COMMA_in_flush_spec_list25111); if (state.failed) return;
pushFollow(FOLLOW_flush_spec_in_flush_spec_list25113);
flush_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numFS++;}
}
break;
default :
break loop545;
}
}
}
if ( state.backtracking==0 ) {
MFPA.flush_spec_list(numFS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "flush_spec_list"
// $ANTLR start "inquire_stmt"
// MFortranParser2018.g:6033:1: inquire_stmt : ( (lbl= label )? INQUIRE LPAREN inquire_spec_list RPAREN end_of_stmt | (lbl= label )? M_INQUIRE_STMT_2 INQUIRE LPAREN IDENT EQUALS expr RPAREN output_item_list end_of_stmt );
public final void inquire_stmt() throws RecognitionException {
Token INQUIRE519=null;
Token INQUIRE521=null;
Token IDENT522=null;
Token lbl =null;
Token end_of_stmt520 =null;
Token end_of_stmt523 =null;
try {
// MFortranParser2018.g:6039:5: ( (lbl= label )? INQUIRE LPAREN inquire_spec_list RPAREN end_of_stmt | (lbl= label )? M_INQUIRE_STMT_2 INQUIRE LPAREN IDENT EQUALS expr RPAREN output_item_list end_of_stmt )
int alt548=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA548_1 = input.LA(2);
if ( (LA548_1==INQUIRE) ) {
alt548=1;
}
else if ( (LA548_1==M_INQUIRE_STMT_2) ) {
alt548=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 548, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INQUIRE:
{
alt548=1;
}
break;
case M_INQUIRE_STMT_2:
{
alt548=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 548, 0, input);
throw nvae;
}
switch (alt548) {
case 1 :
// MFortranParser2018.g:6039:7: (lbl= label )? INQUIRE LPAREN inquire_spec_list RPAREN end_of_stmt
{
// MFortranParser2018.g:6039:7: (lbl= label )?
int alt546=2;
int LA546_0 = input.LA(1);
if ( (LA546_0==DIGIT_STR) ) {
alt546=1;
}
switch (alt546) {
case 1 :
// MFortranParser2018.g:6039:8: lbl= label
{
pushFollow(FOLLOW_label_in_inquire_stmt25148);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
INQUIRE519=(Token)match(input,INQUIRE,FOLLOW_INQUIRE_in_inquire_stmt25159); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_inquire_stmt25161); if (state.failed) return;
pushFollow(FOLLOW_inquire_spec_list_in_inquire_stmt25163);
inquire_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_inquire_stmt25165); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_inquire_stmt25174);
end_of_stmt520=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.inquire_stmt(lbl,
INQUIRE519, null, end_of_stmt520, false);}
}
break;
case 2 :
// MFortranParser2018.g:6044:7: (lbl= label )? M_INQUIRE_STMT_2 INQUIRE LPAREN IDENT EQUALS expr RPAREN output_item_list end_of_stmt
{
// MFortranParser2018.g:6044:7: (lbl= label )?
int alt547=2;
int LA547_0 = input.LA(1);
if ( (LA547_0==DIGIT_STR) ) {
alt547=1;
}
switch (alt547) {
case 1 :
// MFortranParser2018.g:6044:8: lbl= label
{
pushFollow(FOLLOW_label_in_inquire_stmt25195);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_INQUIRE_STMT_2,FOLLOW_M_INQUIRE_STMT_2_in_inquire_stmt25206); if (state.failed) return;
INQUIRE521=(Token)match(input,INQUIRE,FOLLOW_INQUIRE_in_inquire_stmt25208); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_inquire_stmt25210); if (state.failed) return;
IDENT522=(Token)match(input,IDENT,FOLLOW_IDENT_in_inquire_stmt25219); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_inquire_stmt25223); if (state.failed) return;
pushFollow(FOLLOW_expr_in_inquire_stmt25225);
expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_inquire_stmt25234); if (state.failed) return;
pushFollow(FOLLOW_output_item_list_in_inquire_stmt25236);
output_item_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_inquire_stmt25245);
end_of_stmt523=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.inquire_stmt(lbl,
INQUIRE521, IDENT522, end_of_stmt523, true);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "inquire_stmt"
// $ANTLR start "inquire_spec"
// MFortranParser2018.g:6066:1: inquire_spec : ( expr | IDENT EQUALS expr );
public final void inquire_spec() throws RecognitionException {
Token IDENT524=null;
try {
// MFortranParser2018.g:6067:5: ( expr | IDENT EQUALS expr )
int alt549=2;
int LA549_0 = input.LA(1);
if ( (LA549_0==BIN_CONST||LA549_0==CHAR_CONST||(LA549_0 >= DEFINED_OP && LA549_0 <= DIGIT_STR)||LA549_0==FALSE||LA549_0==HEX_CONST||LA549_0==LBRACKET||LA549_0==LPAREN||LA549_0==MINUS||LA549_0==M_REAL_CONST||LA549_0==NOT||LA549_0==OCT_CONST||LA549_0==PLUS||LA549_0==TRUE) ) {
alt549=1;
}
else if ( (LA549_0==IDENT) ) {
int LA549_2 = input.LA(2);
if ( (LA549_2==AND||LA549_2==ASTERISK||LA549_2==CHAR_CONST||LA549_2==COMMA||LA549_2==DEFINED_OP||LA549_2==EQ||(LA549_2 >= EQV && LA549_2 <= EQ_EQ)||LA549_2==GE||(LA549_2 >= GREATERTHAN && LA549_2 <= GT)||(LA549_2 >= LBRACKET && LA549_2 <= LE)||(LA549_2 >= LESSTHAN && LA549_2 <= LESSTHAN_EQ)||(LA549_2 >= LPAREN && LA549_2 <= LT)||LA549_2==MINUS||(LA549_2 >= NE && LA549_2 <= NEQV)||LA549_2==OR||LA549_2==PERCENT||LA549_2==PLUS||LA549_2==POWER||LA549_2==RPAREN||(LA549_2 >= SLASH && LA549_2 <= SLASH_SLASH)) ) {
alt549=1;
}
else if ( (LA549_2==EQUALS) ) {
alt549=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 549, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 549, 0, input);
throw nvae;
}
switch (alt549) {
case 1 :
// MFortranParser2018.g:6067:7: expr
{
pushFollow(FOLLOW_expr_in_inquire_spec25274);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.inquire_spec(null); }
}
break;
case 2 :
// MFortranParser2018.g:6069:7: IDENT EQUALS expr
{
IDENT524=(Token)match(input,IDENT,FOLLOW_IDENT_in_inquire_spec25292); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_inquire_spec25294); if (state.failed) return;
pushFollow(FOLLOW_expr_in_inquire_spec25296);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.inquire_spec(IDENT524); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "inquire_spec"
// $ANTLR start "inquire_spec_list"
// MFortranParser2018.g:6073:1: inquire_spec_list : inquire_spec ( COMMA inquire_spec )* ;
public final void inquire_spec_list() throws RecognitionException {
int numIS = 1;
try {
// MFortranParser2018.g:6080:5: ( inquire_spec ( COMMA inquire_spec )* )
// MFortranParser2018.g:6080:7: inquire_spec ( COMMA inquire_spec )*
{
pushFollow(FOLLOW_inquire_spec_in_inquire_spec_list25331);
inquire_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6081:7: ( COMMA inquire_spec )*
loop550:
while (true) {
int alt550=2;
int LA550_0 = input.LA(1);
if ( (LA550_0==COMMA) ) {
alt550=1;
}
switch (alt550) {
case 1 :
// MFortranParser2018.g:6081:9: COMMA inquire_spec
{
match(input,COMMA,FOLLOW_COMMA_in_inquire_spec_list25341); if (state.failed) return;
pushFollow(FOLLOW_inquire_spec_in_inquire_spec_list25343);
inquire_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numIS++;}
}
break;
default :
break loop550;
}
}
}
if ( state.backtracking==0 ) {
MFPA.inquire_spec_list(numIS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "inquire_spec_list"
// $ANTLR start "format_stmt"
// MFortranParser2018.g:6088:1: format_stmt : (lbl= label )? FORMAT format_specification end_of_stmt ;
public final void format_stmt() throws RecognitionException {
Token FORMAT525=null;
Token lbl =null;
Token end_of_stmt526 =null;
try {
// MFortranParser2018.g:6094:5: ( (lbl= label )? FORMAT format_specification end_of_stmt )
// MFortranParser2018.g:6094:7: (lbl= label )? FORMAT format_specification end_of_stmt
{
// MFortranParser2018.g:6094:7: (lbl= label )?
int alt551=2;
int LA551_0 = input.LA(1);
if ( (LA551_0==DIGIT_STR) ) {
alt551=1;
}
switch (alt551) {
case 1 :
// MFortranParser2018.g:6094:8: lbl= label
{
pushFollow(FOLLOW_label_in_format_stmt25378);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
FORMAT525=(Token)match(input,FORMAT,FOLLOW_FORMAT_in_format_stmt25389); if (state.failed) return;
pushFollow(FOLLOW_format_specification_in_format_stmt25391);
format_specification();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_format_stmt25400);
end_of_stmt526=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.format_stmt(lbl,
FORMAT525, end_of_stmt526); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "format_stmt"
// $ANTLR start "format_specification"
// MFortranParser2018.g:6104:1: format_specification : LPAREN ( format_item_list )? ( COMMA unlimited_format_item )? RPAREN ;
public final void format_specification() throws RecognitionException {
boolean hasFIL=false;
boolean hasUFI=false;
try {
// MFortranParser2018.g:6109:5: ( LPAREN ( format_item_list )? ( COMMA unlimited_format_item )? RPAREN )
// MFortranParser2018.g:6109:7: LPAREN ( format_item_list )? ( COMMA unlimited_format_item )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_format_specification25434); if (state.failed) return;
// MFortranParser2018.g:6109:14: ( format_item_list )?
int alt552=2;
int LA552_0 = input.LA(1);
if ( (LA552_0==DIGIT_STR||LA552_0==LPAREN||(LA552_0 >= M_CSTR_EDIT_DESC && LA552_0 <= M_DATA_EDIT_DESC)) ) {
alt552=1;
}
switch (alt552) {
case 1 :
// MFortranParser2018.g:6109:16: format_item_list
{
pushFollow(FOLLOW_format_item_list_in_format_specification25438);
format_item_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasFIL=true;}
}
break;
}
// MFortranParser2018.g:6110:7: ( COMMA unlimited_format_item )?
int alt553=2;
int LA553_0 = input.LA(1);
if ( (LA553_0==COMMA) ) {
alt553=1;
}
switch (alt553) {
case 1 :
// MFortranParser2018.g:6110:8: COMMA unlimited_format_item
{
match(input,COMMA,FOLLOW_COMMA_in_format_specification25452); if (state.failed) return;
pushFollow(FOLLOW_unlimited_format_item_in_format_specification25454);
unlimited_format_item();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasUFI=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_format_specification25460); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.format_specification(hasFIL, hasUFI); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "format_specification"
// $ANTLR start "format_item"
// MFortranParser2018.g:6120:1: format_item : ( M_DATA_EDIT_DESC | M_CTRL_EDIT_DESC | M_CSTR_EDIT_DESC | ( DIGIT_STR )? LPAREN format_item_list RPAREN );
public final void format_item() throws RecognitionException {
Token M_DATA_EDIT_DESC527=null;
Token M_CTRL_EDIT_DESC528=null;
Token M_CSTR_EDIT_DESC529=null;
Token DIGIT_STR530=null;
Token descOrDigit=null;
boolean hasFIL = false;
try {
// MFortranParser2018.g:6125:5: ( M_DATA_EDIT_DESC | M_CTRL_EDIT_DESC | M_CSTR_EDIT_DESC | ( DIGIT_STR )? LPAREN format_item_list RPAREN )
int alt555=4;
switch ( input.LA(1) ) {
case M_DATA_EDIT_DESC:
{
alt555=1;
}
break;
case M_CTRL_EDIT_DESC:
{
alt555=2;
}
break;
case M_CSTR_EDIT_DESC:
{
alt555=3;
}
break;
case DIGIT_STR:
case LPAREN:
{
alt555=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 555, 0, input);
throw nvae;
}
switch (alt555) {
case 1 :
// MFortranParser2018.g:6125:7: M_DATA_EDIT_DESC
{
M_DATA_EDIT_DESC527=(Token)match(input,M_DATA_EDIT_DESC,FOLLOW_M_DATA_EDIT_DESC_in_format_item25494); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.format_item(M_DATA_EDIT_DESC527, hasFIL); }
}
break;
case 2 :
// MFortranParser2018.g:6127:7: M_CTRL_EDIT_DESC
{
M_CTRL_EDIT_DESC528=(Token)match(input,M_CTRL_EDIT_DESC,FOLLOW_M_CTRL_EDIT_DESC_in_format_item25513); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.format_item(M_CTRL_EDIT_DESC528, hasFIL);}
}
break;
case 3 :
// MFortranParser2018.g:6129:7: M_CSTR_EDIT_DESC
{
M_CSTR_EDIT_DESC529=(Token)match(input,M_CSTR_EDIT_DESC,FOLLOW_M_CSTR_EDIT_DESC_in_format_item25531); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.format_item(M_CSTR_EDIT_DESC529, hasFIL);}
}
break;
case 4 :
// MFortranParser2018.g:6131:7: ( DIGIT_STR )? LPAREN format_item_list RPAREN
{
// MFortranParser2018.g:6131:7: ( DIGIT_STR )?
int alt554=2;
int LA554_0 = input.LA(1);
if ( (LA554_0==DIGIT_STR) ) {
alt554=1;
}
switch (alt554) {
case 1 :
// MFortranParser2018.g:6131:8: DIGIT_STR
{
DIGIT_STR530=(Token)match(input,DIGIT_STR,FOLLOW_DIGIT_STR_in_format_item25550); if (state.failed) return;
if ( state.backtracking==0 ) {descOrDigit=DIGIT_STR530;}
}
break;
}
match(input,LPAREN,FOLLOW_LPAREN_in_format_item25564); if (state.failed) return;
pushFollow(FOLLOW_format_item_list_in_format_item25566);
format_item_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_format_item25568); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.format_item(descOrDigit, hasFIL);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "format_item"
// $ANTLR start "format_item_list"
// MFortranParser2018.g:6137:1: format_item_list : format_item ( ( COMMA )? format_item )* ;
public final void format_item_list() throws RecognitionException {
int numFI = 1;
try {
// MFortranParser2018.g:6144:5: ( format_item ( ( COMMA )? format_item )* )
// MFortranParser2018.g:6144:7: format_item ( ( COMMA )? format_item )*
{
pushFollow(FOLLOW_format_item_in_format_item_list25605);
format_item();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6145:7: ( ( COMMA )? format_item )*
loop557:
while (true) {
int alt557=2;
int LA557_0 = input.LA(1);
if ( (LA557_0==COMMA) ) {
int LA557_1 = input.LA(2);
if ( (LA557_1==DIGIT_STR||LA557_1==LPAREN||(LA557_1 >= M_CSTR_EDIT_DESC && LA557_1 <= M_DATA_EDIT_DESC)) ) {
alt557=1;
}
}
else if ( (LA557_0==DIGIT_STR||LA557_0==LPAREN||(LA557_0 >= M_CSTR_EDIT_DESC && LA557_0 <= M_DATA_EDIT_DESC)) ) {
alt557=1;
}
switch (alt557) {
case 1 :
// MFortranParser2018.g:6145:9: ( COMMA )? format_item
{
// MFortranParser2018.g:6145:9: ( COMMA )?
int alt556=2;
int LA556_0 = input.LA(1);
if ( (LA556_0==COMMA) ) {
alt556=1;
}
switch (alt556) {
case 1 :
// MFortranParser2018.g:6145:10: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_format_item_list25617); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_format_item_in_format_item_list25621);
format_item();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numFI++;}
}
break;
default :
break loop557;
}
}
}
if ( state.backtracking==0 ) {
MFPA.format_item_list(numFI);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "format_item_list"
// $ANTLR start "unlimited_format_item"
// MFortranParser2018.g:6151:1: unlimited_format_item : ASTERISK LPAREN format_item_list RPAREN ;
public final void unlimited_format_item() throws RecognitionException {
try {
// MFortranParser2018.g:6152:5: ( ASTERISK LPAREN format_item_list RPAREN )
// MFortranParser2018.g:6152:7: ASTERISK LPAREN format_item_list RPAREN
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_unlimited_format_item25645); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_unlimited_format_item25647); if (state.failed) return;
pushFollow(FOLLOW_format_item_list_in_unlimited_format_item25649);
format_item_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_unlimited_format_item25651); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.unlimited_format_item(); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "unlimited_format_item"
// $ANTLR start "main_program"
// MFortranParser2018.g:6211:1: main_program : program_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_program_stmt ;
public final void main_program() throws RecognitionException {
boolean hasEP = false;
boolean hasISP = false;
try {
// MFortranParser2018.g:6219:5: ( program_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_program_stmt )
// MFortranParser2018.g:6219:7: program_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_program_stmt
{
pushFollow(FOLLOW_program_stmt_in_main_program25691);
program_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_main_program25699);
specification_part();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6221:7: ( execution_part )?
int alt558=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA558_1 = input.LA(2);
if ( (LA558_1==ALLOCATE||LA558_1==ASSOCIATE||LA558_1==BACKSPACE||LA558_1==BLOCK||LA558_1==CALL||LA558_1==CLOSE||LA558_1==CONTINUE||(LA558_1 >= CRITICAL && LA558_1 <= CYCLE)||LA558_1==DEALLOCATE||LA558_1==DO||LA558_1==EXIT||LA558_1==FLUSH||(LA558_1 >= GO && LA558_1 <= GOTO)||(LA558_1 >= IDENT && LA558_1 <= IF)||LA558_1==INQUIRE||(LA558_1 >= M_ALLOCATE_STMT_1 && LA558_1 <= M_ASSIGNMENT_STMT)||(LA558_1 >= M_FORALL_CONSTRUCT_STMT && LA558_1 <= M_IF_STMT)||LA558_1==M_INQUIRE_STMT_2||LA558_1==M_PTR_ASSIGNMENT_STMT||LA558_1==M_WHERE_STMT||LA558_1==NULLIFY||LA558_1==OPEN||LA558_1==PRINT||LA558_1==READ||(LA558_1 >= RETURN && LA558_1 <= REWIND)||(LA558_1 >= SELECT && LA558_1 <= SELECTTYPE)||LA558_1==STOP||LA558_1==SYNC||LA558_1==WAIT||LA558_1==WRITE) ) {
alt558=1;
}
else if ( (LA558_1==END) ) {
int LA558_3 = input.LA(3);
if ( (LA558_3==FILE) ) {
alt558=1;
}
}
}
break;
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DEALLOCATE:
case DO:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_CONSTRUCT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRAGMA:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt558=1;
}
break;
case END:
{
int LA558_3 = input.LA(2);
if ( (LA558_3==FILE) ) {
alt558=1;
}
}
break;
}
switch (alt558) {
case 1 :
// MFortranParser2018.g:6221:9: execution_part
{
pushFollow(FOLLOW_execution_part_in_main_program25709);
execution_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasEP = true;}
}
break;
}
// MFortranParser2018.g:6222:7: ( internal_subprogram_part )?
int alt559=2;
int LA559_0 = input.LA(1);
if ( (LA559_0==DIGIT_STR) ) {
int LA559_1 = input.LA(2);
if ( (LA559_1==CONTAINS) ) {
alt559=1;
}
}
else if ( (LA559_0==CONTAINS) ) {
alt559=1;
}
switch (alt559) {
case 1 :
// MFortranParser2018.g:6222:9: internal_subprogram_part
{
pushFollow(FOLLOW_internal_subprogram_part_in_main_program25724);
internal_subprogram_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasISP = true;}
}
break;
}
pushFollow(FOLLOW_end_program_stmt_in_main_program25737);
end_program_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.main_program(hasEP, hasISP);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "main_program"
// $ANTLR start "program_stmt"
// MFortranParser2018.g:6230:1: program_stmt : (lbl= label )? PROGRAM IDENT end_of_stmt ;
public final void program_stmt() throws RecognitionException {
Token PROGRAM531=null;
Token IDENT532=null;
Token lbl =null;
Token end_of_stmt533 =null;
try {
// MFortranParser2018.g:6236:5: ( (lbl= label )? PROGRAM IDENT end_of_stmt )
// MFortranParser2018.g:6236:7: (lbl= label )? PROGRAM IDENT end_of_stmt
{
// MFortranParser2018.g:6236:7: (lbl= label )?
int alt560=2;
int LA560_0 = input.LA(1);
if ( (LA560_0==DIGIT_STR) ) {
alt560=1;
}
switch (alt560) {
case 1 :
// MFortranParser2018.g:6236:8: lbl= label
{
pushFollow(FOLLOW_label_in_program_stmt25770);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PROGRAM531=(Token)match(input,PROGRAM,FOLLOW_PROGRAM_in_program_stmt25781); if (state.failed) return;
IDENT532=(Token)match(input,IDENT,FOLLOW_IDENT_in_program_stmt25783); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_program_stmt25792);
end_of_stmt533=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.program_stmt(lbl,
PROGRAM531, IDENT532, end_of_stmt533); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "program_stmt"
// $ANTLR start "end_program_stmt"
// MFortranParser2018.g:6247:1: end_program_stmt : ( (lbl= label )? END PROGRAM ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt );
public final void end_program_stmt() throws RecognitionException {
Token IDENT534=null;
Token END535=null;
Token PROGRAM536=null;
Token END538=null;
Token lbl =null;
Token end_of_stmt537 =null;
Token end_of_stmt539 =null;
Token id = null;
try {
// MFortranParser2018.g:6254:5: ( (lbl= label )? END PROGRAM ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt )
int alt564=2;
int LA564_0 = input.LA(1);
if ( (LA564_0==DIGIT_STR) ) {
int LA564_1 = input.LA(2);
if ( (LA564_1==END) ) {
int LA564_2 = input.LA(3);
if ( (LA564_2==PROGRAM) ) {
alt564=1;
}
else if ( (LA564_2==EOF||LA564_2==EOS) ) {
alt564=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 564, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 564, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA564_0==END) ) {
int LA564_2 = input.LA(2);
if ( (LA564_2==PROGRAM) ) {
alt564=1;
}
else if ( (LA564_2==EOF||LA564_2==EOS) ) {
alt564=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 564, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 564, 0, input);
throw nvae;
}
switch (alt564) {
case 1 :
// MFortranParser2018.g:6254:7: (lbl= label )? END PROGRAM ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:6254:7: (lbl= label )?
int alt561=2;
int LA561_0 = input.LA(1);
if ( (LA561_0==DIGIT_STR) ) {
alt561=1;
}
switch (alt561) {
case 1 :
// MFortranParser2018.g:6254:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_program_stmt25832);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END535=(Token)match(input,END,FOLLOW_END_in_end_program_stmt25843); if (state.failed) return;
PROGRAM536=(Token)match(input,PROGRAM,FOLLOW_PROGRAM_in_end_program_stmt25845); if (state.failed) return;
// MFortranParser2018.g:6255:19: ( IDENT )?
int alt562=2;
int LA562_0 = input.LA(1);
if ( (LA562_0==IDENT) ) {
alt562=1;
}
switch (alt562) {
case 1 :
// MFortranParser2018.g:6255:20: IDENT
{
IDENT534=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_program_stmt25848); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT534;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_program_stmt25861);
end_of_stmt537=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_program_stmt(lbl,
END535, PROGRAM536, id, end_of_stmt537); }
}
break;
case 2 :
// MFortranParser2018.g:6259:7: (lbl= label )? END end_of_stmt
{
// MFortranParser2018.g:6259:7: (lbl= label )?
int alt563=2;
int LA563_0 = input.LA(1);
if ( (LA563_0==DIGIT_STR) ) {
alt563=1;
}
switch (alt563) {
case 1 :
// MFortranParser2018.g:6259:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_program_stmt25882);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END538=(Token)match(input,END,FOLLOW_END_in_end_program_stmt25893); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_end_program_stmt25902);
end_of_stmt539=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_program_stmt(lbl,
END538, null, null, end_of_stmt539); }
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_program_stmt"
// $ANTLR start "module"
// MFortranParser2018.g:6273:1: module : module_stmt specification_part ( module_subprogram_part )? end_module_stmt ;
public final void module() throws RecognitionException {
try {
// MFortranParser2018.g:6277:5: ( module_stmt specification_part ( module_subprogram_part )? end_module_stmt )
// MFortranParser2018.g:6277:7: module_stmt specification_part ( module_subprogram_part )? end_module_stmt
{
pushFollow(FOLLOW_module_stmt_in_module25936);
module_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_module25944);
specification_part();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6279:7: ( module_subprogram_part )?
int alt565=2;
int LA565_0 = input.LA(1);
if ( (LA565_0==DIGIT_STR) ) {
int LA565_1 = input.LA(2);
if ( (LA565_1==CONTAINS) ) {
alt565=1;
}
}
else if ( (LA565_0==CONTAINS) ) {
alt565=1;
}
switch (alt565) {
case 1 :
// MFortranParser2018.g:6279:9: module_subprogram_part
{
pushFollow(FOLLOW_module_subprogram_part_in_module25954);
module_subprogram_part();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_module_stmt_in_module25965);
end_module_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.module();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "module"
// $ANTLR start "module_stmt"
// MFortranParser2018.g:6286:1: module_stmt : (lbl= label )? MODULE ( IDENT )? end_of_stmt ;
public final void module_stmt() throws RecognitionException {
Token IDENT540=null;
Token MODULE541=null;
Token lbl =null;
Token end_of_stmt542 =null;
Token id = null;
try {
// MFortranParser2018.g:6293:5: ( (lbl= label )? MODULE ( IDENT )? end_of_stmt )
// MFortranParser2018.g:6293:7: (lbl= label )? MODULE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:6293:7: (lbl= label )?
int alt566=2;
int LA566_0 = input.LA(1);
if ( (LA566_0==DIGIT_STR) ) {
alt566=1;
}
switch (alt566) {
case 1 :
// MFortranParser2018.g:6293:8: lbl= label
{
pushFollow(FOLLOW_label_in_module_stmt25995);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
MODULE541=(Token)match(input,MODULE,FOLLOW_MODULE_in_module_stmt26006); if (state.failed) return;
// MFortranParser2018.g:6294:14: ( IDENT )?
int alt567=2;
int LA567_0 = input.LA(1);
if ( (LA567_0==IDENT) ) {
alt567=1;
}
switch (alt567) {
case 1 :
// MFortranParser2018.g:6294:16: IDENT
{
IDENT540=(Token)match(input,IDENT,FOLLOW_IDENT_in_module_stmt26010); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT540;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_module_stmt26023);
end_of_stmt542=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.module_stmt(lbl,
MODULE541, id, end_of_stmt542);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "module_stmt"
// $ANTLR start "end_module_stmt"
// MFortranParser2018.g:6303:1: end_module_stmt : ( (lbl= label )? END MODULE ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt );
public final void end_module_stmt() throws RecognitionException {
Token IDENT543=null;
Token END544=null;
Token MODULE545=null;
Token END547=null;
Token lbl =null;
Token end_of_stmt546 =null;
Token end_of_stmt548 =null;
Token id = null;
try {
// MFortranParser2018.g:6310:5: ( (lbl= label )? END MODULE ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt )
int alt571=2;
int LA571_0 = input.LA(1);
if ( (LA571_0==DIGIT_STR) ) {
int LA571_1 = input.LA(2);
if ( (LA571_1==END) ) {
int LA571_2 = input.LA(3);
if ( (LA571_2==MODULE) ) {
alt571=1;
}
else if ( (LA571_2==EOF||LA571_2==EOS) ) {
alt571=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 571, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 571, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA571_0==END) ) {
int LA571_2 = input.LA(2);
if ( (LA571_2==MODULE) ) {
alt571=1;
}
else if ( (LA571_2==EOF||LA571_2==EOS) ) {
alt571=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 571, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 571, 0, input);
throw nvae;
}
switch (alt571) {
case 1 :
// MFortranParser2018.g:6310:7: (lbl= label )? END MODULE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:6310:7: (lbl= label )?
int alt568=2;
int LA568_0 = input.LA(1);
if ( (LA568_0==DIGIT_STR) ) {
alt568=1;
}
switch (alt568) {
case 1 :
// MFortranParser2018.g:6310:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_module_stmt26063);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END544=(Token)match(input,END,FOLLOW_END_in_end_module_stmt26074); if (state.failed) return;
MODULE545=(Token)match(input,MODULE,FOLLOW_MODULE_in_end_module_stmt26076); if (state.failed) return;
// MFortranParser2018.g:6311:18: ( IDENT )?
int alt569=2;
int LA569_0 = input.LA(1);
if ( (LA569_0==IDENT) ) {
alt569=1;
}
switch (alt569) {
case 1 :
// MFortranParser2018.g:6311:19: IDENT
{
IDENT543=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_module_stmt26079); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT543;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_module_stmt26091);
end_of_stmt546=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_module_stmt(lbl,
END544, MODULE545, id, end_of_stmt546);}
}
break;
case 2 :
// MFortranParser2018.g:6315:7: (lbl= label )? END end_of_stmt
{
// MFortranParser2018.g:6315:7: (lbl= label )?
int alt570=2;
int LA570_0 = input.LA(1);
if ( (LA570_0==DIGIT_STR) ) {
alt570=1;
}
switch (alt570) {
case 1 :
// MFortranParser2018.g:6315:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_module_stmt26112);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END547=(Token)match(input,END,FOLLOW_END_in_end_module_stmt26117); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_end_module_stmt26126);
end_of_stmt548=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_module_stmt(lbl,
END547, null, id, end_of_stmt548);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_module_stmt"
// $ANTLR start "module_subprogram_part"
// MFortranParser2018.g:6324:1: module_subprogram_part : contains_stmt ( module_subprogram )* ;
public final void module_subprogram_part() throws RecognitionException {
int numMS = 0;
try {
// MFortranParser2018.g:6331:5: ( contains_stmt ( module_subprogram )* )
// MFortranParser2018.g:6331:7: contains_stmt ( module_subprogram )*
{
pushFollow(FOLLOW_contains_stmt_in_module_subprogram_part26163);
contains_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6332:7: ( module_subprogram )*
loop572:
while (true) {
int alt572=2;
int LA572_0 = input.LA(1);
if ( (LA572_0==DIGIT_STR) ) {
int LA572_1 = input.LA(2);
if ( (LA572_1==CHARACTER||LA572_1==CLASS||LA572_1==COMPLEX||(LA572_1 >= DOUBLE && LA572_1 <= DOUBLEPRECISION)||LA572_1==ELEMENTAL||LA572_1==FUNCTION||LA572_1==IMPURE||LA572_1==INTEGER||LA572_1==LOGICAL||LA572_1==MODULE||LA572_1==NON_RECURSIVE||LA572_1==PURE||(LA572_1 >= REAL && LA572_1 <= RECURSIVE)||LA572_1==SUBROUTINE||LA572_1==TYPE) ) {
alt572=1;
}
}
else if ( (LA572_0==CHARACTER||LA572_0==CLASS||LA572_0==COMPLEX||(LA572_0 >= DOUBLE && LA572_0 <= DOUBLEPRECISION)||LA572_0==ELEMENTAL||LA572_0==FUNCTION||LA572_0==IMPURE||LA572_0==INTEGER||LA572_0==LOGICAL||LA572_0==MODULE||LA572_0==NON_RECURSIVE||LA572_0==PURE||(LA572_0 >= REAL && LA572_0 <= RECURSIVE)||LA572_0==SUBROUTINE||LA572_0==TYPE) ) {
alt572=1;
}
switch (alt572) {
case 1 :
// MFortranParser2018.g:6332:9: module_subprogram
{
pushFollow(FOLLOW_module_subprogram_in_module_subprogram_part26173);
module_subprogram();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numMS++;}
}
break;
default :
break loop572;
}
}
}
if ( state.backtracking==0 ) {
MFPA.module_subprogram_part(numMS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "module_subprogram_part"
// $ANTLR start "module_subprogram"
// MFortranParser2018.g:6338:1: module_subprogram options {backtrack=true; } : ( ( prefix )? function_subprogram | subroutine_subprogram | separate_module_subprogram );
public final void module_subprogram() throws RecognitionException {
boolean hasPref = false;
try {
// MFortranParser2018.g:6346:5: ( ( prefix )? function_subprogram | subroutine_subprogram | separate_module_subprogram )
int alt574=3;
switch ( input.LA(1) ) {
case INTEGER:
{
int LA574_1 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case REAL:
{
int LA574_2 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE:
{
int LA574_3 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLEPRECISION:
{
int LA574_4 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case COMPLEX:
{
int LA574_5 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLECOMPLEX:
{
int LA574_6 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHARACTER:
{
int LA574_7 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LOGICAL:
{
int LA574_8 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TYPE:
{
int LA574_9 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CLASS:
{
int LA574_10 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELEMENTAL:
{
int LA574_11 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 11, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IMPURE:
{
int LA574_12 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MODULE:
{
int LA574_13 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else if ( (true) ) {
alt574=3;
}
}
break;
case NON_RECURSIVE:
{
int LA574_14 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 14, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PURE:
{
int LA574_15 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 15, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case RECURSIVE:
{
int LA574_16 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 574, 16, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIGIT_STR:
{
int LA574_17 = input.LA(2);
if ( (synpred70_MFortranParser2018()) ) {
alt574=1;
}
else if ( (synpred71_MFortranParser2018()) ) {
alt574=2;
}
else if ( (true) ) {
alt574=3;
}
}
break;
case FUNCTION:
{
alt574=1;
}
break;
case SUBROUTINE:
{
alt574=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 574, 0, input);
throw nvae;
}
switch (alt574) {
case 1 :
// MFortranParser2018.g:6346:7: ( prefix )? function_subprogram
{
// MFortranParser2018.g:6346:7: ( prefix )?
int alt573=2;
int LA573_0 = input.LA(1);
if ( (LA573_0==CHARACTER||LA573_0==CLASS||LA573_0==COMPLEX||(LA573_0 >= DOUBLE && LA573_0 <= DOUBLEPRECISION)||LA573_0==ELEMENTAL||LA573_0==IMPURE||LA573_0==INTEGER||LA573_0==LOGICAL||LA573_0==MODULE||LA573_0==NON_RECURSIVE||LA573_0==PURE||(LA573_0 >= REAL && LA573_0 <= RECURSIVE)||LA573_0==TYPE) ) {
alt573=1;
}
switch (alt573) {
case 1 :
// MFortranParser2018.g:6346:8: prefix
{
pushFollow(FOLLOW_prefix_in_module_subprogram26213);
prefix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasPref=true;}
}
break;
}
pushFollow(FOLLOW_function_subprogram_in_module_subprogram26219);
function_subprogram();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:6347:7: subroutine_subprogram
{
pushFollow(FOLLOW_subroutine_subprogram_in_module_subprogram26227);
subroutine_subprogram();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// MFortranParser2018.g:6348:7: separate_module_subprogram
{
pushFollow(FOLLOW_separate_module_subprogram_in_module_subprogram26235);
separate_module_subprogram();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.module_subprogram(hasPref);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "module_subprogram"
// $ANTLR start "use_stmt"
// MFortranParser2018.g:6354:1: use_stmt : ( (lbl= label )? USE ( ( COMMA module_nature )? COLON_COLON )? IDENT ( COMMA rename_list )? end_of_stmt | (lbl= label )? USE ( ( COMMA module_nature )? COLON_COLON )? IDENT COMMA ONLY COLON ( only_list )? end_of_stmt );
public final void use_stmt() throws RecognitionException {
Token USE549=null;
Token IDENT550=null;
Token USE552=null;
Token IDENT553=null;
Token ONLY554=null;
Token lbl =null;
Token end_of_stmt551 =null;
Token end_of_stmt555 =null;
boolean hasMN = false;
boolean hasRL = false;
boolean hasOL = false;
try {
// MFortranParser2018.g:6363:5: ( (lbl= label )? USE ( ( COMMA module_nature )? COLON_COLON )? IDENT ( COMMA rename_list )? end_of_stmt | (lbl= label )? USE ( ( COMMA module_nature )? COLON_COLON )? IDENT COMMA ONLY COLON ( only_list )? end_of_stmt )
int alt583=2;
int LA583_0 = input.LA(1);
if ( (LA583_0==DIGIT_STR) ) {
int LA583_1 = input.LA(2);
if ( (LA583_1==USE) ) {
switch ( input.LA(3) ) {
case COMMA:
{
int LA583_3 = input.LA(4);
if ( (LA583_3==INTRINSIC) ) {
int LA583_6 = input.LA(5);
if ( (LA583_6==COLON_COLON) ) {
int LA583_4 = input.LA(6);
if ( (LA583_4==IDENT) ) {
int LA583_5 = input.LA(7);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(8);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 8 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 7 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 6 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_3==NON_INTRINSIC) ) {
int LA583_7 = input.LA(5);
if ( (LA583_7==COLON_COLON) ) {
int LA583_4 = input.LA(6);
if ( (LA583_4==IDENT) ) {
int LA583_5 = input.LA(7);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(8);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 8 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 7 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 6 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case COLON_COLON:
{
int LA583_4 = input.LA(4);
if ( (LA583_4==IDENT) ) {
int LA583_5 = input.LA(5);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(6);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 6 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENT:
{
int LA583_5 = input.LA(4);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(5);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 583, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_0==USE) ) {
switch ( input.LA(2) ) {
case COMMA:
{
int LA583_3 = input.LA(3);
if ( (LA583_3==INTRINSIC) ) {
int LA583_6 = input.LA(4);
if ( (LA583_6==COLON_COLON) ) {
int LA583_4 = input.LA(5);
if ( (LA583_4==IDENT) ) {
int LA583_5 = input.LA(6);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(7);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 7 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 6 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_3==NON_INTRINSIC) ) {
int LA583_7 = input.LA(4);
if ( (LA583_7==COLON_COLON) ) {
int LA583_4 = input.LA(5);
if ( (LA583_4==IDENT) ) {
int LA583_5 = input.LA(6);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(7);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 7 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 6 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case COLON_COLON:
{
int LA583_4 = input.LA(3);
if ( (LA583_4==IDENT) ) {
int LA583_5 = input.LA(4);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(5);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENT:
{
int LA583_5 = input.LA(3);
if ( (LA583_5==COMMA) ) {
int LA583_8 = input.LA(4);
if ( (LA583_8==ONLY) ) {
alt583=2;
}
else if ( (LA583_8==IDENT||LA583_8==OPERATOR) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA583_5==EOF||LA583_5==EOS) ) {
alt583=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 583, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 583, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 583, 0, input);
throw nvae;
}
switch (alt583) {
case 1 :
// MFortranParser2018.g:6363:7: (lbl= label )? USE ( ( COMMA module_nature )? COLON_COLON )? IDENT ( COMMA rename_list )? end_of_stmt
{
// MFortranParser2018.g:6363:7: (lbl= label )?
int alt575=2;
int LA575_0 = input.LA(1);
if ( (LA575_0==DIGIT_STR) ) {
alt575=1;
}
switch (alt575) {
case 1 :
// MFortranParser2018.g:6363:8: lbl= label
{
pushFollow(FOLLOW_label_in_use_stmt26265);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
USE549=(Token)match(input,USE,FOLLOW_USE_in_use_stmt26276); if (state.failed) return;
// MFortranParser2018.g:6364:11: ( ( COMMA module_nature )? COLON_COLON )?
int alt577=2;
int LA577_0 = input.LA(1);
if ( ((LA577_0 >= COLON_COLON && LA577_0 <= COMMA)) ) {
alt577=1;
}
switch (alt577) {
case 1 :
// MFortranParser2018.g:6364:12: ( COMMA module_nature )? COLON_COLON
{
// MFortranParser2018.g:6364:12: ( COMMA module_nature )?
int alt576=2;
int LA576_0 = input.LA(1);
if ( (LA576_0==COMMA) ) {
alt576=1;
}
switch (alt576) {
case 1 :
// MFortranParser2018.g:6364:13: COMMA module_nature
{
match(input,COMMA,FOLLOW_COMMA_in_use_stmt26280); if (state.failed) return;
pushFollow(FOLLOW_module_nature_in_use_stmt26282);
module_nature();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasMN=true;}
}
break;
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_use_stmt26288); if (state.failed) return;
}
break;
}
IDENT550=(Token)match(input,IDENT,FOLLOW_IDENT_in_use_stmt26299); if (state.failed) return;
// MFortranParser2018.g:6365:13: ( COMMA rename_list )?
int alt578=2;
int LA578_0 = input.LA(1);
if ( (LA578_0==COMMA) ) {
alt578=1;
}
switch (alt578) {
case 1 :
// MFortranParser2018.g:6365:14: COMMA rename_list
{
match(input,COMMA,FOLLOW_COMMA_in_use_stmt26302); if (state.failed) return;
pushFollow(FOLLOW_rename_list_in_use_stmt26304);
rename_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasRL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_use_stmt26317);
end_of_stmt551=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.use_stmt(lbl,
USE549, IDENT550, null, end_of_stmt551, hasMN, hasRL, hasOL);}
}
break;
case 2 :
// MFortranParser2018.g:6369:7: (lbl= label )? USE ( ( COMMA module_nature )? COLON_COLON )? IDENT COMMA ONLY COLON ( only_list )? end_of_stmt
{
// MFortranParser2018.g:6369:7: (lbl= label )?
int alt579=2;
int LA579_0 = input.LA(1);
if ( (LA579_0==DIGIT_STR) ) {
alt579=1;
}
switch (alt579) {
case 1 :
// MFortranParser2018.g:6369:8: lbl= label
{
pushFollow(FOLLOW_label_in_use_stmt26338);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
USE552=(Token)match(input,USE,FOLLOW_USE_in_use_stmt26349); if (state.failed) return;
// MFortranParser2018.g:6370:11: ( ( COMMA module_nature )? COLON_COLON )?
int alt581=2;
int LA581_0 = input.LA(1);
if ( ((LA581_0 >= COLON_COLON && LA581_0 <= COMMA)) ) {
alt581=1;
}
switch (alt581) {
case 1 :
// MFortranParser2018.g:6370:12: ( COMMA module_nature )? COLON_COLON
{
// MFortranParser2018.g:6370:12: ( COMMA module_nature )?
int alt580=2;
int LA580_0 = input.LA(1);
if ( (LA580_0==COMMA) ) {
alt580=1;
}
switch (alt580) {
case 1 :
// MFortranParser2018.g:6370:13: COMMA module_nature
{
match(input,COMMA,FOLLOW_COMMA_in_use_stmt26353); if (state.failed) return;
pushFollow(FOLLOW_module_nature_in_use_stmt26355);
module_nature();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasMN=true;}
}
break;
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_use_stmt26361); if (state.failed) return;
}
break;
}
IDENT553=(Token)match(input,IDENT,FOLLOW_IDENT_in_use_stmt26372); if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_use_stmt26374); if (state.failed) return;
ONLY554=(Token)match(input,ONLY,FOLLOW_ONLY_in_use_stmt26376); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_use_stmt26378); if (state.failed) return;
// MFortranParser2018.g:6371:30: ( only_list )?
int alt582=2;
int LA582_0 = input.LA(1);
if ( (LA582_0==ASSIGNMENT||LA582_0==IDENT||LA582_0==OPERATOR||LA582_0==READ||LA582_0==WRITE) ) {
alt582=1;
}
switch (alt582) {
case 1 :
// MFortranParser2018.g:6371:31: only_list
{
pushFollow(FOLLOW_only_list_in_use_stmt26381);
only_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasOL=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_use_stmt26394);
end_of_stmt555=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.use_stmt(lbl,
USE552, IDENT553, ONLY554, end_of_stmt555, hasMN, hasRL, hasOL);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "use_stmt"
// $ANTLR start "module_nature"
// MFortranParser2018.g:6380:1: module_nature : ( INTRINSIC | NON_INTRINSIC );
public final void module_nature() throws RecognitionException {
Token INTRINSIC556=null;
Token NON_INTRINSIC557=null;
try {
// MFortranParser2018.g:6381:5: ( INTRINSIC | NON_INTRINSIC )
int alt584=2;
int LA584_0 = input.LA(1);
if ( (LA584_0==INTRINSIC) ) {
alt584=1;
}
else if ( (LA584_0==NON_INTRINSIC) ) {
alt584=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 584, 0, input);
throw nvae;
}
switch (alt584) {
case 1 :
// MFortranParser2018.g:6381:7: INTRINSIC
{
INTRINSIC556=(Token)match(input,INTRINSIC,FOLLOW_INTRINSIC_in_module_nature26423); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.module_nature(INTRINSIC556); }
}
break;
case 2 :
// MFortranParser2018.g:6383:7: NON_INTRINSIC
{
NON_INTRINSIC557=(Token)match(input,NON_INTRINSIC,FOLLOW_NON_INTRINSIC_in_module_nature26444); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.module_nature(NON_INTRINSIC557); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "module_nature"
// $ANTLR start "rename"
// MFortranParser2018.g:6395:1: rename : (id1= IDENT EQ_GT id2= IDENT |op1= OPERATOR LPAREN defOp1= DEFINED_OP RPAREN EQ_GT op2= OPERATOR LPAREN defOp2= DEFINED_OP RPAREN );
public final void rename() throws RecognitionException {
Token id1=null;
Token id2=null;
Token op1=null;
Token defOp1=null;
Token op2=null;
Token defOp2=null;
try {
// MFortranParser2018.g:6396:5: (id1= IDENT EQ_GT id2= IDENT |op1= OPERATOR LPAREN defOp1= DEFINED_OP RPAREN EQ_GT op2= OPERATOR LPAREN defOp2= DEFINED_OP RPAREN )
int alt585=2;
int LA585_0 = input.LA(1);
if ( (LA585_0==IDENT) ) {
alt585=1;
}
else if ( (LA585_0==OPERATOR) ) {
alt585=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 585, 0, input);
throw nvae;
}
switch (alt585) {
case 1 :
// MFortranParser2018.g:6396:7: id1= IDENT EQ_GT id2= IDENT
{
id1=(Token)match(input,IDENT,FOLLOW_IDENT_in_rename26477); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_rename26479); if (state.failed) return;
id2=(Token)match(input,IDENT,FOLLOW_IDENT_in_rename26483); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.rename(id1, id2, null, null, null, null); }
}
break;
case 2 :
// MFortranParser2018.g:6398:7: op1= OPERATOR LPAREN defOp1= DEFINED_OP RPAREN EQ_GT op2= OPERATOR LPAREN defOp2= DEFINED_OP RPAREN
{
op1=(Token)match(input,OPERATOR,FOLLOW_OPERATOR_in_rename26503); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_rename26505); if (state.failed) return;
defOp1=(Token)match(input,DEFINED_OP,FOLLOW_DEFINED_OP_in_rename26509); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_rename26511); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_rename26520); if (state.failed) return;
op2=(Token)match(input,OPERATOR,FOLLOW_OPERATOR_in_rename26524); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_rename26526); if (state.failed) return;
defOp2=(Token)match(input,DEFINED_OP,FOLLOW_DEFINED_OP_in_rename26530); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_rename26532); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.rename(null, null, op1, defOp1, op2, defOp2); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "rename"
// $ANTLR start "rename_list"
// MFortranParser2018.g:6403:1: rename_list : rename ( COMMA rename )* ;
public final void rename_list() throws RecognitionException {
int numRn = 1;
try {
// MFortranParser2018.g:6410:5: ( rename ( COMMA rename )* )
// MFortranParser2018.g:6410:7: rename ( COMMA rename )*
{
pushFollow(FOLLOW_rename_in_rename_list26568);
rename();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6411:7: ( COMMA rename )*
loop586:
while (true) {
int alt586=2;
int LA586_0 = input.LA(1);
if ( (LA586_0==COMMA) ) {
alt586=1;
}
switch (alt586) {
case 1 :
// MFortranParser2018.g:6411:9: COMMA rename
{
match(input,COMMA,FOLLOW_COMMA_in_rename_list26578); if (state.failed) return;
pushFollow(FOLLOW_rename_in_rename_list26580);
rename();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numRn++;}
}
break;
default :
break loop586;
}
}
}
if ( state.backtracking==0 ) {
MFPA.rename_list(numRn);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "rename_list"
// $ANTLR start "only"
// MFortranParser2018.g:6420:1: only : ( generic_spec | rename );
public final void only() throws RecognitionException {
boolean isRenamed = false;
try {
// MFortranParser2018.g:6427:5: ( generic_spec | rename )
int alt587=2;
switch ( input.LA(1) ) {
case IDENT:
{
int LA587_1 = input.LA(2);
if ( (LA587_1==EQ_GT) ) {
alt587=2;
}
else if ( (LA587_1==EOF||LA587_1==COMMA||LA587_1==EOS) ) {
alt587=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 587, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case OPERATOR:
{
int LA587_2 = input.LA(2);
if ( (LA587_2==LPAREN) ) {
int LA587_5 = input.LA(3);
if ( (LA587_5==DEFINED_OP) ) {
int LA587_6 = input.LA(4);
if ( (LA587_6==RPAREN) ) {
int LA587_7 = input.LA(5);
if ( (LA587_7==EQ_GT) ) {
alt587=2;
}
else if ( (LA587_7==EOF||LA587_7==COMMA||LA587_7==EOS) ) {
alt587=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 587, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 587, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA587_5==AND||LA587_5==ASTERISK||LA587_5==EQ||(LA587_5 >= EQV && LA587_5 <= EQ_EQ)||LA587_5==GE||(LA587_5 >= GREATERTHAN && LA587_5 <= GT)||LA587_5==LE||(LA587_5 >= LESSTHAN && LA587_5 <= LESSTHAN_EQ)||LA587_5==LT||LA587_5==MINUS||(LA587_5 >= NE && LA587_5 <= NEQV)||LA587_5==NOT||LA587_5==OR||LA587_5==PLUS||LA587_5==POWER||(LA587_5 >= SLASH && LA587_5 <= SLASH_SLASH)) ) {
alt587=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 587, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 587, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ASSIGNMENT:
case READ:
case WRITE:
{
alt587=1;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 587, 0, input);
throw nvae;
}
switch (alt587) {
case 1 :
// MFortranParser2018.g:6427:7: generic_spec
{
pushFollow(FOLLOW_generic_spec_in_only26613);
generic_spec();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:6428:7: rename
{
pushFollow(FOLLOW_rename_in_only26622);
rename();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {isRenamed=true;}
}
break;
}
if ( state.backtracking==0 ) {
MFPA.only(isRenamed);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "only"
// $ANTLR start "only_list"
// MFortranParser2018.g:6431:1: only_list : only ( COMMA only )* ;
public final void only_list() throws RecognitionException {
int numO = 1;
try {
// MFortranParser2018.g:6438:5: ( only ( COMMA only )* )
// MFortranParser2018.g:6438:7: only ( COMMA only )*
{
pushFollow(FOLLOW_only_in_only_list26649);
only();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6439:7: ( COMMA only )*
loop588:
while (true) {
int alt588=2;
int LA588_0 = input.LA(1);
if ( (LA588_0==COMMA) ) {
alt588=1;
}
switch (alt588) {
case 1 :
// MFortranParser2018.g:6439:9: COMMA only
{
match(input,COMMA,FOLLOW_COMMA_in_only_list26659); if (state.failed) return;
pushFollow(FOLLOW_only_in_only_list26661);
only();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numO++;}
}
break;
default :
break loop588;
}
}
}
if ( state.backtracking==0 ) {
MFPA.only_list(numO);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "only_list"
// $ANTLR start "submodule"
// MFortranParser2018.g:6447:1: submodule : submodule_stmt specification_part ( module_subprogram_part )? end_submodule_stmt ;
public final void submodule() throws RecognitionException {
boolean hasMSP = false;
try {
// MFortranParser2018.g:6454:5: ( submodule_stmt specification_part ( module_subprogram_part )? end_submodule_stmt )
// MFortranParser2018.g:6454:7: submodule_stmt specification_part ( module_subprogram_part )? end_submodule_stmt
{
pushFollow(FOLLOW_submodule_stmt_in_submodule26693);
submodule_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_submodule26701);
specification_part();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6456:7: ( module_subprogram_part )?
int alt589=2;
int LA589_0 = input.LA(1);
if ( (LA589_0==DIGIT_STR) ) {
int LA589_1 = input.LA(2);
if ( (LA589_1==CONTAINS) ) {
alt589=1;
}
}
else if ( (LA589_0==CONTAINS) ) {
alt589=1;
}
switch (alt589) {
case 1 :
// MFortranParser2018.g:6456:9: module_subprogram_part
{
pushFollow(FOLLOW_module_subprogram_part_in_submodule26711);
module_subprogram_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasMSP=true;}
}
break;
}
pushFollow(FOLLOW_end_submodule_stmt_in_submodule26724);
end_submodule_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.submodule(hasMSP);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "submodule"
// $ANTLR start "submodule_stmt"
// MFortranParser2018.g:6464:1: submodule_stmt : (lbl= label )? SUBMODULE LPAREN parent_identifier RPAREN IDENT end_of_stmt ;
public final void submodule_stmt() throws RecognitionException {
Token SUBMODULE558=null;
Token IDENT559=null;
Token lbl =null;
Token end_of_stmt560 =null;
try {
// MFortranParser2018.g:6470:5: ( (lbl= label )? SUBMODULE LPAREN parent_identifier RPAREN IDENT end_of_stmt )
// MFortranParser2018.g:6470:7: (lbl= label )? SUBMODULE LPAREN parent_identifier RPAREN IDENT end_of_stmt
{
// MFortranParser2018.g:6470:7: (lbl= label )?
int alt590=2;
int LA590_0 = input.LA(1);
if ( (LA590_0==DIGIT_STR) ) {
alt590=1;
}
switch (alt590) {
case 1 :
// MFortranParser2018.g:6470:8: lbl= label
{
pushFollow(FOLLOW_label_in_submodule_stmt26754);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
SUBMODULE558=(Token)match(input,SUBMODULE,FOLLOW_SUBMODULE_in_submodule_stmt26765); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_submodule_stmt26767); if (state.failed) return;
pushFollow(FOLLOW_parent_identifier_in_submodule_stmt26769);
parent_identifier();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_submodule_stmt26771); if (state.failed) return;
IDENT559=(Token)match(input,IDENT,FOLLOW_IDENT_in_submodule_stmt26773); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_submodule_stmt26781);
end_of_stmt560=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.submodule_stmt(lbl,
SUBMODULE558, IDENT559, end_of_stmt560);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "submodule_stmt"
// $ANTLR start "parent_identifier"
// MFortranParser2018.g:6480:1: parent_identifier : ancestor= IDENT ( COLON parent= IDENT )? ;
public final void parent_identifier() throws RecognitionException {
Token ancestor=null;
Token parent=null;
try {
// MFortranParser2018.g:6481:5: (ancestor= IDENT ( COLON parent= IDENT )? )
// MFortranParser2018.g:6481:7: ancestor= IDENT ( COLON parent= IDENT )?
{
ancestor=(Token)match(input,IDENT,FOLLOW_IDENT_in_parent_identifier26812); if (state.failed) return;
// MFortranParser2018.g:6482:7: ( COLON parent= IDENT )?
int alt591=2;
int LA591_0 = input.LA(1);
if ( (LA591_0==COLON) ) {
alt591=1;
}
switch (alt591) {
case 1 :
// MFortranParser2018.g:6482:9: COLON parent= IDENT
{
match(input,COLON,FOLLOW_COLON_in_parent_identifier26822); if (state.failed) return;
parent=(Token)match(input,IDENT,FOLLOW_IDENT_in_parent_identifier26826); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) { MFPA.parent_identifier(ancestor, parent); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "parent_identifier"
// $ANTLR start "end_submodule_stmt"
// MFortranParser2018.g:6489:1: end_submodule_stmt : (lbl= label )? END (smod= SUBMODULE (sname= IDENT )? )? end_of_stmt ;
public final void end_submodule_stmt() throws RecognitionException {
Token smod=null;
Token sname=null;
Token END561=null;
Token lbl =null;
Token end_of_stmt562 =null;
try {
// MFortranParser2018.g:6493:5: ( (lbl= label )? END (smod= SUBMODULE (sname= IDENT )? )? end_of_stmt )
// MFortranParser2018.g:6493:7: (lbl= label )? END (smod= SUBMODULE (sname= IDENT )? )? end_of_stmt
{
// MFortranParser2018.g:6493:7: (lbl= label )?
int alt592=2;
int LA592_0 = input.LA(1);
if ( (LA592_0==DIGIT_STR) ) {
alt592=1;
}
switch (alt592) {
case 1 :
// MFortranParser2018.g:6493:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_submodule_stmt26864);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END561=(Token)match(input,END,FOLLOW_END_in_end_submodule_stmt26874); if (state.failed) return;
// MFortranParser2018.g:6494:11: (smod= SUBMODULE (sname= IDENT )? )?
int alt594=2;
int LA594_0 = input.LA(1);
if ( (LA594_0==SUBMODULE) ) {
alt594=1;
}
switch (alt594) {
case 1 :
// MFortranParser2018.g:6494:12: smod= SUBMODULE (sname= IDENT )?
{
smod=(Token)match(input,SUBMODULE,FOLLOW_SUBMODULE_in_end_submodule_stmt26879); if (state.failed) return;
// MFortranParser2018.g:6494:27: (sname= IDENT )?
int alt593=2;
int LA593_0 = input.LA(1);
if ( (LA593_0==IDENT) ) {
alt593=1;
}
switch (alt593) {
case 1 :
// MFortranParser2018.g:6494:28: sname= IDENT
{
sname=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_submodule_stmt26884); if (state.failed) return;
}
break;
}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_submodule_stmt26896);
end_of_stmt562=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_submodule_stmt(lbl,
END561, smod, sname, end_of_stmt562);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_submodule_stmt"
// $ANTLR start "block_data"
// MFortranParser2018.g:6505:1: block_data : block_data_stmt specification_part end_block_data_stmt ;
public final void block_data() throws RecognitionException {
try {
// MFortranParser2018.g:6509:5: ( block_data_stmt specification_part end_block_data_stmt )
// MFortranParser2018.g:6509:7: block_data_stmt specification_part end_block_data_stmt
{
pushFollow(FOLLOW_block_data_stmt_in_block_data26930);
block_data_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_block_data26938);
specification_part();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_block_data_stmt_in_block_data26946);
end_block_data_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.block_data();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "block_data"
// $ANTLR start "block_data_stmt"
// MFortranParser2018.g:6517:1: block_data_stmt : ( (lbl= label )? BLOCK DATA ( IDENT )? end_of_stmt | (lbl= label )? BLOCKDATA ( IDENT )? end_of_stmt );
public final void block_data_stmt() throws RecognitionException {
Token IDENT563=null;
Token BLOCK564=null;
Token DATA565=null;
Token IDENT567=null;
Token BLOCKDATA568=null;
Token lbl =null;
Token end_of_stmt566 =null;
Token end_of_stmt569 =null;
Token id = null;
try {
// MFortranParser2018.g:6524:5: ( (lbl= label )? BLOCK DATA ( IDENT )? end_of_stmt | (lbl= label )? BLOCKDATA ( IDENT )? end_of_stmt )
int alt599=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA599_1 = input.LA(2);
if ( (LA599_1==BLOCK) ) {
alt599=1;
}
else if ( (LA599_1==BLOCKDATA) ) {
alt599=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 599, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case BLOCK:
{
alt599=1;
}
break;
case BLOCKDATA:
{
alt599=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 599, 0, input);
throw nvae;
}
switch (alt599) {
case 1 :
// MFortranParser2018.g:6524:7: (lbl= label )? BLOCK DATA ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:6524:7: (lbl= label )?
int alt595=2;
int LA595_0 = input.LA(1);
if ( (LA595_0==DIGIT_STR) ) {
alt595=1;
}
switch (alt595) {
case 1 :
// MFortranParser2018.g:6524:8: lbl= label
{
pushFollow(FOLLOW_label_in_block_data_stmt26976);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
BLOCK564=(Token)match(input,BLOCK,FOLLOW_BLOCK_in_block_data_stmt26987); if (state.failed) return;
DATA565=(Token)match(input,DATA,FOLLOW_DATA_in_block_data_stmt26989); if (state.failed) return;
// MFortranParser2018.g:6525:18: ( IDENT )?
int alt596=2;
int LA596_0 = input.LA(1);
if ( (LA596_0==IDENT) ) {
alt596=1;
}
switch (alt596) {
case 1 :
// MFortranParser2018.g:6525:19: IDENT
{
IDENT563=(Token)match(input,IDENT,FOLLOW_IDENT_in_block_data_stmt26992); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT563;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_block_data_stmt27005);
end_of_stmt566=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.block_data_stmt(lbl,
BLOCK564, DATA565, id, end_of_stmt566);}
}
break;
case 2 :
// MFortranParser2018.g:6529:7: (lbl= label )? BLOCKDATA ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:6529:7: (lbl= label )?
int alt597=2;
int LA597_0 = input.LA(1);
if ( (LA597_0==DIGIT_STR) ) {
alt597=1;
}
switch (alt597) {
case 1 :
// MFortranParser2018.g:6529:8: lbl= label
{
pushFollow(FOLLOW_label_in_block_data_stmt27026);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
BLOCKDATA568=(Token)match(input,BLOCKDATA,FOLLOW_BLOCKDATA_in_block_data_stmt27037); if (state.failed) return;
// MFortranParser2018.g:6530:17: ( IDENT )?
int alt598=2;
int LA598_0 = input.LA(1);
if ( (LA598_0==IDENT) ) {
alt598=1;
}
switch (alt598) {
case 1 :
// MFortranParser2018.g:6530:18: IDENT
{
IDENT567=(Token)match(input,IDENT,FOLLOW_IDENT_in_block_data_stmt27040); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT567;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_block_data_stmt27052);
end_of_stmt569=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.block_data_stmt(lbl,
BLOCKDATA568, null, id, end_of_stmt569);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "block_data_stmt"
// $ANTLR start "end_block_data_stmt"
// MFortranParser2018.g:6539:1: end_block_data_stmt : ( (lbl= label )? END BLOCK DATA ( IDENT )? end_of_stmt | (lbl= label )? END BLOCKDATA ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt );
public final void end_block_data_stmt() throws RecognitionException {
Token IDENT570=null;
Token END571=null;
Token BLOCK572=null;
Token DATA573=null;
Token IDENT575=null;
Token END576=null;
Token BLOCKDATA577=null;
Token END579=null;
Token lbl =null;
Token end_of_stmt574 =null;
Token end_of_stmt578 =null;
Token end_of_stmt580 =null;
Token id = null;
try {
// MFortranParser2018.g:6546:5: ( (lbl= label )? END BLOCK DATA ( IDENT )? end_of_stmt | (lbl= label )? END BLOCKDATA ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt )
int alt605=3;
int LA605_0 = input.LA(1);
if ( (LA605_0==DIGIT_STR) ) {
int LA605_1 = input.LA(2);
if ( (LA605_1==END) ) {
switch ( input.LA(3) ) {
case BLOCK:
{
alt605=1;
}
break;
case BLOCKDATA:
{
alt605=2;
}
break;
case EOF:
case EOS:
{
alt605=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 605, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 605, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA605_0==END) ) {
switch ( input.LA(2) ) {
case BLOCK:
{
alt605=1;
}
break;
case BLOCKDATA:
{
alt605=2;
}
break;
case EOF:
case EOS:
{
alt605=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 605, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 605, 0, input);
throw nvae;
}
switch (alt605) {
case 1 :
// MFortranParser2018.g:6546:7: (lbl= label )? END BLOCK DATA ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:6546:7: (lbl= label )?
int alt600=2;
int LA600_0 = input.LA(1);
if ( (LA600_0==DIGIT_STR) ) {
alt600=1;
}
switch (alt600) {
case 1 :
// MFortranParser2018.g:6546:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_block_data_stmt27092);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END571=(Token)match(input,END,FOLLOW_END_in_end_block_data_stmt27103); if (state.failed) return;
BLOCK572=(Token)match(input,BLOCK,FOLLOW_BLOCK_in_end_block_data_stmt27105); if (state.failed) return;
DATA573=(Token)match(input,DATA,FOLLOW_DATA_in_end_block_data_stmt27107); if (state.failed) return;
// MFortranParser2018.g:6547:22: ( IDENT )?
int alt601=2;
int LA601_0 = input.LA(1);
if ( (LA601_0==IDENT) ) {
alt601=1;
}
switch (alt601) {
case 1 :
// MFortranParser2018.g:6547:23: IDENT
{
IDENT570=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_block_data_stmt27110); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT570;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_block_data_stmt27123);
end_of_stmt574=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_block_data_stmt(lbl,
END571, BLOCK572, DATA573, id, end_of_stmt574);}
}
break;
case 2 :
// MFortranParser2018.g:6551:7: (lbl= label )? END BLOCKDATA ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:6551:7: (lbl= label )?
int alt602=2;
int LA602_0 = input.LA(1);
if ( (LA602_0==DIGIT_STR) ) {
alt602=1;
}
switch (alt602) {
case 1 :
// MFortranParser2018.g:6551:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_block_data_stmt27144);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END576=(Token)match(input,END,FOLLOW_END_in_end_block_data_stmt27155); if (state.failed) return;
BLOCKDATA577=(Token)match(input,BLOCKDATA,FOLLOW_BLOCKDATA_in_end_block_data_stmt27157); if (state.failed) return;
// MFortranParser2018.g:6552:21: ( IDENT )?
int alt603=2;
int LA603_0 = input.LA(1);
if ( (LA603_0==IDENT) ) {
alt603=1;
}
switch (alt603) {
case 1 :
// MFortranParser2018.g:6552:22: IDENT
{
IDENT575=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_block_data_stmt27160); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT575;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_block_data_stmt27172);
end_of_stmt578=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_block_data_stmt(lbl,
END576, BLOCKDATA577, null, id, end_of_stmt578);}
}
break;
case 3 :
// MFortranParser2018.g:6556:7: (lbl= label )? END end_of_stmt
{
// MFortranParser2018.g:6556:7: (lbl= label )?
int alt604=2;
int LA604_0 = input.LA(1);
if ( (LA604_0==DIGIT_STR) ) {
alt604=1;
}
switch (alt604) {
case 1 :
// MFortranParser2018.g:6556:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_block_data_stmt27193);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END579=(Token)match(input,END,FOLLOW_END_in_end_block_data_stmt27204); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_end_block_data_stmt27206);
end_of_stmt580=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_block_data_stmt(lbl,
END579, null, null, id, end_of_stmt580);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_block_data_stmt"
// $ANTLR start "interface_block"
// MFortranParser2018.g:6565:1: interface_block : interface_stmt ( interface_specification )* end_interface_stmt ;
public final void interface_block() throws RecognitionException {
try {
// MFortranParser2018.g:6569:5: ( interface_stmt ( interface_specification )* end_interface_stmt )
// MFortranParser2018.g:6569:7: interface_stmt ( interface_specification )* end_interface_stmt
{
pushFollow(FOLLOW_interface_stmt_in_interface_block27240);
interface_stmt();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6570:7: ( interface_specification )*
loop606:
while (true) {
int alt606=2;
int LA606_0 = input.LA(1);
if ( (LA606_0==DIGIT_STR) ) {
int LA606_1 = input.LA(2);
if ( (LA606_1==CHARACTER||LA606_1==CLASS||LA606_1==COMPLEX||(LA606_1 >= DOUBLE && LA606_1 <= DOUBLEPRECISION)||LA606_1==ELEMENTAL||LA606_1==FUNCTION||LA606_1==IMPURE||LA606_1==INTEGER||LA606_1==LOGICAL||LA606_1==MODULE||LA606_1==NON_RECURSIVE||LA606_1==PROCEDURE||LA606_1==PURE||(LA606_1 >= REAL && LA606_1 <= RECURSIVE)||LA606_1==SUBROUTINE||LA606_1==TYPE) ) {
alt606=1;
}
}
else if ( (LA606_0==CHARACTER||LA606_0==CLASS||LA606_0==COMPLEX||(LA606_0 >= DOUBLE && LA606_0 <= DOUBLEPRECISION)||LA606_0==ELEMENTAL||LA606_0==FUNCTION||LA606_0==IMPURE||LA606_0==INTEGER||LA606_0==LOGICAL||LA606_0==MODULE||LA606_0==NON_RECURSIVE||LA606_0==PROCEDURE||LA606_0==PURE||(LA606_0 >= REAL && LA606_0 <= RECURSIVE)||LA606_0==SUBROUTINE||LA606_0==TYPE) ) {
alt606=1;
}
switch (alt606) {
case 1 :
// MFortranParser2018.g:6570:9: interface_specification
{
pushFollow(FOLLOW_interface_specification_in_interface_block27250);
interface_specification();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop606;
}
}
pushFollow(FOLLOW_end_interface_stmt_in_interface_block27261);
end_interface_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.interface_block();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "interface_block"
// $ANTLR start "interface_specification"
// MFortranParser2018.g:6577:1: interface_specification : ( interface_body | procedure_stmt );
public final void interface_specification() throws RecognitionException {
try {
// MFortranParser2018.g:6581:5: ( interface_body | procedure_stmt )
int alt607=2;
switch ( input.LA(1) ) {
case CHARACTER:
case CLASS:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case ELEMENTAL:
case FUNCTION:
case IMPURE:
case INTEGER:
case LOGICAL:
case NON_RECURSIVE:
case PURE:
case REAL:
case RECURSIVE:
case SUBROUTINE:
case TYPE:
{
alt607=1;
}
break;
case MODULE:
{
int LA607_2 = input.LA(2);
if ( (LA607_2==CHARACTER||LA607_2==CLASS||LA607_2==COMPLEX||LA607_2==DIGIT_STR||(LA607_2 >= DOUBLE && LA607_2 <= DOUBLEPRECISION)||LA607_2==ELEMENTAL||LA607_2==FUNCTION||LA607_2==IMPURE||LA607_2==INTEGER||LA607_2==LOGICAL||LA607_2==MODULE||LA607_2==NON_RECURSIVE||LA607_2==PURE||(LA607_2 >= REAL && LA607_2 <= RECURSIVE)||LA607_2==SUBROUTINE||LA607_2==TYPE) ) {
alt607=1;
}
else if ( (LA607_2==PROCEDURE) ) {
alt607=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 607, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIGIT_STR:
{
switch ( input.LA(2) ) {
case CHARACTER:
case CLASS:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case ELEMENTAL:
case FUNCTION:
case IMPURE:
case INTEGER:
case LOGICAL:
case NON_RECURSIVE:
case PURE:
case REAL:
case RECURSIVE:
case SUBROUTINE:
case TYPE:
{
alt607=1;
}
break;
case MODULE:
{
int LA607_5 = input.LA(3);
if ( (LA607_5==CHARACTER||LA607_5==CLASS||LA607_5==COMPLEX||(LA607_5 >= DOUBLE && LA607_5 <= DOUBLEPRECISION)||LA607_5==ELEMENTAL||LA607_5==IMPURE||LA607_5==INTEGER||LA607_5==LOGICAL||LA607_5==MODULE||LA607_5==NON_RECURSIVE||LA607_5==PURE||(LA607_5 >= REAL && LA607_5 <= RECURSIVE)||LA607_5==SUBROUTINE||LA607_5==TYPE) ) {
alt607=1;
}
else if ( (LA607_5==PROCEDURE) ) {
alt607=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 607, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROCEDURE:
{
alt607=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 607, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROCEDURE:
{
alt607=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 607, 0, input);
throw nvae;
}
switch (alt607) {
case 1 :
// MFortranParser2018.g:6581:7: interface_body
{
pushFollow(FOLLOW_interface_body_in_interface_specification27285);
interface_body();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// MFortranParser2018.g:6582:7: procedure_stmt
{
pushFollow(FOLLOW_procedure_stmt_in_interface_specification27293);
procedure_stmt();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
MFPA.interface_specification();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "interface_specification"
// $ANTLR start "interface_stmt"
// MFortranParser2018.g:6590:1: interface_stmt : ( (lbl= label )? INTERFACE ( generic_spec )? end_of_stmt | (lbl= label )? ABSTRACT INTERFACE end_of_stmt );
public final void interface_stmt() throws RecognitionException {
Token INTERFACE581=null;
Token ABSTRACT583=null;
Token INTERFACE584=null;
Token lbl =null;
Token end_of_stmt582 =null;
Token end_of_stmt585 =null;
boolean hasGS = false;
try {
// MFortranParser2018.g:6597:5: ( (lbl= label )? INTERFACE ( generic_spec )? end_of_stmt | (lbl= label )? ABSTRACT INTERFACE end_of_stmt )
int alt611=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA611_1 = input.LA(2);
if ( (LA611_1==INTERFACE) ) {
alt611=1;
}
else if ( (LA611_1==ABSTRACT) ) {
alt611=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 611, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INTERFACE:
{
alt611=1;
}
break;
case ABSTRACT:
{
alt611=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 611, 0, input);
throw nvae;
}
switch (alt611) {
case 1 :
// MFortranParser2018.g:6597:7: (lbl= label )? INTERFACE ( generic_spec )? end_of_stmt
{
// MFortranParser2018.g:6597:7: (lbl= label )?
int alt608=2;
int LA608_0 = input.LA(1);
if ( (LA608_0==DIGIT_STR) ) {
alt608=1;
}
switch (alt608) {
case 1 :
// MFortranParser2018.g:6597:8: lbl= label
{
pushFollow(FOLLOW_label_in_interface_stmt27323);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
INTERFACE581=(Token)match(input,INTERFACE,FOLLOW_INTERFACE_in_interface_stmt27335); if (state.failed) return;
// MFortranParser2018.g:6598:17: ( generic_spec )?
int alt609=2;
int LA609_0 = input.LA(1);
if ( (LA609_0==ASSIGNMENT||LA609_0==IDENT||LA609_0==OPERATOR||LA609_0==READ||LA609_0==WRITE) ) {
alt609=1;
}
switch (alt609) {
case 1 :
// MFortranParser2018.g:6598:18: generic_spec
{
pushFollow(FOLLOW_generic_spec_in_interface_stmt27338);
generic_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasGS=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_interface_stmt27351);
end_of_stmt582=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.interface_stmt(lbl,
null, INTERFACE581, end_of_stmt582, hasGS);}
}
break;
case 2 :
// MFortranParser2018.g:6602:7: (lbl= label )? ABSTRACT INTERFACE end_of_stmt
{
// MFortranParser2018.g:6602:7: (lbl= label )?
int alt610=2;
int LA610_0 = input.LA(1);
if ( (LA610_0==DIGIT_STR) ) {
alt610=1;
}
switch (alt610) {
case 1 :
// MFortranParser2018.g:6602:8: lbl= label
{
pushFollow(FOLLOW_label_in_interface_stmt27372);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ABSTRACT583=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_interface_stmt27383); if (state.failed) return;
INTERFACE584=(Token)match(input,INTERFACE,FOLLOW_INTERFACE_in_interface_stmt27385); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_interface_stmt27394);
end_of_stmt585=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.interface_stmt(lbl,
ABSTRACT583, INTERFACE584, end_of_stmt585, hasGS);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "interface_stmt"
// $ANTLR start "end_interface_stmt"
// MFortranParser2018.g:6612:1: end_interface_stmt : (lbl= label )? END INTERFACE ( generic_spec )? end_of_stmt ;
public final void end_interface_stmt() throws RecognitionException {
Token END586=null;
Token INTERFACE587=null;
Token lbl =null;
Token end_of_stmt588 =null;
boolean hasGS = false;
try {
// MFortranParser2018.g:6619:5: ( (lbl= label )? END INTERFACE ( generic_spec )? end_of_stmt )
// MFortranParser2018.g:6619:7: (lbl= label )? END INTERFACE ( generic_spec )? end_of_stmt
{
// MFortranParser2018.g:6619:7: (lbl= label )?
int alt612=2;
int LA612_0 = input.LA(1);
if ( (LA612_0==DIGIT_STR) ) {
alt612=1;
}
switch (alt612) {
case 1 :
// MFortranParser2018.g:6619:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_interface_stmt27434);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END586=(Token)match(input,END,FOLLOW_END_in_end_interface_stmt27445); if (state.failed) return;
INTERFACE587=(Token)match(input,INTERFACE,FOLLOW_INTERFACE_in_end_interface_stmt27447); if (state.failed) return;
// MFortranParser2018.g:6620:21: ( generic_spec )?
int alt613=2;
int LA613_0 = input.LA(1);
if ( (LA613_0==ASSIGNMENT||LA613_0==IDENT||LA613_0==OPERATOR||LA613_0==READ||LA613_0==WRITE) ) {
alt613=1;
}
switch (alt613) {
case 1 :
// MFortranParser2018.g:6620:23: generic_spec
{
pushFollow(FOLLOW_generic_spec_in_end_interface_stmt27451);
generic_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasGS=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_interface_stmt27464);
end_of_stmt588=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_interface_stmt(lbl,
END586, INTERFACE587, end_of_stmt588, hasGS);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_interface_stmt"
// $ANTLR start "interface_body"
// MFortranParser2018.g:6632:1: interface_body options {backtrack=true; } : ( ( prefix )? function_stmt specification_part end_function_stmt | subroutine_stmt specification_part end_subroutine_stmt );
public final void interface_body() throws RecognitionException {
boolean hasPref = false;
try {
// MFortranParser2018.g:6637:5: ( ( prefix )? function_stmt specification_part end_function_stmt | subroutine_stmt specification_part end_subroutine_stmt )
int alt615=2;
switch ( input.LA(1) ) {
case INTEGER:
{
int LA615_1 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case REAL:
{
int LA615_2 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case DOUBLE:
{
int LA615_3 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case DOUBLEPRECISION:
{
int LA615_4 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case COMPLEX:
{
int LA615_5 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case DOUBLECOMPLEX:
{
int LA615_6 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case CHARACTER:
{
int LA615_7 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case LOGICAL:
{
int LA615_8 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case TYPE:
{
int LA615_9 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case CLASS:
{
int LA615_10 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case ELEMENTAL:
{
int LA615_11 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case IMPURE:
{
int LA615_12 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case MODULE:
{
int LA615_13 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case NON_RECURSIVE:
{
int LA615_14 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case PURE:
{
int LA615_15 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case RECURSIVE:
{
int LA615_16 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case DIGIT_STR:
{
int LA615_17 = input.LA(2);
if ( (synpred72_MFortranParser2018()) ) {
alt615=1;
}
else if ( (true) ) {
alt615=2;
}
}
break;
case FUNCTION:
{
alt615=1;
}
break;
case SUBROUTINE:
{
alt615=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 615, 0, input);
throw nvae;
}
switch (alt615) {
case 1 :
// MFortranParser2018.g:6637:7: ( prefix )? function_stmt specification_part end_function_stmt
{
// MFortranParser2018.g:6637:7: ( prefix )?
int alt614=2;
int LA614_0 = input.LA(1);
if ( (LA614_0==CHARACTER||LA614_0==CLASS||LA614_0==COMPLEX||(LA614_0 >= DOUBLE && LA614_0 <= DOUBLEPRECISION)||LA614_0==ELEMENTAL||LA614_0==IMPURE||LA614_0==INTEGER||LA614_0==LOGICAL||LA614_0==MODULE||LA614_0==NON_RECURSIVE||LA614_0==PURE||(LA614_0 >= REAL && LA614_0 <= RECURSIVE)||LA614_0==TYPE) ) {
alt614=1;
}
switch (alt614) {
case 1 :
// MFortranParser2018.g:6637:8: prefix
{
pushFollow(FOLLOW_prefix_in_interface_body27505);
prefix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasPref=true;}
}
break;
}
pushFollow(FOLLOW_function_stmt_in_interface_body27518);
function_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_interface_body27520);
specification_part();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_function_stmt_in_interface_body27529);
end_function_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.interface_body(true, hasPref); }
}
break;
case 2 :
// MFortranParser2018.g:6641:7: subroutine_stmt specification_part end_subroutine_stmt
{
pushFollow(FOLLOW_subroutine_stmt_in_interface_body27547);
subroutine_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_interface_body27549);
specification_part();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_subroutine_stmt_in_interface_body27558);
end_subroutine_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.interface_body(false, hasPref);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "interface_body"
// $ANTLR start "procedure_stmt"
// MFortranParser2018.g:6651:1: procedure_stmt : (lbl= label )? ( MODULE )? PROCEDURE generic_name_list end_of_stmt ;
public final void procedure_stmt() throws RecognitionException {
Token MODULE589=null;
Token PROCEDURE590=null;
Token lbl =null;
Token end_of_stmt591 =null;
Token mod = null;
try {
// MFortranParser2018.g:6658:5: ( (lbl= label )? ( MODULE )? PROCEDURE generic_name_list end_of_stmt )
// MFortranParser2018.g:6658:7: (lbl= label )? ( MODULE )? PROCEDURE generic_name_list end_of_stmt
{
// MFortranParser2018.g:6658:7: (lbl= label )?
int alt616=2;
int LA616_0 = input.LA(1);
if ( (LA616_0==DIGIT_STR) ) {
alt616=1;
}
switch (alt616) {
case 1 :
// MFortranParser2018.g:6658:8: lbl= label
{
pushFollow(FOLLOW_label_in_procedure_stmt27598);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:6659:7: ( MODULE )?
int alt617=2;
int LA617_0 = input.LA(1);
if ( (LA617_0==MODULE) ) {
alt617=1;
}
switch (alt617) {
case 1 :
// MFortranParser2018.g:6659:9: MODULE
{
MODULE589=(Token)match(input,MODULE,FOLLOW_MODULE_in_procedure_stmt27611); if (state.failed) return;
if ( state.backtracking==0 ) {mod=MODULE589;}
}
break;
}
PROCEDURE590=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_procedure_stmt27624); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_procedure_stmt27626);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_procedure_stmt27635);
end_of_stmt591=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.procedure_stmt(lbl,
mod, PROCEDURE590, end_of_stmt591);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "procedure_stmt"
// $ANTLR start "generic_spec"
// MFortranParser2018.g:6670:1: generic_spec : ( IDENT | OPERATOR LPAREN defined_operator RPAREN | ASSIGNMENT LPAREN EQUALS RPAREN | defined_io_generic_spec );
public final void generic_spec() throws RecognitionException {
Token IDENT592=null;
Token OPERATOR593=null;
Token ASSIGNMENT594=null;
Token EQUALS595=null;
try {
// MFortranParser2018.g:6671:5: ( IDENT | OPERATOR LPAREN defined_operator RPAREN | ASSIGNMENT LPAREN EQUALS RPAREN | defined_io_generic_spec )
int alt618=4;
switch ( input.LA(1) ) {
case IDENT:
{
alt618=1;
}
break;
case OPERATOR:
{
alt618=2;
}
break;
case ASSIGNMENT:
{
alt618=3;
}
break;
case READ:
case WRITE:
{
alt618=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 618, 0, input);
throw nvae;
}
switch (alt618) {
case 1 :
// MFortranParser2018.g:6671:7: IDENT
{
IDENT592=(Token)match(input,IDENT,FOLLOW_IDENT_in_generic_spec27664); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.generic_spec(null, IDENT592,
MFPUtils.GS_NAME);}
}
break;
case 2 :
// MFortranParser2018.g:6674:7: OPERATOR LPAREN defined_operator RPAREN
{
OPERATOR593=(Token)match(input,OPERATOR,FOLLOW_OPERATOR_in_generic_spec27682); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_generic_spec27684); if (state.failed) return;
pushFollow(FOLLOW_defined_operator_in_generic_spec27686);
defined_operator();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_generic_spec27688); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.generic_spec(OPERATOR593, null,
MFPUtils.GS_OPERATOR);}
}
break;
case 3 :
// MFortranParser2018.g:6677:7: ASSIGNMENT LPAREN EQUALS RPAREN
{
ASSIGNMENT594=(Token)match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_generic_spec27706); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_generic_spec27708); if (state.failed) return;
EQUALS595=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_generic_spec27710); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_generic_spec27712); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.generic_spec(ASSIGNMENT594, EQUALS595,
MFPUtils.GS_ASSIGNMENT);}
}
break;
case 4 :
// MFortranParser2018.g:6680:7: defined_io_generic_spec
{
pushFollow(FOLLOW_defined_io_generic_spec_in_generic_spec27730);
defined_io_generic_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.generic_spec(null, null,
MFPUtils.GS_IO_SPEC); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "generic_spec"
// $ANTLR start "defined_io_generic_spec"
// MFortranParser2018.g:6688:1: defined_io_generic_spec : ( READ LPAREN FORMATTED RPAREN | READ LPAREN UNFORMATTED RPAREN | WRITE LPAREN FORMATTED RPAREN | WRITE LPAREN UNFORMATTED RPAREN );
public final void defined_io_generic_spec() throws RecognitionException {
Token READ596=null;
Token FORMATTED597=null;
Token READ598=null;
Token UNFORMATTED599=null;
Token WRITE600=null;
Token FORMATTED601=null;
Token WRITE602=null;
Token UNFORMATTED603=null;
try {
// MFortranParser2018.g:6689:5: ( READ LPAREN FORMATTED RPAREN | READ LPAREN UNFORMATTED RPAREN | WRITE LPAREN FORMATTED RPAREN | WRITE LPAREN UNFORMATTED RPAREN )
int alt619=4;
int LA619_0 = input.LA(1);
if ( (LA619_0==READ) ) {
int LA619_1 = input.LA(2);
if ( (LA619_1==LPAREN) ) {
int LA619_3 = input.LA(3);
if ( (LA619_3==FORMATTED) ) {
alt619=1;
}
else if ( (LA619_3==UNFORMATTED) ) {
alt619=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 619, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 619, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA619_0==WRITE) ) {
int LA619_2 = input.LA(2);
if ( (LA619_2==LPAREN) ) {
int LA619_4 = input.LA(3);
if ( (LA619_4==FORMATTED) ) {
alt619=3;
}
else if ( (LA619_4==UNFORMATTED) ) {
alt619=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 619, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 619, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 619, 0, input);
throw nvae;
}
switch (alt619) {
case 1 :
// MFortranParser2018.g:6689:7: READ LPAREN FORMATTED RPAREN
{
READ596=(Token)match(input,READ,FOLLOW_READ_in_defined_io_generic_spec27759); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_defined_io_generic_spec27761); if (state.failed) return;
FORMATTED597=(Token)match(input,FORMATTED,FOLLOW_FORMATTED_in_defined_io_generic_spec27763); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_defined_io_generic_spec27765); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.defined_io_generic_spec(READ596, FORMATTED597,
MFPUtils.DIGS.FMT_R);}
}
break;
case 2 :
// MFortranParser2018.g:6692:7: READ LPAREN UNFORMATTED RPAREN
{
READ598=(Token)match(input,READ,FOLLOW_READ_in_defined_io_generic_spec27783); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_defined_io_generic_spec27785); if (state.failed) return;
UNFORMATTED599=(Token)match(input,UNFORMATTED,FOLLOW_UNFORMATTED_in_defined_io_generic_spec27787); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_defined_io_generic_spec27789); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.defined_io_generic_spec(READ598, UNFORMATTED599,
MFPUtils.DIGS.UFMT_R);}
}
break;
case 3 :
// MFortranParser2018.g:6695:7: WRITE LPAREN FORMATTED RPAREN
{
WRITE600=(Token)match(input,WRITE,FOLLOW_WRITE_in_defined_io_generic_spec27807); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_defined_io_generic_spec27809); if (state.failed) return;
FORMATTED601=(Token)match(input,FORMATTED,FOLLOW_FORMATTED_in_defined_io_generic_spec27811); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_defined_io_generic_spec27813); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.defined_io_generic_spec(WRITE600, FORMATTED601,
MFPUtils.DIGS.FMT_W);}
}
break;
case 4 :
// MFortranParser2018.g:6698:7: WRITE LPAREN UNFORMATTED RPAREN
{
WRITE602=(Token)match(input,WRITE,FOLLOW_WRITE_in_defined_io_generic_spec27831); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_defined_io_generic_spec27833); if (state.failed) return;
UNFORMATTED603=(Token)match(input,UNFORMATTED,FOLLOW_UNFORMATTED_in_defined_io_generic_spec27835); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_defined_io_generic_spec27837); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.defined_io_generic_spec(WRITE602, UNFORMATTED603,
MFPUtils.DIGS.UFMT_W);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "defined_io_generic_spec"
// $ANTLR start "generic_stmt"
// MFortranParser2018.g:6707:1: generic_stmt : GENERIC ( COMMA access_spec )? COLON_COLON generic_spec EQ_GT generic_name_list ;
public final void generic_stmt() throws RecognitionException {
Token GENERIC604=null;
boolean hasAS = false;
try {
// MFortranParser2018.g:6711:5: ( GENERIC ( COMMA access_spec )? COLON_COLON generic_spec EQ_GT generic_name_list )
// MFortranParser2018.g:6711:7: GENERIC ( COMMA access_spec )? COLON_COLON generic_spec EQ_GT generic_name_list
{
GENERIC604=(Token)match(input,GENERIC,FOLLOW_GENERIC_in_generic_stmt27870); if (state.failed) return;
// MFortranParser2018.g:6711:15: ( COMMA access_spec )?
int alt620=2;
int LA620_0 = input.LA(1);
if ( (LA620_0==COMMA) ) {
alt620=1;
}
switch (alt620) {
case 1 :
// MFortranParser2018.g:6711:17: COMMA access_spec
{
match(input,COMMA,FOLLOW_COMMA_in_generic_stmt27874); if (state.failed) return;
pushFollow(FOLLOW_access_spec_in_generic_stmt27876);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasAS=true;}
}
break;
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_generic_stmt27888); if (state.failed) return;
pushFollow(FOLLOW_generic_spec_in_generic_stmt27890);
generic_spec();
state._fsp--;
if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_generic_stmt27892); if (state.failed) return;
pushFollow(FOLLOW_generic_name_list_in_generic_stmt27894);
generic_name_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.generic_stmt(GENERIC604, hasAS);}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "generic_stmt"
// $ANTLR start "external_stmt"
// MFortranParser2018.g:6719:1: external_stmt : (lbl= label )? EXTERNAL ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void external_stmt() throws RecognitionException {
Token EXTERNAL605=null;
Token lbl =null;
Token end_of_stmt606 =null;
try {
// MFortranParser2018.g:6725:5: ( (lbl= label )? EXTERNAL ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:6725:7: (lbl= label )? EXTERNAL ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:6725:7: (lbl= label )?
int alt621=2;
int LA621_0 = input.LA(1);
if ( (LA621_0==DIGIT_STR) ) {
alt621=1;
}
switch (alt621) {
case 1 :
// MFortranParser2018.g:6725:8: lbl= label
{
pushFollow(FOLLOW_label_in_external_stmt27934);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
EXTERNAL605=(Token)match(input,EXTERNAL,FOLLOW_EXTERNAL_in_external_stmt27945); if (state.failed) return;
// MFortranParser2018.g:6726:16: ( COLON_COLON )?
int alt622=2;
int LA622_0 = input.LA(1);
if ( (LA622_0==COLON_COLON) ) {
alt622=1;
}
switch (alt622) {
case 1 :
// MFortranParser2018.g:6726:18: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_external_stmt27949); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_external_stmt27954);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_external_stmt27963);
end_of_stmt606=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.external_stmt(lbl,
EXTERNAL605, end_of_stmt606);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "external_stmt"
// $ANTLR start "procedure_declaration_stmt"
// MFortranParser2018.g:6735:1: procedure_declaration_stmt : (lbl= label )? PROCEDURE LPAREN ( proc_interface )? RPAREN ( ( COMMA proc_attr_spec )* COLON_COLON )? proc_decl_list end_of_stmt ;
public final void procedure_declaration_stmt() throws RecognitionException {
Token PROCEDURE607=null;
Token lbl =null;
Token end_of_stmt608 =null;
boolean hasPI = false;
int numPD = 0;
try {
// MFortranParser2018.g:6743:5: ( (lbl= label )? PROCEDURE LPAREN ( proc_interface )? RPAREN ( ( COMMA proc_attr_spec )* COLON_COLON )? proc_decl_list end_of_stmt )
// MFortranParser2018.g:6743:7: (lbl= label )? PROCEDURE LPAREN ( proc_interface )? RPAREN ( ( COMMA proc_attr_spec )* COLON_COLON )? proc_decl_list end_of_stmt
{
// MFortranParser2018.g:6743:7: (lbl= label )?
int alt623=2;
int LA623_0 = input.LA(1);
if ( (LA623_0==DIGIT_STR) ) {
alt623=1;
}
switch (alt623) {
case 1 :
// MFortranParser2018.g:6743:8: lbl= label
{
pushFollow(FOLLOW_label_in_procedure_declaration_stmt28003);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
PROCEDURE607=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_procedure_declaration_stmt28014); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_procedure_declaration_stmt28016); if (state.failed) return;
// MFortranParser2018.g:6744:24: ( proc_interface )?
int alt624=2;
int LA624_0 = input.LA(1);
if ( (LA624_0==CHARACTER||LA624_0==CLASS||LA624_0==COMPLEX||(LA624_0 >= DOUBLE && LA624_0 <= DOUBLEPRECISION)||LA624_0==IDENT||LA624_0==INTEGER||LA624_0==LOGICAL||LA624_0==REAL||LA624_0==TYPE) ) {
alt624=1;
}
switch (alt624) {
case 1 :
// MFortranParser2018.g:6744:26: proc_interface
{
pushFollow(FOLLOW_proc_interface_in_procedure_declaration_stmt28020);
proc_interface();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasPI=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_procedure_declaration_stmt28026); if (state.failed) return;
// MFortranParser2018.g:6745:7: ( ( COMMA proc_attr_spec )* COLON_COLON )?
int alt626=2;
int LA626_0 = input.LA(1);
if ( ((LA626_0 >= COLON_COLON && LA626_0 <= COMMA)) ) {
alt626=1;
}
switch (alt626) {
case 1 :
// MFortranParser2018.g:6745:9: ( COMMA proc_attr_spec )* COLON_COLON
{
// MFortranParser2018.g:6745:9: ( COMMA proc_attr_spec )*
loop625:
while (true) {
int alt625=2;
int LA625_0 = input.LA(1);
if ( (LA625_0==COMMA) ) {
alt625=1;
}
switch (alt625) {
case 1 :
// MFortranParser2018.g:6745:11: COMMA proc_attr_spec
{
match(input,COMMA,FOLLOW_COMMA_in_procedure_declaration_stmt28038); if (state.failed) return;
pushFollow(FOLLOW_proc_attr_spec_in_procedure_declaration_stmt28040);
proc_attr_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPD++;}
}
break;
default :
break loop625;
}
}
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_procedure_declaration_stmt28046); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_proc_decl_list_in_procedure_declaration_stmt28057);
proc_decl_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_procedure_declaration_stmt28066);
end_of_stmt608=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.procedure_declaration_stmt(lbl,
PROCEDURE607, end_of_stmt608, hasPI, numPD);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "procedure_declaration_stmt"
// $ANTLR start "proc_interface"
// MFortranParser2018.g:6756:1: proc_interface : ( IDENT | declaration_type_spec );
public final void proc_interface() throws RecognitionException {
Token IDENT609=null;
try {
// MFortranParser2018.g:6757:5: ( IDENT | declaration_type_spec )
int alt627=2;
int LA627_0 = input.LA(1);
if ( (LA627_0==IDENT) ) {
alt627=1;
}
else if ( (LA627_0==CHARACTER||LA627_0==CLASS||LA627_0==COMPLEX||(LA627_0 >= DOUBLE && LA627_0 <= DOUBLEPRECISION)||LA627_0==INTEGER||LA627_0==LOGICAL||LA627_0==REAL||LA627_0==TYPE) ) {
alt627=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 627, 0, input);
throw nvae;
}
switch (alt627) {
case 1 :
// MFortranParser2018.g:6757:7: IDENT
{
IDENT609=(Token)match(input,IDENT,FOLLOW_IDENT_in_proc_interface28095); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_interface(IDENT609); }
}
break;
case 2 :
// MFortranParser2018.g:6758:7: declaration_type_spec
{
pushFollow(FOLLOW_declaration_type_spec_in_proc_interface28105);
declaration_type_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_interface(null); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_interface"
// $ANTLR start "proc_attr_spec"
// MFortranParser2018.g:6764:1: proc_attr_spec : ( access_spec | language_binding_spec | INTENT LPAREN intent_spec RPAREN | OPTIONAL | POINTER | PROTECTED | SAVE | proc_attr_spec_extension );
public final void proc_attr_spec() throws RecognitionException {
Token INTENT610=null;
Token OPTIONAL611=null;
Token POINTER612=null;
Token PROTECTED613=null;
Token SAVE614=null;
try {
// MFortranParser2018.g:6765:5: ( access_spec | language_binding_spec | INTENT LPAREN intent_spec RPAREN | OPTIONAL | POINTER | PROTECTED | SAVE | proc_attr_spec_extension )
int alt628=8;
switch ( input.LA(1) ) {
case PRIVATE:
case PUBLIC:
{
alt628=1;
}
break;
case BIND:
{
alt628=2;
}
break;
case INTENT:
{
alt628=3;
}
break;
case OPTIONAL:
{
alt628=4;
}
break;
case POINTER:
{
alt628=5;
}
break;
case PROTECTED:
{
alt628=6;
}
break;
case SAVE:
{
alt628=7;
}
break;
case NO_LANG_EXT:
{
alt628=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 628, 0, input);
throw nvae;
}
switch (alt628) {
case 1 :
// MFortranParser2018.g:6765:7: access_spec
{
pushFollow(FOLLOW_access_spec_in_proc_attr_spec28126);
access_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(null,
MFPUtils.ATTR_ACCESS); }
}
break;
case 2 :
// MFortranParser2018.g:6768:7: language_binding_spec
{
pushFollow(FOLLOW_language_binding_spec_in_proc_attr_spec28145);
language_binding_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(null,
MFPUtils.ATTR_BIND_C); }
}
break;
case 3 :
// MFortranParser2018.g:6771:7: INTENT LPAREN intent_spec RPAREN
{
INTENT610=(Token)match(input,INTENT,FOLLOW_INTENT_in_proc_attr_spec28163); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_proc_attr_spec28165); if (state.failed) return;
pushFollow(FOLLOW_intent_spec_in_proc_attr_spec28167);
intent_spec();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_proc_attr_spec28169); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(INTENT610,
MFPUtils.ATTR_INTENT); }
}
break;
case 4 :
// MFortranParser2018.g:6774:7: OPTIONAL
{
OPTIONAL611=(Token)match(input,OPTIONAL,FOLLOW_OPTIONAL_in_proc_attr_spec28187); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(OPTIONAL611,
MFPUtils.ATTR_OPTIONAL); }
}
break;
case 5 :
// MFortranParser2018.g:6777:7: POINTER
{
POINTER612=(Token)match(input,POINTER,FOLLOW_POINTER_in_proc_attr_spec28205); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(POINTER612,
MFPUtils.ATTR_POINTER); }
}
break;
case 6 :
// MFortranParser2018.g:6780:7: PROTECTED
{
PROTECTED613=(Token)match(input,PROTECTED,FOLLOW_PROTECTED_in_proc_attr_spec28223); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(PROTECTED613,
MFPUtils.ATTR_PROTECTED); }
}
break;
case 7 :
// MFortranParser2018.g:6783:7: SAVE
{
SAVE614=(Token)match(input,SAVE,FOLLOW_SAVE_in_proc_attr_spec28241); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(SAVE614,
MFPUtils.ATTR_SAVE); }
}
break;
case 8 :
// MFortranParser2018.g:6787:7: proc_attr_spec_extension
{
pushFollow(FOLLOW_proc_attr_spec_extension_in_proc_attr_spec28261);
proc_attr_spec_extension();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_attr_spec(null,
MFPUtils.ATTR_OTHER); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_attr_spec"
// $ANTLR start "proc_attr_spec_extension"
// MFortranParser2018.g:6792:1: proc_attr_spec_extension : NO_LANG_EXT ;
public final void proc_attr_spec_extension() throws RecognitionException {
try {
// MFortranParser2018.g:6793:5: ( NO_LANG_EXT )
// MFortranParser2018.g:6793:7: NO_LANG_EXT
{
match(input,NO_LANG_EXT,FOLLOW_NO_LANG_EXT_in_proc_attr_spec_extension28288); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_attr_spec_extension"
// $ANTLR start "proc_decl"
// MFortranParser2018.g:6800:1: proc_decl : IDENT ( EQ_GT proc_pointer_init )? ;
public final void proc_decl() throws RecognitionException {
Token IDENT615=null;
boolean hasPPI = false;
try {
// MFortranParser2018.g:6804:5: ( IDENT ( EQ_GT proc_pointer_init )? )
// MFortranParser2018.g:6804:7: IDENT ( EQ_GT proc_pointer_init )?
{
IDENT615=(Token)match(input,IDENT,FOLLOW_IDENT_in_proc_decl28311); if (state.failed) return;
// MFortranParser2018.g:6804:13: ( EQ_GT proc_pointer_init )?
int alt629=2;
int LA629_0 = input.LA(1);
if ( (LA629_0==EQ_GT) ) {
alt629=1;
}
switch (alt629) {
case 1 :
// MFortranParser2018.g:6804:15: EQ_GT proc_pointer_init
{
match(input,EQ_GT,FOLLOW_EQ_GT_in_proc_decl28315); if (state.failed) return;
pushFollow(FOLLOW_proc_pointer_init_in_proc_decl28317);
proc_pointer_init();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasPPI=true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.proc_decl(IDENT615, hasPPI); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_decl"
// $ANTLR start "proc_decl_list"
// MFortranParser2018.g:6808:1: proc_decl_list : proc_decl ( COMMA proc_decl )* ;
public final void proc_decl_list() throws RecognitionException {
int numPd = 1;
try {
// MFortranParser2018.g:6815:5: ( proc_decl ( COMMA proc_decl )* )
// MFortranParser2018.g:6815:7: proc_decl ( COMMA proc_decl )*
{
pushFollow(FOLLOW_proc_decl_in_proc_decl_list28357);
proc_decl();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6816:7: ( COMMA proc_decl )*
loop630:
while (true) {
int alt630=2;
int LA630_0 = input.LA(1);
if ( (LA630_0==COMMA) ) {
alt630=1;
}
switch (alt630) {
case 1 :
// MFortranParser2018.g:6816:9: COMMA proc_decl
{
match(input,COMMA,FOLLOW_COMMA_in_proc_decl_list28367); if (state.failed) return;
pushFollow(FOLLOW_proc_decl_in_proc_decl_list28369);
proc_decl();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPd++;}
}
break;
default :
break loop630;
}
}
}
if ( state.backtracking==0 ) {
MFPA.proc_decl_list(numPd);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_decl_list"
// $ANTLR start "proc_pointer_init"
// MFortranParser2018.g:6829:1: proc_pointer_init : ( null_init | IDENT );
public final void proc_pointer_init() throws RecognitionException {
Token IDENT616=null;
try {
// MFortranParser2018.g:6830:5: ( null_init | IDENT )
int alt631=2;
int LA631_0 = input.LA(1);
if ( (LA631_0==IDENT) ) {
int LA631_1 = input.LA(2);
if ( (LA631_1==LPAREN) ) {
alt631=1;
}
else if ( (LA631_1==EOF||LA631_1==COMMA||LA631_1==EOS) ) {
alt631=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 631, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 631, 0, input);
throw nvae;
}
switch (alt631) {
case 1 :
// MFortranParser2018.g:6830:7: null_init
{
pushFollow(FOLLOW_null_init_in_proc_pointer_init28396);
null_init();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_pointer_init(null); }
}
break;
case 2 :
// MFortranParser2018.g:6832:7: IDENT
{
IDENT616=(Token)match(input,IDENT,FOLLOW_IDENT_in_proc_pointer_init28414); if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.proc_pointer_init(IDENT616); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "proc_pointer_init"
// $ANTLR start "intrinsic_stmt"
// MFortranParser2018.g:6841:1: intrinsic_stmt : (lbl= label )? INTRINSIC ( COLON_COLON )? generic_name_list end_of_stmt ;
public final void intrinsic_stmt() throws RecognitionException {
Token INTRINSIC617=null;
Token lbl =null;
Token end_of_stmt618 =null;
try {
// MFortranParser2018.g:6847:5: ( (lbl= label )? INTRINSIC ( COLON_COLON )? generic_name_list end_of_stmt )
// MFortranParser2018.g:6847:7: (lbl= label )? INTRINSIC ( COLON_COLON )? generic_name_list end_of_stmt
{
// MFortranParser2018.g:6847:7: (lbl= label )?
int alt632=2;
int LA632_0 = input.LA(1);
if ( (LA632_0==DIGIT_STR) ) {
alt632=1;
}
switch (alt632) {
case 1 :
// MFortranParser2018.g:6847:8: lbl= label
{
pushFollow(FOLLOW_label_in_intrinsic_stmt28454);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
INTRINSIC617=(Token)match(input,INTRINSIC,FOLLOW_INTRINSIC_in_intrinsic_stmt28465); if (state.failed) return;
// MFortranParser2018.g:6848:17: ( COLON_COLON )?
int alt633=2;
int LA633_0 = input.LA(1);
if ( (LA633_0==COLON_COLON) ) {
alt633=1;
}
switch (alt633) {
case 1 :
// MFortranParser2018.g:6848:18: COLON_COLON
{
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_intrinsic_stmt28468); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_generic_name_list_in_intrinsic_stmt28472);
generic_name_list();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_intrinsic_stmt28481);
end_of_stmt618=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.intrinsic_stmt(lbl,
INTRINSIC617, end_of_stmt618);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "intrinsic_stmt"
// $ANTLR start "call_stmt"
// MFortranParser2018.g:6864:1: call_stmt : (lbl= label )? CALL procedure_designator ( LPAREN ( actual_arg_spec_list )? RPAREN )? end_of_stmt ;
public final void call_stmt() throws RecognitionException {
Token CALL619=null;
Token lbl =null;
Token end_of_stmt620 =null;
boolean hasAASL = false;
try {
// MFortranParser2018.g:6871:5: ( (lbl= label )? CALL procedure_designator ( LPAREN ( actual_arg_spec_list )? RPAREN )? end_of_stmt )
// MFortranParser2018.g:6871:7: (lbl= label )? CALL procedure_designator ( LPAREN ( actual_arg_spec_list )? RPAREN )? end_of_stmt
{
// MFortranParser2018.g:6871:7: (lbl= label )?
int alt634=2;
int LA634_0 = input.LA(1);
if ( (LA634_0==DIGIT_STR) ) {
alt634=1;
}
switch (alt634) {
case 1 :
// MFortranParser2018.g:6871:8: lbl= label
{
pushFollow(FOLLOW_label_in_call_stmt28525);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CALL619=(Token)match(input,CALL,FOLLOW_CALL_in_call_stmt28536); if (state.failed) return;
pushFollow(FOLLOW_procedure_designator_in_call_stmt28538);
procedure_designator();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6873:7: ( LPAREN ( actual_arg_spec_list )? RPAREN )?
int alt636=2;
int LA636_0 = input.LA(1);
if ( (LA636_0==LPAREN) ) {
alt636=1;
}
switch (alt636) {
case 1 :
// MFortranParser2018.g:6873:9: LPAREN ( actual_arg_spec_list )? RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_call_stmt28549); if (state.failed) return;
// MFortranParser2018.g:6874:9: ( actual_arg_spec_list )?
int alt635=2;
int LA635_0 = input.LA(1);
if ( (LA635_0==ASTERISK||LA635_0==BIN_CONST||LA635_0==CHAR_CONST||(LA635_0 >= DEFINED_OP && LA635_0 <= DIGIT_STR)||LA635_0==FALSE||(LA635_0 >= HEX_CONST && LA635_0 <= IDENT)||LA635_0==LBRACKET||LA635_0==LPAREN||LA635_0==MINUS||LA635_0==M_REAL_CONST||LA635_0==NOT||LA635_0==OCT_CONST||LA635_0==PLUS||LA635_0==TRUE) ) {
alt635=1;
}
switch (alt635) {
case 1 :
// MFortranParser2018.g:6874:11: actual_arg_spec_list
{
pushFollow(FOLLOW_actual_arg_spec_list_in_call_stmt28562);
actual_arg_spec_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasAASL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_call_stmt28568); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_call_stmt28587);
end_of_stmt620=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.call_stmt(lbl,
CALL619, end_of_stmt620, hasAASL);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "call_stmt"
// $ANTLR start "procedure_designator"
// MFortranParser2018.g:6892:1: procedure_designator : data_ref ;
public final void procedure_designator() throws RecognitionException {
try {
// MFortranParser2018.g:6893:5: ( data_ref )
// MFortranParser2018.g:6893:7: data_ref
{
pushFollow(FOLLOW_data_ref_in_procedure_designator28616);
data_ref();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.procedure_designator();}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "procedure_designator"
// $ANTLR start "actual_arg_spec"
// MFortranParser2018.g:6909:1: actual_arg_spec : ( IDENT EQUALS )? ( expr | ASTERISK lbl= label ) ;
public final void actual_arg_spec() throws RecognitionException {
Token IDENT621=null;
Token ASTERISK622=null;
Token lbl =null;
Token keyword = null;
try {
// MFortranParser2018.g:6913:5: ( ( IDENT EQUALS )? ( expr | ASTERISK lbl= label ) )
// MFortranParser2018.g:6913:7: ( IDENT EQUALS )? ( expr | ASTERISK lbl= label )
{
// MFortranParser2018.g:6913:7: ( IDENT EQUALS )?
int alt637=2;
int LA637_0 = input.LA(1);
if ( (LA637_0==IDENT) ) {
int LA637_1 = input.LA(2);
if ( (LA637_1==EQUALS) ) {
alt637=1;
}
}
switch (alt637) {
case 1 :
// MFortranParser2018.g:6913:8: IDENT EQUALS
{
IDENT621=(Token)match(input,IDENT,FOLLOW_IDENT_in_actual_arg_spec28642); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_actual_arg_spec28644); if (state.failed) return;
if ( state.backtracking==0 ) {keyword=IDENT621;}
}
break;
}
// MFortranParser2018.g:6914:7: ( expr | ASTERISK lbl= label )
int alt638=2;
int LA638_0 = input.LA(1);
if ( (LA638_0==BIN_CONST||LA638_0==CHAR_CONST||(LA638_0 >= DEFINED_OP && LA638_0 <= DIGIT_STR)||LA638_0==FALSE||(LA638_0 >= HEX_CONST && LA638_0 <= IDENT)||LA638_0==LBRACKET||LA638_0==LPAREN||LA638_0==MINUS||LA638_0==M_REAL_CONST||LA638_0==NOT||LA638_0==OCT_CONST||LA638_0==PLUS||LA638_0==TRUE) ) {
alt638=1;
}
else if ( (LA638_0==ASTERISK) ) {
alt638=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 638, 0, input);
throw nvae;
}
switch (alt638) {
case 1 :
// MFortranParser2018.g:6914:9: expr
{
pushFollow(FOLLOW_expr_in_actual_arg_spec28659);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(keyword, null, null); }
}
break;
case 2 :
// MFortranParser2018.g:6916:9: ASTERISK lbl= label
{
ASTERISK622=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_actual_arg_spec28682); if (state.failed) return;
pushFollow(FOLLOW_label_in_actual_arg_spec28686);
lbl=label();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.actual_arg_spec(keyword, ASTERISK622, lbl); }
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "actual_arg_spec"
// $ANTLR start "actual_arg_spec_list"
// MFortranParser2018.g:6920:1: actual_arg_spec_list options {greedy=false; } : actual_arg_spec ( COMMA actual_arg_spec )* ;
public final void actual_arg_spec_list() throws RecognitionException {
int numAAS = 1;
try {
// MFortranParser2018.g:6928:5: ( actual_arg_spec ( COMMA actual_arg_spec )* )
// MFortranParser2018.g:6928:7: actual_arg_spec ( COMMA actual_arg_spec )*
{
pushFollow(FOLLOW_actual_arg_spec_in_actual_arg_spec_list28733);
actual_arg_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6929:7: ( COMMA actual_arg_spec )*
loop639:
while (true) {
int alt639=2;
int LA639_0 = input.LA(1);
if ( (LA639_0==COMMA) ) {
alt639=1;
}
switch (alt639) {
case 1 :
// MFortranParser2018.g:6929:9: COMMA actual_arg_spec
{
match(input,COMMA,FOLLOW_COMMA_in_actual_arg_spec_list28743); if (state.failed) return;
pushFollow(FOLLOW_actual_arg_spec_in_actual_arg_spec_list28745);
actual_arg_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numAAS++;}
}
break;
default :
break loop639;
}
}
}
if ( state.backtracking==0 ) {
MFPA.actual_arg_spec_list(numAAS);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "actual_arg_spec_list"
// $ANTLR start "prefix"
// MFortranParser2018.g:6937:1: prefix : prefix_spec ( prefix_spec )* ;
public final void prefix() throws RecognitionException {
int numPref = 1;
try {
// MFortranParser2018.g:6944:5: ( prefix_spec ( prefix_spec )* )
// MFortranParser2018.g:6944:7: prefix_spec ( prefix_spec )*
{
pushFollow(FOLLOW_prefix_spec_in_prefix28777);
prefix_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6945:7: ( prefix_spec )*
loop640:
while (true) {
int alt640=2;
int LA640_0 = input.LA(1);
if ( (LA640_0==CHARACTER||LA640_0==CLASS||LA640_0==COMPLEX||(LA640_0 >= DOUBLE && LA640_0 <= DOUBLEPRECISION)||LA640_0==ELEMENTAL||LA640_0==IMPURE||LA640_0==INTEGER||LA640_0==LOGICAL||LA640_0==MODULE||LA640_0==NON_RECURSIVE||LA640_0==PURE||(LA640_0 >= REAL && LA640_0 <= RECURSIVE)||LA640_0==TYPE) ) {
alt640=1;
}
switch (alt640) {
case 1 :
// MFortranParser2018.g:6945:8: prefix_spec
{
pushFollow(FOLLOW_prefix_spec_in_prefix28786);
prefix_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numPref++;}
}
break;
default :
break loop640;
}
}
}
if ( state.backtracking==0 ) {
MFPA.prefix(numPref);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "prefix"
// $ANTLR start "prefix_spec"
// MFortranParser2018.g:6951:1: prefix_spec : ( declaration_type_spec | ELEMENTAL | IMPURE | MODULE | NON_RECURSIVE | PURE | RECURSIVE );
public final void prefix_spec() throws RecognitionException {
Token ELEMENTAL623=null;
Token IMPURE624=null;
Token MODULE625=null;
Token NON_RECURSIVE626=null;
Token PURE627=null;
Token RECURSIVE628=null;
try {
// MFortranParser2018.g:6952:5: ( declaration_type_spec | ELEMENTAL | IMPURE | MODULE | NON_RECURSIVE | PURE | RECURSIVE )
int alt641=7;
switch ( input.LA(1) ) {
case CHARACTER:
case CLASS:
case COMPLEX:
case DOUBLE:
case DOUBLECOMPLEX:
case DOUBLEPRECISION:
case INTEGER:
case LOGICAL:
case REAL:
case TYPE:
{
alt641=1;
}
break;
case ELEMENTAL:
{
alt641=2;
}
break;
case IMPURE:
{
alt641=3;
}
break;
case MODULE:
{
alt641=4;
}
break;
case NON_RECURSIVE:
{
alt641=5;
}
break;
case PURE:
{
alt641=6;
}
break;
case RECURSIVE:
{
alt641=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 641, 0, input);
throw nvae;
}
switch (alt641) {
case 1 :
// MFortranParser2018.g:6952:7: declaration_type_spec
{
pushFollow(FOLLOW_declaration_type_spec_in_prefix_spec28809);
declaration_type_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.prefix_spec(null, MFPUtils.PFX_TYPE); }
}
break;
case 2 :
// MFortranParser2018.g:6954:7: ELEMENTAL
{
ELEMENTAL623=(Token)match(input,ELEMENTAL,FOLLOW_ELEMENTAL_in_prefix_spec28827); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.prefix_spec(ELEMENTAL623, MFPUtils.PFX_ELEMENTAL);}
}
break;
case 3 :
// MFortranParser2018.g:6956:7: IMPURE
{
IMPURE624=(Token)match(input,IMPURE,FOLLOW_IMPURE_in_prefix_spec28845); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.prefix_spec(IMPURE624, MFPUtils.PFX_IMPURE);}
}
break;
case 4 :
// MFortranParser2018.g:6958:7: MODULE
{
MODULE625=(Token)match(input,MODULE,FOLLOW_MODULE_in_prefix_spec28863); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.prefix_spec(MODULE625, MFPUtils.PFX_MODULE);}
}
break;
case 5 :
// MFortranParser2018.g:6960:7: NON_RECURSIVE
{
NON_RECURSIVE626=(Token)match(input,NON_RECURSIVE,FOLLOW_NON_RECURSIVE_in_prefix_spec28881); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.prefix_spec(NON_RECURSIVE626, MFPUtils.PFX_NON_RECURSIVE);}
}
break;
case 6 :
// MFortranParser2018.g:6962:7: PURE
{
PURE627=(Token)match(input,PURE,FOLLOW_PURE_in_prefix_spec28899); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.prefix_spec(PURE627, MFPUtils.PFX_PURE);}
}
break;
case 7 :
// MFortranParser2018.g:6964:7: RECURSIVE
{
RECURSIVE628=(Token)match(input,RECURSIVE,FOLLOW_RECURSIVE_in_prefix_spec28917); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.prefix_spec(RECURSIVE628, MFPUtils.PFX_RECURSIVE);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "prefix_spec"
// $ANTLR start "function_subprogram"
// MFortranParser2018.g:6980:1: function_subprogram : function_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_function_stmt ;
public final void function_subprogram() throws RecognitionException {
boolean hasEP = false;
boolean hasISP = false;
try {
// MFortranParser2018.g:6985:5: ( function_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_function_stmt )
// MFortranParser2018.g:6985:7: function_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_function_stmt
{
pushFollow(FOLLOW_function_stmt_in_function_subprogram28954);
function_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_function_subprogram28962);
specification_part();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:6987:7: ( execution_part )?
int alt642=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA642_1 = input.LA(2);
if ( (LA642_1==ALLOCATE||LA642_1==ASSOCIATE||LA642_1==BACKSPACE||LA642_1==BLOCK||LA642_1==CALL||LA642_1==CLOSE||LA642_1==CONTINUE||(LA642_1 >= CRITICAL && LA642_1 <= CYCLE)||LA642_1==DEALLOCATE||LA642_1==DO||LA642_1==EXIT||LA642_1==FLUSH||(LA642_1 >= GO && LA642_1 <= GOTO)||(LA642_1 >= IDENT && LA642_1 <= IF)||LA642_1==INQUIRE||(LA642_1 >= M_ALLOCATE_STMT_1 && LA642_1 <= M_ASSIGNMENT_STMT)||(LA642_1 >= M_FORALL_CONSTRUCT_STMT && LA642_1 <= M_IF_STMT)||LA642_1==M_INQUIRE_STMT_2||LA642_1==M_PTR_ASSIGNMENT_STMT||LA642_1==M_WHERE_STMT||LA642_1==NULLIFY||LA642_1==OPEN||LA642_1==PRINT||LA642_1==READ||(LA642_1 >= RETURN && LA642_1 <= REWIND)||(LA642_1 >= SELECT && LA642_1 <= SELECTTYPE)||LA642_1==STOP||LA642_1==SYNC||LA642_1==WAIT||LA642_1==WRITE) ) {
alt642=1;
}
else if ( (LA642_1==END) ) {
int LA642_3 = input.LA(3);
if ( (LA642_3==FILE) ) {
alt642=1;
}
}
}
break;
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DEALLOCATE:
case DO:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_CONSTRUCT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRAGMA:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt642=1;
}
break;
case END:
{
int LA642_3 = input.LA(2);
if ( (LA642_3==FILE) ) {
alt642=1;
}
}
break;
}
switch (alt642) {
case 1 :
// MFortranParser2018.g:6987:9: execution_part
{
pushFollow(FOLLOW_execution_part_in_function_subprogram28972);
execution_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasEP=true; }
}
break;
}
// MFortranParser2018.g:6988:7: ( internal_subprogram_part )?
int alt643=2;
int LA643_0 = input.LA(1);
if ( (LA643_0==DIGIT_STR) ) {
int LA643_1 = input.LA(2);
if ( (LA643_1==CONTAINS) ) {
alt643=1;
}
}
else if ( (LA643_0==CONTAINS) ) {
alt643=1;
}
switch (alt643) {
case 1 :
// MFortranParser2018.g:6988:9: internal_subprogram_part
{
pushFollow(FOLLOW_internal_subprogram_part_in_function_subprogram28986);
internal_subprogram_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasISP=true; }
}
break;
}
pushFollow(FOLLOW_end_function_stmt_in_function_subprogram28998);
end_function_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.function_subprogram(hasEP, hasISP); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "function_subprogram"
// $ANTLR start "function_stmt"
// MFortranParser2018.g:6998:1: function_stmt : (lbl= label )? FUNCTION IDENT LPAREN ( generic_name_list )? RPAREN ( suffix )? end_of_stmt ;
public final void function_stmt() throws RecognitionException {
Token FUNCTION629=null;
Token IDENT630=null;
Token lbl =null;
Token end_of_stmt631 =null;
boolean hasGNL=false;
boolean hasSffx=false;
try {
// MFortranParser2018.g:7006:5: ( (lbl= label )? FUNCTION IDENT LPAREN ( generic_name_list )? RPAREN ( suffix )? end_of_stmt )
// MFortranParser2018.g:7006:7: (lbl= label )? FUNCTION IDENT LPAREN ( generic_name_list )? RPAREN ( suffix )? end_of_stmt
{
// MFortranParser2018.g:7006:7: (lbl= label )?
int alt644=2;
int LA644_0 = input.LA(1);
if ( (LA644_0==DIGIT_STR) ) {
alt644=1;
}
switch (alt644) {
case 1 :
// MFortranParser2018.g:7006:8: lbl= label
{
pushFollow(FOLLOW_label_in_function_stmt29039);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
FUNCTION629=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_function_stmt29050); if (state.failed) return;
IDENT630=(Token)match(input,IDENT,FOLLOW_IDENT_in_function_stmt29052); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_function_stmt29054); if (state.failed) return;
// MFortranParser2018.g:7008:7: ( generic_name_list )?
int alt645=2;
int LA645_0 = input.LA(1);
if ( (LA645_0==IDENT) ) {
alt645=1;
}
switch (alt645) {
case 1 :
// MFortranParser2018.g:7008:9: generic_name_list
{
pushFollow(FOLLOW_generic_name_list_in_function_stmt29065);
generic_name_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasGNL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_function_stmt29078); if (state.failed) return;
// MFortranParser2018.g:7009:14: ( suffix )?
int alt646=2;
int LA646_0 = input.LA(1);
if ( (LA646_0==BIND||LA646_0==RESULT) ) {
alt646=1;
}
switch (alt646) {
case 1 :
// MFortranParser2018.g:7009:15: suffix
{
pushFollow(FOLLOW_suffix_in_function_stmt29081);
suffix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSffx=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_function_stmt29094);
end_of_stmt631=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.function_stmt(lbl, FUNCTION629,
IDENT630, end_of_stmt631, hasGNL, hasSffx);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "function_stmt"
// $ANTLR start "suffix"
// MFortranParser2018.g:7025:1: suffix : ( language_binding_spec ( RESULT LPAREN IDENT RPAREN )? | RESULT LPAREN IDENT RPAREN ( language_binding_spec )? );
public final void suffix() throws RecognitionException {
Token IDENT632=null;
Token IDENT633=null;
Token rname = null;
boolean hasPLBS = false;
try {
// MFortranParser2018.g:7030:5: ( language_binding_spec ( RESULT LPAREN IDENT RPAREN )? | RESULT LPAREN IDENT RPAREN ( language_binding_spec )? )
int alt649=2;
int LA649_0 = input.LA(1);
if ( (LA649_0==BIND) ) {
alt649=1;
}
else if ( (LA649_0==RESULT) ) {
alt649=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 649, 0, input);
throw nvae;
}
switch (alt649) {
case 1 :
// MFortranParser2018.g:7030:7: language_binding_spec ( RESULT LPAREN IDENT RPAREN )?
{
pushFollow(FOLLOW_language_binding_spec_in_suffix29130);
language_binding_spec();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:7031:7: ( RESULT LPAREN IDENT RPAREN )?
int alt647=2;
int LA647_0 = input.LA(1);
if ( (LA647_0==RESULT) ) {
alt647=1;
}
switch (alt647) {
case 1 :
// MFortranParser2018.g:7031:9: RESULT LPAREN IDENT RPAREN
{
match(input,RESULT,FOLLOW_RESULT_in_suffix29141); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_suffix29143); if (state.failed) return;
IDENT632=(Token)match(input,IDENT,FOLLOW_IDENT_in_suffix29145); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_suffix29147); if (state.failed) return;
if ( state.backtracking==0 ) {rname=IDENT632;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.suffix(rname, true); }
}
break;
case 2 :
// MFortranParser2018.g:7033:7: RESULT LPAREN IDENT RPAREN ( language_binding_spec )?
{
match(input,RESULT,FOLLOW_RESULT_in_suffix29170); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_suffix29172); if (state.failed) return;
IDENT633=(Token)match(input,IDENT,FOLLOW_IDENT_in_suffix29174); if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_suffix29176); if (state.failed) return;
// MFortranParser2018.g:7034:7: ( language_binding_spec )?
int alt648=2;
int LA648_0 = input.LA(1);
if ( (LA648_0==BIND) ) {
alt648=1;
}
switch (alt648) {
case 1 :
// MFortranParser2018.g:7034:9: language_binding_spec
{
pushFollow(FOLLOW_language_binding_spec_in_suffix29187);
language_binding_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasPLBS = true;}
}
break;
}
if ( state.backtracking==0 ) { MFPA.suffix(IDENT633, hasPLBS); }
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "suffix"
// $ANTLR start "end_function_stmt"
// MFortranParser2018.g:7041:1: end_function_stmt : ( (lbl= label )? END FUNCTION ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt );
public final void end_function_stmt() throws RecognitionException {
Token IDENT634=null;
Token END635=null;
Token FUNCTION636=null;
Token END638=null;
Token lbl =null;
Token end_of_stmt637 =null;
Token end_of_stmt639 =null;
Token id = null;
try {
// MFortranParser2018.g:7048:5: ( (lbl= label )? END FUNCTION ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt )
int alt653=2;
int LA653_0 = input.LA(1);
if ( (LA653_0==DIGIT_STR) ) {
int LA653_1 = input.LA(2);
if ( (LA653_1==END) ) {
int LA653_2 = input.LA(3);
if ( (LA653_2==FUNCTION) ) {
alt653=1;
}
else if ( (LA653_2==EOF||LA653_2==EOS) ) {
alt653=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 653, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 653, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA653_0==END) ) {
int LA653_2 = input.LA(2);
if ( (LA653_2==FUNCTION) ) {
alt653=1;
}
else if ( (LA653_2==EOF||LA653_2==EOS) ) {
alt653=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 653, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 653, 0, input);
throw nvae;
}
switch (alt653) {
case 1 :
// MFortranParser2018.g:7048:7: (lbl= label )? END FUNCTION ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:7048:7: (lbl= label )?
int alt650=2;
int LA650_0 = input.LA(1);
if ( (LA650_0==DIGIT_STR) ) {
alt650=1;
}
switch (alt650) {
case 1 :
// MFortranParser2018.g:7048:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_function_stmt29232);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END635=(Token)match(input,END,FOLLOW_END_in_end_function_stmt29243); if (state.failed) return;
FUNCTION636=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_end_function_stmt29245); if (state.failed) return;
// MFortranParser2018.g:7049:20: ( IDENT )?
int alt651=2;
int LA651_0 = input.LA(1);
if ( (LA651_0==IDENT) ) {
alt651=1;
}
switch (alt651) {
case 1 :
// MFortranParser2018.g:7049:21: IDENT
{
IDENT634=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_function_stmt29248); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT634;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_function_stmt29260);
end_of_stmt637=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_function_stmt(lbl,
END635, FUNCTION636, id, end_of_stmt637);}
}
break;
case 2 :
// MFortranParser2018.g:7053:7: (lbl= label )? END end_of_stmt
{
// MFortranParser2018.g:7053:7: (lbl= label )?
int alt652=2;
int LA652_0 = input.LA(1);
if ( (LA652_0==DIGIT_STR) ) {
alt652=1;
}
switch (alt652) {
case 1 :
// MFortranParser2018.g:7053:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_function_stmt29281);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END638=(Token)match(input,END,FOLLOW_END_in_end_function_stmt29292); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_end_function_stmt29294);
end_of_stmt639=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_function_stmt(lbl,
END638, null, id, end_of_stmt639);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_function_stmt"
// $ANTLR start "subroutine_subprogram"
// MFortranParser2018.g:7064:1: subroutine_subprogram : subroutine_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_subroutine_stmt ;
public final void subroutine_subprogram() throws RecognitionException {
boolean hasEP = false;
boolean hasISP = false;
try {
// MFortranParser2018.g:7069:5: ( subroutine_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_subroutine_stmt )
// MFortranParser2018.g:7069:7: subroutine_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_subroutine_stmt
{
pushFollow(FOLLOW_subroutine_stmt_in_subroutine_subprogram29328);
subroutine_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_subroutine_subprogram29336);
specification_part();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:7071:7: ( execution_part )?
int alt654=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA654_1 = input.LA(2);
if ( (LA654_1==ALLOCATE||LA654_1==ASSOCIATE||LA654_1==BACKSPACE||LA654_1==BLOCK||LA654_1==CALL||LA654_1==CLOSE||LA654_1==CONTINUE||(LA654_1 >= CRITICAL && LA654_1 <= CYCLE)||LA654_1==DEALLOCATE||LA654_1==DO||LA654_1==EXIT||LA654_1==FLUSH||(LA654_1 >= GO && LA654_1 <= GOTO)||(LA654_1 >= IDENT && LA654_1 <= IF)||LA654_1==INQUIRE||(LA654_1 >= M_ALLOCATE_STMT_1 && LA654_1 <= M_ASSIGNMENT_STMT)||(LA654_1 >= M_FORALL_CONSTRUCT_STMT && LA654_1 <= M_IF_STMT)||LA654_1==M_INQUIRE_STMT_2||LA654_1==M_PTR_ASSIGNMENT_STMT||LA654_1==M_WHERE_STMT||LA654_1==NULLIFY||LA654_1==OPEN||LA654_1==PRINT||LA654_1==READ||(LA654_1 >= RETURN && LA654_1 <= REWIND)||(LA654_1 >= SELECT && LA654_1 <= SELECTTYPE)||LA654_1==STOP||LA654_1==SYNC||LA654_1==WAIT||LA654_1==WRITE) ) {
alt654=1;
}
else if ( (LA654_1==END) ) {
int LA654_3 = input.LA(3);
if ( (LA654_3==FILE) ) {
alt654=1;
}
}
}
break;
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DEALLOCATE:
case DO:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_CONSTRUCT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRAGMA:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt654=1;
}
break;
case END:
{
int LA654_3 = input.LA(2);
if ( (LA654_3==FILE) ) {
alt654=1;
}
}
break;
}
switch (alt654) {
case 1 :
// MFortranParser2018.g:7071:9: execution_part
{
pushFollow(FOLLOW_execution_part_in_subroutine_subprogram29346);
execution_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasEP=true; }
}
break;
}
// MFortranParser2018.g:7072:7: ( internal_subprogram_part )?
int alt655=2;
int LA655_0 = input.LA(1);
if ( (LA655_0==DIGIT_STR) ) {
int LA655_1 = input.LA(2);
if ( (LA655_1==CONTAINS) ) {
alt655=1;
}
}
else if ( (LA655_0==CONTAINS) ) {
alt655=1;
}
switch (alt655) {
case 1 :
// MFortranParser2018.g:7072:9: internal_subprogram_part
{
pushFollow(FOLLOW_internal_subprogram_part_in_subroutine_subprogram29360);
internal_subprogram_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { hasISP=true; }
}
break;
}
pushFollow(FOLLOW_end_subroutine_stmt_in_subroutine_subprogram29372);
end_subroutine_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.subroutine_subprogram(hasEP, hasISP); }
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "subroutine_subprogram"
// $ANTLR start "subroutine_stmt"
// MFortranParser2018.g:7082:1: subroutine_stmt : (lbl= label )? ( prefix )? SUBROUTINE IDENT ( LPAREN ( dummy_arg_list )? RPAREN ( language_binding_spec )? )? end_of_stmt ;
public final void subroutine_stmt() throws RecognitionException {
Token SUBROUTINE640=null;
Token IDENT641=null;
Token lbl =null;
Token end_of_stmt642 =null;
boolean hasPref=false;
boolean hasDAL=false;
boolean hasBS=false;
boolean hasAS=false;
try {
// MFortranParser2018.g:7092:5: ( (lbl= label )? ( prefix )? SUBROUTINE IDENT ( LPAREN ( dummy_arg_list )? RPAREN ( language_binding_spec )? )? end_of_stmt )
// MFortranParser2018.g:7092:7: (lbl= label )? ( prefix )? SUBROUTINE IDENT ( LPAREN ( dummy_arg_list )? RPAREN ( language_binding_spec )? )? end_of_stmt
{
// MFortranParser2018.g:7092:7: (lbl= label )?
int alt656=2;
int LA656_0 = input.LA(1);
if ( (LA656_0==DIGIT_STR) ) {
alt656=1;
}
switch (alt656) {
case 1 :
// MFortranParser2018.g:7092:8: lbl= label
{
pushFollow(FOLLOW_label_in_subroutine_stmt29412);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
// MFortranParser2018.g:7093:7: ( prefix )?
int alt657=2;
int LA657_0 = input.LA(1);
if ( (LA657_0==CHARACTER||LA657_0==CLASS||LA657_0==COMPLEX||(LA657_0 >= DOUBLE && LA657_0 <= DOUBLEPRECISION)||LA657_0==ELEMENTAL||LA657_0==IMPURE||LA657_0==INTEGER||LA657_0==LOGICAL||LA657_0==MODULE||LA657_0==NON_RECURSIVE||LA657_0==PURE||(LA657_0 >= REAL && LA657_0 <= RECURSIVE)||LA657_0==TYPE) ) {
alt657=1;
}
switch (alt657) {
case 1 :
// MFortranParser2018.g:7093:8: prefix
{
pushFollow(FOLLOW_prefix_in_subroutine_stmt29424);
prefix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasPref=true;}
}
break;
}
SUBROUTINE640=(Token)match(input,SUBROUTINE,FOLLOW_SUBROUTINE_in_subroutine_stmt29437); if (state.failed) return;
IDENT641=(Token)match(input,IDENT,FOLLOW_IDENT_in_subroutine_stmt29439); if (state.failed) return;
// MFortranParser2018.g:7095:7: ( LPAREN ( dummy_arg_list )? RPAREN ( language_binding_spec )? )?
int alt660=2;
int LA660_0 = input.LA(1);
if ( (LA660_0==LPAREN) ) {
alt660=1;
}
switch (alt660) {
case 1 :
// MFortranParser2018.g:7095:9: LPAREN ( dummy_arg_list )? RPAREN ( language_binding_spec )?
{
match(input,LPAREN,FOLLOW_LPAREN_in_subroutine_stmt29450); if (state.failed) return;
// MFortranParser2018.g:7095:16: ( dummy_arg_list )?
int alt658=2;
int LA658_0 = input.LA(1);
if ( (LA658_0==ASTERISK||LA658_0==IDENT) ) {
alt658=1;
}
switch (alt658) {
case 1 :
// MFortranParser2018.g:7095:17: dummy_arg_list
{
pushFollow(FOLLOW_dummy_arg_list_in_subroutine_stmt29453);
dummy_arg_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasDAL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_subroutine_stmt29468); if (state.failed) return;
if ( state.backtracking==0 ) {hasAS=true;}
// MFortranParser2018.g:7097:9: ( language_binding_spec )?
int alt659=2;
int LA659_0 = input.LA(1);
if ( (LA659_0==BIND) ) {
alt659=1;
}
switch (alt659) {
case 1 :
// MFortranParser2018.g:7097:10: language_binding_spec
{
pushFollow(FOLLOW_language_binding_spec_in_subroutine_stmt29481);
language_binding_spec();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasBS=true;}
}
break;
}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_subroutine_stmt29503);
end_of_stmt642=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.subroutine_stmt(lbl,
SUBROUTINE640, IDENT641, end_of_stmt642,
hasPref, hasDAL, hasBS, hasAS);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "subroutine_stmt"
// $ANTLR start "dummy_arg"
// MFortranParser2018.g:7109:1: dummy_arg options {greedy=false; memoize=false; } : ( IDENT | ASTERISK );
public final void dummy_arg() throws RecognitionException {
Token IDENT643=null;
Token ASTERISK644=null;
try {
// MFortranParser2018.g:7111:5: ( IDENT | ASTERISK )
int alt661=2;
int LA661_0 = input.LA(1);
if ( (LA661_0==IDENT) ) {
alt661=1;
}
else if ( (LA661_0==ASTERISK) ) {
alt661=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 661, 0, input);
throw nvae;
}
switch (alt661) {
case 1 :
// MFortranParser2018.g:7111:7: IDENT
{
IDENT643=(Token)match(input,IDENT,FOLLOW_IDENT_in_dummy_arg29544); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.dummy_arg(IDENT643);}
}
break;
case 2 :
// MFortranParser2018.g:7112:7: ASTERISK
{
ASTERISK644=(Token)match(input,ASTERISK,FOLLOW_ASTERISK_in_dummy_arg29554); if (state.failed) return;
if ( state.backtracking==0 ) {MFPA.dummy_arg(ASTERISK644);}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dummy_arg"
// $ANTLR start "dummy_arg_list"
// MFortranParser2018.g:7115:1: dummy_arg_list : dummy_arg ( COMMA dummy_arg )* ;
public final void dummy_arg_list() throws RecognitionException {
int numDA = 1;
try {
// MFortranParser2018.g:7122:5: ( dummy_arg ( COMMA dummy_arg )* )
// MFortranParser2018.g:7122:7: dummy_arg ( COMMA dummy_arg )*
{
pushFollow(FOLLOW_dummy_arg_in_dummy_arg_list29581);
dummy_arg();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:7123:7: ( COMMA dummy_arg )*
loop662:
while (true) {
int alt662=2;
int LA662_0 = input.LA(1);
if ( (LA662_0==COMMA) ) {
alt662=1;
}
switch (alt662) {
case 1 :
// MFortranParser2018.g:7123:9: COMMA dummy_arg
{
match(input,COMMA,FOLLOW_COMMA_in_dummy_arg_list29591); if (state.failed) return;
pushFollow(FOLLOW_dummy_arg_in_dummy_arg_list29593);
dummy_arg();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {numDA++;}
}
break;
default :
break loop662;
}
}
}
if ( state.backtracking==0 ) {
MFPA.dummy_arg_list(numDA);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "dummy_arg_list"
// $ANTLR start "end_subroutine_stmt"
// MFortranParser2018.g:7129:1: end_subroutine_stmt : ( (lbl= label )? END SUBROUTINE ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt );
public final void end_subroutine_stmt() throws RecognitionException {
Token IDENT645=null;
Token END646=null;
Token SUBROUTINE647=null;
Token END649=null;
Token lbl =null;
Token end_of_stmt648 =null;
Token end_of_stmt650 =null;
Token id = null;
try {
// MFortranParser2018.g:7136:5: ( (lbl= label )? END SUBROUTINE ( IDENT )? end_of_stmt | (lbl= label )? END end_of_stmt )
int alt666=2;
int LA666_0 = input.LA(1);
if ( (LA666_0==DIGIT_STR) ) {
int LA666_1 = input.LA(2);
if ( (LA666_1==END) ) {
int LA666_2 = input.LA(3);
if ( (LA666_2==SUBROUTINE) ) {
alt666=1;
}
else if ( (LA666_2==EOF||LA666_2==EOS) ) {
alt666=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 666, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 666, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA666_0==END) ) {
int LA666_2 = input.LA(2);
if ( (LA666_2==SUBROUTINE) ) {
alt666=1;
}
else if ( (LA666_2==EOF||LA666_2==EOS) ) {
alt666=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 666, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 666, 0, input);
throw nvae;
}
switch (alt666) {
case 1 :
// MFortranParser2018.g:7136:7: (lbl= label )? END SUBROUTINE ( IDENT )? end_of_stmt
{
// MFortranParser2018.g:7136:7: (lbl= label )?
int alt663=2;
int LA663_0 = input.LA(1);
if ( (LA663_0==DIGIT_STR) ) {
alt663=1;
}
switch (alt663) {
case 1 :
// MFortranParser2018.g:7136:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_subroutine_stmt29628);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END646=(Token)match(input,END,FOLLOW_END_in_end_subroutine_stmt29639); if (state.failed) return;
SUBROUTINE647=(Token)match(input,SUBROUTINE,FOLLOW_SUBROUTINE_in_end_subroutine_stmt29641); if (state.failed) return;
// MFortranParser2018.g:7137:22: ( IDENT )?
int alt664=2;
int LA664_0 = input.LA(1);
if ( (LA664_0==IDENT) ) {
alt664=1;
}
switch (alt664) {
case 1 :
// MFortranParser2018.g:7137:23: IDENT
{
IDENT645=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_subroutine_stmt29644); if (state.failed) return;
if ( state.backtracking==0 ) {id=IDENT645;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_subroutine_stmt29656);
end_of_stmt648=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_subroutine_stmt(lbl,
END646, SUBROUTINE647, id, end_of_stmt648);}
}
break;
case 2 :
// MFortranParser2018.g:7141:7: (lbl= label )? END end_of_stmt
{
// MFortranParser2018.g:7141:7: (lbl= label )?
int alt665=2;
int LA665_0 = input.LA(1);
if ( (LA665_0==DIGIT_STR) ) {
alt665=1;
}
switch (alt665) {
case 1 :
// MFortranParser2018.g:7141:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_subroutine_stmt29677);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END649=(Token)match(input,END,FOLLOW_END_in_end_subroutine_stmt29688); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_end_subroutine_stmt29697);
end_of_stmt650=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_subroutine_stmt(lbl,
END649, null, id, end_of_stmt650);}
}
break;
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_subroutine_stmt"
// $ANTLR start "separate_module_subprogram"
// MFortranParser2018.g:7153:1: separate_module_subprogram : mp_subprogram_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_mp_subprogram_stmt ;
public final void separate_module_subprogram() throws RecognitionException {
boolean hasEP = false;
boolean hasISP = false;
try {
// MFortranParser2018.g:7161:5: ( mp_subprogram_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_mp_subprogram_stmt )
// MFortranParser2018.g:7161:7: mp_subprogram_stmt specification_part ( execution_part )? ( internal_subprogram_part )? end_mp_subprogram_stmt
{
pushFollow(FOLLOW_mp_subprogram_stmt_in_separate_module_subprogram29734);
mp_subprogram_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_separate_module_subprogram29742);
specification_part();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:7163:7: ( execution_part )?
int alt667=2;
switch ( input.LA(1) ) {
case DIGIT_STR:
{
int LA667_1 = input.LA(2);
if ( (LA667_1==ALLOCATE||LA667_1==ASSOCIATE||LA667_1==BACKSPACE||LA667_1==BLOCK||LA667_1==CALL||LA667_1==CLOSE||LA667_1==CONTINUE||(LA667_1 >= CRITICAL && LA667_1 <= CYCLE)||LA667_1==DEALLOCATE||LA667_1==DO||LA667_1==EXIT||LA667_1==FLUSH||(LA667_1 >= GO && LA667_1 <= GOTO)||(LA667_1 >= IDENT && LA667_1 <= IF)||LA667_1==INQUIRE||(LA667_1 >= M_ALLOCATE_STMT_1 && LA667_1 <= M_ASSIGNMENT_STMT)||(LA667_1 >= M_FORALL_CONSTRUCT_STMT && LA667_1 <= M_IF_STMT)||LA667_1==M_INQUIRE_STMT_2||LA667_1==M_PTR_ASSIGNMENT_STMT||LA667_1==M_WHERE_STMT||LA667_1==NULLIFY||LA667_1==OPEN||LA667_1==PRINT||LA667_1==READ||(LA667_1 >= RETURN && LA667_1 <= REWIND)||(LA667_1 >= SELECT && LA667_1 <= SELECTTYPE)||LA667_1==STOP||LA667_1==SYNC||LA667_1==WAIT||LA667_1==WRITE) ) {
alt667=1;
}
else if ( (LA667_1==END) ) {
int LA667_3 = input.LA(3);
if ( (LA667_3==FILE) ) {
alt667=1;
}
}
}
break;
case ALLOCATE:
case ASSOCIATE:
case BACKSPACE:
case BLOCK:
case CALL:
case CLOSE:
case CONTINUE:
case CRITICAL:
case CYCLE:
case DEALLOCATE:
case DO:
case EXIT:
case FLUSH:
case GO:
case GOTO:
case IDENT:
case IF:
case INQUIRE:
case M_ALLOCATE_STMT_1:
case M_ASSIGNMENT_STMT:
case M_FORALL_CONSTRUCT_STMT:
case M_FORALL_STMT:
case M_IF_STMT:
case M_INQUIRE_STMT_2:
case M_PTR_ASSIGNMENT_STMT:
case M_WHERE_CONSTRUCT_STMT:
case M_WHERE_STMT:
case NULLIFY:
case OPEN:
case PRAGMA:
case PRINT:
case READ:
case RETURN:
case REWIND:
case SELECT:
case SELECTCASE:
case SELECTTYPE:
case STOP:
case SYNC:
case WAIT:
case WRITE:
{
alt667=1;
}
break;
case END:
{
int LA667_3 = input.LA(2);
if ( (LA667_3==FILE) ) {
alt667=1;
}
}
break;
}
switch (alt667) {
case 1 :
// MFortranParser2018.g:7163:9: execution_part
{
pushFollow(FOLLOW_execution_part_in_separate_module_subprogram29752);
execution_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasEP=true;}
}
break;
}
// MFortranParser2018.g:7164:7: ( internal_subprogram_part )?
int alt668=2;
int LA668_0 = input.LA(1);
if ( (LA668_0==DIGIT_STR) ) {
int LA668_1 = input.LA(2);
if ( (LA668_1==CONTAINS) ) {
alt668=1;
}
}
else if ( (LA668_0==CONTAINS) ) {
alt668=1;
}
switch (alt668) {
case 1 :
// MFortranParser2018.g:7164:9: internal_subprogram_part
{
pushFollow(FOLLOW_internal_subprogram_part_in_separate_module_subprogram29767);
internal_subprogram_part();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasISP=true;}
}
break;
}
pushFollow(FOLLOW_end_mp_subprogram_stmt_in_separate_module_subprogram29780);
end_mp_subprogram_stmt();
state._fsp--;
if (state.failed) return;
}
if ( state.backtracking==0 ) {
MFPA.separate_module_subprogram(hasEP, hasISP);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "separate_module_subprogram"
// $ANTLR start "mp_subprogram_stmt"
// MFortranParser2018.g:7172:1: mp_subprogram_stmt : (lbl= label )? MODULE PROCEDURE IDENT end_of_stmt ;
public final void mp_subprogram_stmt() throws RecognitionException {
Token MODULE651=null;
Token PROCEDURE652=null;
Token IDENT653=null;
Token lbl =null;
Token end_of_stmt654 =null;
try {
// MFortranParser2018.g:7178:5: ( (lbl= label )? MODULE PROCEDURE IDENT end_of_stmt )
// MFortranParser2018.g:7178:7: (lbl= label )? MODULE PROCEDURE IDENT end_of_stmt
{
// MFortranParser2018.g:7178:7: (lbl= label )?
int alt669=2;
int LA669_0 = input.LA(1);
if ( (LA669_0==DIGIT_STR) ) {
alt669=1;
}
switch (alt669) {
case 1 :
// MFortranParser2018.g:7178:8: lbl= label
{
pushFollow(FOLLOW_label_in_mp_subprogram_stmt29810);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
MODULE651=(Token)match(input,MODULE,FOLLOW_MODULE_in_mp_subprogram_stmt29821); if (state.failed) return;
PROCEDURE652=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_mp_subprogram_stmt29823); if (state.failed) return;
IDENT653=(Token)match(input,IDENT,FOLLOW_IDENT_in_mp_subprogram_stmt29825); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_mp_subprogram_stmt29834);
end_of_stmt654=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.mp_subprogram_stmt(lbl,
MODULE651, PROCEDURE652, IDENT653, end_of_stmt654);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "mp_subprogram_stmt"
// $ANTLR start "end_mp_subprogram_stmt"
// MFortranParser2018.g:7189:1: end_mp_subprogram_stmt : (lbl= label )? END ( PROCEDURE ( IDENT )? )? end_of_stmt ;
public final void end_mp_subprogram_stmt() throws RecognitionException {
Token PROCEDURE655=null;
Token IDENT656=null;
Token END657=null;
Token lbl =null;
Token end_of_stmt658 =null;
Token proc = null;
Token name = null;
try {
// MFortranParser2018.g:7197:5: ( (lbl= label )? END ( PROCEDURE ( IDENT )? )? end_of_stmt )
// MFortranParser2018.g:7197:7: (lbl= label )? END ( PROCEDURE ( IDENT )? )? end_of_stmt
{
// MFortranParser2018.g:7197:7: (lbl= label )?
int alt670=2;
int LA670_0 = input.LA(1);
if ( (LA670_0==DIGIT_STR) ) {
alt670=1;
}
switch (alt670) {
case 1 :
// MFortranParser2018.g:7197:8: lbl= label
{
pushFollow(FOLLOW_label_in_end_mp_subprogram_stmt29874);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
END657=(Token)match(input,END,FOLLOW_END_in_end_mp_subprogram_stmt29885); if (state.failed) return;
// MFortranParser2018.g:7199:7: ( PROCEDURE ( IDENT )? )?
int alt672=2;
int LA672_0 = input.LA(1);
if ( (LA672_0==PROCEDURE) ) {
alt672=1;
}
switch (alt672) {
case 1 :
// MFortranParser2018.g:7199:9: PROCEDURE ( IDENT )?
{
PROCEDURE655=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_end_mp_subprogram_stmt29896); if (state.failed) return;
if ( state.backtracking==0 ) {proc=PROCEDURE655;}
// MFortranParser2018.g:7200:9: ( IDENT )?
int alt671=2;
int LA671_0 = input.LA(1);
if ( (LA671_0==IDENT) ) {
alt671=1;
}
switch (alt671) {
case 1 :
// MFortranParser2018.g:7200:11: IDENT
{
IDENT656=(Token)match(input,IDENT,FOLLOW_IDENT_in_end_mp_subprogram_stmt29911); if (state.failed) return;
if ( state.backtracking==0 ) {name=IDENT656;}
}
break;
}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_end_mp_subprogram_stmt29933);
end_of_stmt658=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.end_mp_subprogram_stmt(lbl,
END657, proc, name, end_of_stmt658);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "end_mp_subprogram_stmt"
// $ANTLR start "entry_stmt"
// MFortranParser2018.g:7211:1: entry_stmt : (lbl= label )? ENTRY IDENT ( LPAREN ( dummy_arg_list )? RPAREN ( suffix )? )? end_of_stmt ;
public final void entry_stmt() throws RecognitionException {
Token ENTRY659=null;
Token IDENT660=null;
Token lbl =null;
Token end_of_stmt661 =null;
boolean hasDAL=false;
boolean hasSffx=false;
try {
// MFortranParser2018.g:7219:5: ( (lbl= label )? ENTRY IDENT ( LPAREN ( dummy_arg_list )? RPAREN ( suffix )? )? end_of_stmt )
// MFortranParser2018.g:7219:7: (lbl= label )? ENTRY IDENT ( LPAREN ( dummy_arg_list )? RPAREN ( suffix )? )? end_of_stmt
{
// MFortranParser2018.g:7219:7: (lbl= label )?
int alt673=2;
int LA673_0 = input.LA(1);
if ( (LA673_0==DIGIT_STR) ) {
alt673=1;
}
switch (alt673) {
case 1 :
// MFortranParser2018.g:7219:8: lbl= label
{
pushFollow(FOLLOW_label_in_entry_stmt29974);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
ENTRY659=(Token)match(input,ENTRY,FOLLOW_ENTRY_in_entry_stmt29986); if (state.failed) return;
IDENT660=(Token)match(input,IDENT,FOLLOW_IDENT_in_entry_stmt29988); if (state.failed) return;
// MFortranParser2018.g:7221:7: ( LPAREN ( dummy_arg_list )? RPAREN ( suffix )? )?
int alt676=2;
int LA676_0 = input.LA(1);
if ( (LA676_0==LPAREN) ) {
alt676=1;
}
switch (alt676) {
case 1 :
// MFortranParser2018.g:7221:9: LPAREN ( dummy_arg_list )? RPAREN ( suffix )?
{
match(input,LPAREN,FOLLOW_LPAREN_in_entry_stmt29999); if (state.failed) return;
// MFortranParser2018.g:7221:16: ( dummy_arg_list )?
int alt674=2;
int LA674_0 = input.LA(1);
if ( (LA674_0==ASTERISK||LA674_0==IDENT) ) {
alt674=1;
}
switch (alt674) {
case 1 :
// MFortranParser2018.g:7221:17: dummy_arg_list
{
pushFollow(FOLLOW_dummy_arg_list_in_entry_stmt30002);
dummy_arg_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasDAL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_entry_stmt30017); if (state.failed) return;
// MFortranParser2018.g:7222:16: ( suffix )?
int alt675=2;
int LA675_0 = input.LA(1);
if ( (LA675_0==BIND||LA675_0==RESULT) ) {
alt675=1;
}
switch (alt675) {
case 1 :
// MFortranParser2018.g:7222:17: suffix
{
pushFollow(FOLLOW_suffix_in_entry_stmt30020);
suffix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasSffx=true;}
}
break;
}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_entry_stmt30042);
end_of_stmt661=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.entry_stmt(lbl,
ENTRY659, IDENT660, end_of_stmt661,
hasDAL, hasSffx);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "entry_stmt"
// $ANTLR start "return_stmt"
// MFortranParser2018.g:7234:1: return_stmt : (lbl= label )? RETURN ( expr )? end_of_stmt ;
public final void return_stmt() throws RecognitionException {
Token RETURN662=null;
Token lbl =null;
Token end_of_stmt663 =null;
boolean hasExpr = false;
try {
// MFortranParser2018.g:7241:5: ( (lbl= label )? RETURN ( expr )? end_of_stmt )
// MFortranParser2018.g:7241:7: (lbl= label )? RETURN ( expr )? end_of_stmt
{
// MFortranParser2018.g:7241:7: (lbl= label )?
int alt677=2;
int LA677_0 = input.LA(1);
if ( (LA677_0==DIGIT_STR) ) {
alt677=1;
}
switch (alt677) {
case 1 :
// MFortranParser2018.g:7241:8: lbl= label
{
pushFollow(FOLLOW_label_in_return_stmt30083);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
RETURN662=(Token)match(input,RETURN,FOLLOW_RETURN_in_return_stmt30095); if (state.failed) return;
// MFortranParser2018.g:7242:14: ( expr )?
int alt678=2;
int LA678_0 = input.LA(1);
if ( (LA678_0==BIN_CONST||LA678_0==CHAR_CONST||(LA678_0 >= DEFINED_OP && LA678_0 <= DIGIT_STR)||LA678_0==FALSE||(LA678_0 >= HEX_CONST && LA678_0 <= IDENT)||LA678_0==LBRACKET||LA678_0==LPAREN||LA678_0==MINUS||LA678_0==M_REAL_CONST||LA678_0==NOT||LA678_0==OCT_CONST||LA678_0==PLUS||LA678_0==TRUE) ) {
alt678=1;
}
switch (alt678) {
case 1 :
// MFortranParser2018.g:7242:15: expr
{
pushFollow(FOLLOW_expr_in_return_stmt30098);
expr();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasExpr=true;}
}
break;
}
pushFollow(FOLLOW_end_of_stmt_in_return_stmt30111);
end_of_stmt663=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.return_stmt(lbl,
RETURN662, end_of_stmt663, hasExpr);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "return_stmt"
// $ANTLR start "contains_stmt"
// MFortranParser2018.g:7251:1: contains_stmt : (lbl= label )? CONTAINS end_of_stmt ;
public final void contains_stmt() throws RecognitionException {
Token CONTAINS664=null;
Token lbl =null;
Token end_of_stmt665 =null;
try {
// MFortranParser2018.g:7257:5: ( (lbl= label )? CONTAINS end_of_stmt )
// MFortranParser2018.g:7257:7: (lbl= label )? CONTAINS end_of_stmt
{
// MFortranParser2018.g:7257:7: (lbl= label )?
int alt679=2;
int LA679_0 = input.LA(1);
if ( (LA679_0==DIGIT_STR) ) {
alt679=1;
}
switch (alt679) {
case 1 :
// MFortranParser2018.g:7257:8: lbl= label
{
pushFollow(FOLLOW_label_in_contains_stmt30151);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
CONTAINS664=(Token)match(input,CONTAINS,FOLLOW_CONTAINS_in_contains_stmt30162); if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_contains_stmt30170);
end_of_stmt665=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.contains_stmt(lbl,
CONTAINS664, end_of_stmt665); }
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "contains_stmt"
// $ANTLR start "stmt_function_stmt"
// MFortranParser2018.g:7276:1: stmt_function_stmt : (lbl= label )? STMT_FUNCTION IDENT LPAREN ( generic_name_list )? RPAREN EQUALS expr end_of_stmt ;
public final void stmt_function_stmt() throws RecognitionException {
Token IDENT666=null;
Token lbl =null;
Token end_of_stmt667 =null;
boolean hasGNL = false;
try {
// MFortranParser2018.g:7283:5: ( (lbl= label )? STMT_FUNCTION IDENT LPAREN ( generic_name_list )? RPAREN EQUALS expr end_of_stmt )
// MFortranParser2018.g:7283:7: (lbl= label )? STMT_FUNCTION IDENT LPAREN ( generic_name_list )? RPAREN EQUALS expr end_of_stmt
{
// MFortranParser2018.g:7283:7: (lbl= label )?
int alt680=2;
int LA680_0 = input.LA(1);
if ( (LA680_0==DIGIT_STR) ) {
alt680=1;
}
switch (alt680) {
case 1 :
// MFortranParser2018.g:7283:8: lbl= label
{
pushFollow(FOLLOW_label_in_stmt_function_stmt30210);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,STMT_FUNCTION,FOLLOW_STMT_FUNCTION_in_stmt_function_stmt30221); if (state.failed) return;
IDENT666=(Token)match(input,IDENT,FOLLOW_IDENT_in_stmt_function_stmt30223); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_stmt_function_stmt30225); if (state.failed) return;
// MFortranParser2018.g:7285:7: ( generic_name_list )?
int alt681=2;
int LA681_0 = input.LA(1);
if ( (LA681_0==IDENT) ) {
alt681=1;
}
switch (alt681) {
case 1 :
// MFortranParser2018.g:7285:9: generic_name_list
{
pushFollow(FOLLOW_generic_name_list_in_stmt_function_stmt30236);
generic_name_list();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {hasGNL=true;}
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_stmt_function_stmt30249); if (state.failed) return;
match(input,EQUALS,FOLLOW_EQUALS_in_stmt_function_stmt30251); if (state.failed) return;
pushFollow(FOLLOW_expr_in_stmt_function_stmt30253);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_stmt_function_stmt30262);
end_of_stmt667=end_of_stmt();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { MFPA.stmt_function_stmt(lbl,
IDENT666, end_of_stmt667, hasGNL);}
}
if ( state.backtracking==0 ) {
checkForInclude();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
}
// $ANTLR end "stmt_function_stmt"
// $ANTLR start "end_of_stmt"
// MFortranParser2018.g:7309:1: end_of_stmt returns [Token t] : ( EOS | ( EOF )=> EOF );
public final Token end_of_stmt() throws RecognitionException {
Token t = null;
Token EOS668=null;
Token EOF669=null;
try {
// MFortranParser2018.g:7310:5: ( EOS | ( EOF )=> EOF )
int alt682=2;
int LA682_0 = input.LA(1);
if ( (LA682_0==EOS) ) {
alt682=1;
}
else if ( (LA682_0==EOF) && (synpred73_MFortranParser2018())) {
alt682=2;
}
switch (alt682) {
case 1 :
// MFortranParser2018.g:7310:7: EOS
{
EOS668=(Token)match(input,EOS,FOLLOW_EOS_in_end_of_stmt30298); if (state.failed) return t;
if ( state.backtracking==0 ) { t = EOS668;}
}
break;
case 2 :
// MFortranParser2018.g:7312:7: ( EOF )=> EOF
{
EOF669=(Token)match(input,EOF,FOLLOW_EOF_in_end_of_stmt30322); if (state.failed) return t;
if ( state.backtracking==0 ) { t = EOF669;}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
}
return t;
}
// $ANTLR end "end_of_stmt"
// $ANTLR start synpred1_MFortranParser2018
public final void synpred1_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:94:7: ( ( label )? IMPLICIT )
// MFortranParser2018.g:94:8: ( label )? IMPLICIT
{
// MFortranParser2018.g:94:8: ( label )?
int alt683=2;
int LA683_0 = input.LA(1);
if ( (LA683_0==DIGIT_STR) ) {
alt683=1;
}
switch (alt683) {
case 1 :
// MFortranParser2018.g:94:9: label
{
pushFollow(FOLLOW_label_in_synpred1_MFortranParser2018191);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,IMPLICIT,FOLLOW_IMPLICIT_in_synpred1_MFortranParser2018195); if (state.failed) return;
}
}
// $ANTLR end synpred1_MFortranParser2018
// $ANTLR start synpred2_MFortranParser2018
public final void synpred2_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:96:7: ( ( label )? PARAMETER )
// MFortranParser2018.g:96:8: ( label )? PARAMETER
{
// MFortranParser2018.g:96:8: ( label )?
int alt684=2;
int LA684_0 = input.LA(1);
if ( (LA684_0==DIGIT_STR) ) {
alt684=1;
}
switch (alt684) {
case 1 :
// MFortranParser2018.g:96:9: label
{
pushFollow(FOLLOW_label_in_synpred2_MFortranParser2018227);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,PARAMETER,FOLLOW_PARAMETER_in_synpred2_MFortranParser2018231); if (state.failed) return;
}
}
// $ANTLR end synpred2_MFortranParser2018
// $ANTLR start synpred3_MFortranParser2018
public final void synpred3_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:98:7: ( ( label )? FORMAT )
// MFortranParser2018.g:98:8: ( label )? FORMAT
{
// MFortranParser2018.g:98:8: ( label )?
int alt685=2;
int LA685_0 = input.LA(1);
if ( (LA685_0==DIGIT_STR) ) {
alt685=1;
}
switch (alt685) {
case 1 :
// MFortranParser2018.g:98:9: label
{
pushFollow(FOLLOW_label_in_synpred3_MFortranParser2018261);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,FORMAT,FOLLOW_FORMAT_in_synpred3_MFortranParser2018265); if (state.failed) return;
}
}
// $ANTLR end synpred3_MFortranParser2018
// $ANTLR start synpred4_MFortranParser2018
public final void synpred4_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:100:7: ( ( label )? ENTRY )
// MFortranParser2018.g:100:8: ( label )? ENTRY
{
// MFortranParser2018.g:100:8: ( label )?
int alt686=2;
int LA686_0 = input.LA(1);
if ( (LA686_0==DIGIT_STR) ) {
alt686=1;
}
switch (alt686) {
case 1 :
// MFortranParser2018.g:100:9: label
{
pushFollow(FOLLOW_label_in_synpred4_MFortranParser2018301);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,ENTRY,FOLLOW_ENTRY_in_synpred4_MFortranParser2018305); if (state.failed) return;
}
}
// $ANTLR end synpred4_MFortranParser2018
// $ANTLR start synpred5_MFortranParser2018
public final void synpred5_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:197:7: ( ( prefix )? function_subprogram )
// MFortranParser2018.g:197:7: ( prefix )? function_subprogram
{
// MFortranParser2018.g:197:7: ( prefix )?
int alt687=2;
int LA687_0 = input.LA(1);
if ( (LA687_0==CHARACTER||LA687_0==CLASS||LA687_0==COMPLEX||(LA687_0 >= DOUBLE && LA687_0 <= DOUBLEPRECISION)||LA687_0==ELEMENTAL||LA687_0==IMPURE||LA687_0==INTEGER||LA687_0==LOGICAL||LA687_0==MODULE||LA687_0==NON_RECURSIVE||LA687_0==PURE||(LA687_0 >= REAL && LA687_0 <= RECURSIVE)||LA687_0==TYPE) ) {
alt687=1;
}
switch (alt687) {
case 1 :
// MFortranParser2018.g:197:9: prefix
{
pushFollow(FOLLOW_prefix_in_synpred5_MFortranParser2018763);
prefix();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_function_subprogram_in_synpred5_MFortranParser2018768);
function_subprogram();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred5_MFortranParser2018
// $ANTLR start synpred6_MFortranParser2018
public final void synpred6_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:1453:7: ( type_spec COLON_COLON ( ac_value_list )? )
// MFortranParser2018.g:1453:7: type_spec COLON_COLON ( ac_value_list )?
{
pushFollow(FOLLOW_type_spec_in_synpred6_MFortranParser20186080);
type_spec();
state._fsp--;
if (state.failed) return;
match(input,COLON_COLON,FOLLOW_COLON_COLON_in_synpred6_MFortranParser20186082); if (state.failed) return;
// MFortranParser2018.g:1454:6: ( ac_value_list )?
int alt688=2;
int LA688_0 = input.LA(1);
if ( (LA688_0==BIN_CONST||LA688_0==CHAR_CONST||(LA688_0 >= DEFINED_OP && LA688_0 <= DIGIT_STR)||LA688_0==FALSE||(LA688_0 >= HEX_CONST && LA688_0 <= IDENT)||LA688_0==LBRACKET||LA688_0==LPAREN||LA688_0==MINUS||LA688_0==M_REAL_CONST||LA688_0==NOT||LA688_0==OCT_CONST||LA688_0==PLUS||LA688_0==TRUE) ) {
alt688=1;
}
switch (alt688) {
case 1 :
// MFortranParser2018.g:1454:7: ac_value_list
{
pushFollow(FOLLOW_ac_value_list_in_synpred6_MFortranParser20186091);
ac_value_list();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred6_MFortranParser2018
// $ANTLR start synpred7_MFortranParser2018
public final void synpred7_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:1473:7: ( expr )
// MFortranParser2018.g:1473:7: expr
{
pushFollow(FOLLOW_expr_in_synpred7_MFortranParser20186147);
expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred7_MFortranParser2018
// $ANTLR start synpred8_MFortranParser2018
public final void synpred8_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:2118:7: ( designator ( ASTERISK data_stmt_constant )? )
// MFortranParser2018.g:2118:7: designator ( ASTERISK data_stmt_constant )?
{
pushFollow(FOLLOW_designator_in_synpred8_MFortranParser20188757);
designator();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2118:18: ( ASTERISK data_stmt_constant )?
int alt689=2;
int LA689_0 = input.LA(1);
if ( (LA689_0==ASTERISK) ) {
alt689=1;
}
switch (alt689) {
case 1 :
// MFortranParser2018.g:2118:19: ASTERISK data_stmt_constant
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_synpred8_MFortranParser20188760); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_constant_in_synpred8_MFortranParser20188762);
data_stmt_constant();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred8_MFortranParser2018
// $ANTLR start synpred9_MFortranParser2018
public final void synpred9_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:2119:7: ( int_literal_constant ( ASTERISK data_stmt_constant )? )
// MFortranParser2018.g:2119:7: int_literal_constant ( ASTERISK data_stmt_constant )?
{
pushFollow(FOLLOW_int_literal_constant_in_synpred9_MFortranParser20188774);
int_literal_constant();
state._fsp--;
if (state.failed) return;
// MFortranParser2018.g:2119:28: ( ASTERISK data_stmt_constant )?
int alt690=2;
int LA690_0 = input.LA(1);
if ( (LA690_0==ASTERISK) ) {
alt690=1;
}
switch (alt690) {
case 1 :
// MFortranParser2018.g:2119:29: ASTERISK data_stmt_constant
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_synpred9_MFortranParser20188777); if (state.failed) return;
pushFollow(FOLLOW_data_stmt_constant_in_synpred9_MFortranParser20188779);
data_stmt_constant();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred9_MFortranParser2018
// $ANTLR start synpred10_MFortranParser2018
public final void synpred10_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:2120:7: ( signed_int_literal_constant )
// MFortranParser2018.g:2120:7: signed_int_literal_constant
{
pushFollow(FOLLOW_signed_int_literal_constant_in_synpred10_MFortranParser20188791);
signed_int_literal_constant();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred10_MFortranParser2018
// $ANTLR start synpred14_MFortranParser2018
public final void synpred14_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:2124:7: ( char_literal_constant )
// MFortranParser2018.g:2124:7: char_literal_constant
{
pushFollow(FOLLOW_char_literal_constant_in_synpred14_MFortranParser20188823);
char_literal_constant();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred14_MFortranParser2018
// $ANTLR start synpred16_MFortranParser2018
public final void synpred16_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:2153:7: ( designator )
// MFortranParser2018.g:2153:7: designator
{
pushFollow(FOLLOW_designator_in_synpred16_MFortranParser20188917);
designator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred16_MFortranParser2018
// $ANTLR start synpred21_MFortranParser2018
public final void synpred21_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:2158:7: ( char_literal_constant )
// MFortranParser2018.g:2158:7: char_literal_constant
{
pushFollow(FOLLOW_char_literal_constant_in_synpred21_MFortranParser20188957);
char_literal_constant();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred21_MFortranParser2018
// $ANTLR start synpred23_MFortranParser2018
public final void synpred23_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:2997:7: ( IDENT LPAREN )
// MFortranParser2018.g:2997:8: IDENT LPAREN
{
match(input,IDENT,FOLLOW_IDENT_in_synpred23_MFortranParser201812492); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred23_MFortranParser201812494); if (state.failed) return;
}
}
// $ANTLR end synpred23_MFortranParser2018
// $ANTLR start synpred24_MFortranParser2018
public final void synpred24_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3001:7: ( IDENT LBRACKET )
// MFortranParser2018.g:3001:8: IDENT LBRACKET
{
match(input,IDENT,FOLLOW_IDENT_in_synpred24_MFortranParser201812552); if (state.failed) return;
match(input,LBRACKET,FOLLOW_LBRACKET_in_synpred24_MFortranParser201812554); if (state.failed) return;
}
}
// $ANTLR end synpred24_MFortranParser2018
// $ANTLR start synpred25_MFortranParser2018
public final void synpred25_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3018:7: ( IDENT LPAREN )
// MFortranParser2018.g:3018:8: IDENT LPAREN
{
match(input,IDENT,FOLLOW_IDENT_in_synpred25_MFortranParser201812633); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred25_MFortranParser201812635); if (state.failed) return;
}
}
// $ANTLR end synpred25_MFortranParser2018
// $ANTLR start synpred26_MFortranParser2018
public final void synpred26_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3259:7: ( allocate_object LBRACKET )
// MFortranParser2018.g:3259:8: allocate_object LBRACKET
{
pushFollow(FOLLOW_allocate_object_in_synpred26_MFortranParser201813564);
allocate_object();
state._fsp--;
if (state.failed) return;
match(input,LBRACKET,FOLLOW_LBRACKET_in_synpred26_MFortranParser201813566); if (state.failed) return;
}
}
// $ANTLR end synpred26_MFortranParser2018
// $ANTLR start synpred27_MFortranParser2018
public final void synpred27_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3271:7: ( allocate_object )
// MFortranParser2018.g:3271:8: allocate_object
{
pushFollow(FOLLOW_allocate_object_in_synpred27_MFortranParser201813619);
allocate_object();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred27_MFortranParser2018
// $ANTLR start synpred28_MFortranParser2018
public final void synpred28_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3358:7: ( ASTERISK )
// MFortranParser2018.g:3358:8: ASTERISK
{
match(input,ASTERISK,FOLLOW_ASTERISK_in_synpred28_MFortranParser201813886); if (state.failed) return;
}
}
// $ANTLR end synpred28_MFortranParser2018
// $ANTLR start synpred29_MFortranParser2018
public final void synpred29_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3359:7: ( expr COLON ASTERISK )
// MFortranParser2018.g:3359:8: expr COLON ASTERISK
{
pushFollow(FOLLOW_expr_in_synpred29_MFortranParser201813900);
expr();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred29_MFortranParser201813902); if (state.failed) return;
match(input,ASTERISK,FOLLOW_ASTERISK_in_synpred29_MFortranParser201813904); if (state.failed) return;
}
}
// $ANTLR end synpred29_MFortranParser2018
// $ANTLR start synpred30_MFortranParser2018
public final void synpred30_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3483:7: ( designator_or_func_ref )
// MFortranParser2018.g:3483:7: designator_or_func_ref
{
pushFollow(FOLLOW_designator_or_func_ref_in_synpred30_MFortranParser201814344);
designator_or_func_ref();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred30_MFortranParser2018
// $ANTLR start synpred31_MFortranParser2018
public final void synpred31_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3484:7: ( literal_constant )
// MFortranParser2018.g:3484:7: literal_constant
{
pushFollow(FOLLOW_literal_constant_in_synpred31_MFortranParser201814352);
literal_constant();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred31_MFortranParser2018
// $ANTLR start synpred32_MFortranParser2018
public final void synpred32_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3485:7: ( array_constructor )
// MFortranParser2018.g:3485:7: array_constructor
{
pushFollow(FOLLOW_array_constructor_in_synpred32_MFortranParser201814360);
array_constructor();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred32_MFortranParser2018
// $ANTLR start synpred33_MFortranParser2018
public final void synpred33_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:3486:7: ( structure_constructor )
// MFortranParser2018.g:3486:7: structure_constructor
{
pushFollow(FOLLOW_structure_constructor_in_synpred33_MFortranParser201814368);
structure_constructor();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred33_MFortranParser2018
// $ANTLR start synpred34_MFortranParser2018
public final void synpred34_MFortranParser2018_fragment() throws RecognitionException {
Token lbl =null;
// MFortranParser2018.g:3796:7: ( (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref EQ_GT expr end_of_stmt )
// MFortranParser2018.g:3796:7: (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref EQ_GT expr end_of_stmt
{
// MFortranParser2018.g:3796:7: (lbl= label )?
int alt691=2;
int LA691_0 = input.LA(1);
if ( (LA691_0==DIGIT_STR) ) {
alt691=1;
}
switch (alt691) {
case 1 :
// MFortranParser2018.g:3796:8: lbl= label
{
pushFollow(FOLLOW_label_in_synpred34_MFortranParser201815583);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_PTR_ASSIGNMENT_STMT,FOLLOW_M_PTR_ASSIGNMENT_STMT_in_synpred34_MFortranParser201815595); if (state.failed) return;
pushFollow(FOLLOW_data_ref_in_synpred34_MFortranParser201815597);
data_ref();
state._fsp--;
if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_synpred34_MFortranParser201815599); if (state.failed) return;
pushFollow(FOLLOW_expr_in_synpred34_MFortranParser201815601);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_synpred34_MFortranParser201815609);
end_of_stmt();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred34_MFortranParser2018
// $ANTLR start synpred35_MFortranParser2018
public final void synpred35_MFortranParser2018_fragment() throws RecognitionException {
Token lbl =null;
// MFortranParser2018.g:3801:7: ( (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_spec_list RPAREN EQ_GT expr end_of_stmt )
// MFortranParser2018.g:3801:7: (lbl= label )? M_PTR_ASSIGNMENT_STMT data_ref LPAREN bounds_spec_list RPAREN EQ_GT expr end_of_stmt
{
// MFortranParser2018.g:3801:7: (lbl= label )?
int alt692=2;
int LA692_0 = input.LA(1);
if ( (LA692_0==DIGIT_STR) ) {
alt692=1;
}
switch (alt692) {
case 1 :
// MFortranParser2018.g:3801:8: lbl= label
{
pushFollow(FOLLOW_label_in_synpred35_MFortranParser201815630);
lbl=label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,M_PTR_ASSIGNMENT_STMT,FOLLOW_M_PTR_ASSIGNMENT_STMT_in_synpred35_MFortranParser201815641); if (state.failed) return;
pushFollow(FOLLOW_data_ref_in_synpred35_MFortranParser201815643);
data_ref();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred35_MFortranParser201815652); if (state.failed) return;
pushFollow(FOLLOW_bounds_spec_list_in_synpred35_MFortranParser201815654);
bounds_spec_list();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred35_MFortranParser201815656); if (state.failed) return;
match(input,EQ_GT,FOLLOW_EQ_GT_in_synpred35_MFortranParser201815658); if (state.failed) return;
pushFollow(FOLLOW_expr_in_synpred35_MFortranParser201815660);
expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_of_stmt_in_synpred35_MFortranParser201815669);
end_of_stmt();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred35_MFortranParser2018
// $ANTLR start synpred36_MFortranParser2018
public final void synpred36_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4279:7: ( ( label )? ENTRY )
// MFortranParser2018.g:4279:8: ( label )? ENTRY
{
// MFortranParser2018.g:4279:8: ( label )?
int alt693=2;
int LA693_0 = input.LA(1);
if ( (LA693_0==DIGIT_STR) ) {
alt693=1;
}
switch (alt693) {
case 1 :
// MFortranParser2018.g:4279:9: label
{
pushFollow(FOLLOW_label_in_synpred36_MFortranParser201817463);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,ENTRY,FOLLOW_ENTRY_in_synpred36_MFortranParser201817467); if (state.failed) return;
}
}
// $ANTLR end synpred36_MFortranParser2018
// $ANTLR start synpred37_MFortranParser2018
public final void synpred37_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4281:7: ( ( label )? ENUM )
// MFortranParser2018.g:4281:8: ( label )? ENUM
{
// MFortranParser2018.g:4281:8: ( label )?
int alt694=2;
int LA694_0 = input.LA(1);
if ( (LA694_0==DIGIT_STR) ) {
alt694=1;
}
switch (alt694) {
case 1 :
// MFortranParser2018.g:4281:9: label
{
pushFollow(FOLLOW_label_in_synpred37_MFortranParser201817494);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,ENUM,FOLLOW_ENUM_in_synpred37_MFortranParser201817498); if (state.failed) return;
}
}
// $ANTLR end synpred37_MFortranParser2018
// $ANTLR start synpred38_MFortranParser2018
public final void synpred38_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4283:7: ( ( label )? FORMAT )
// MFortranParser2018.g:4283:8: ( label )? FORMAT
{
// MFortranParser2018.g:4283:8: ( label )?
int alt695=2;
int LA695_0 = input.LA(1);
if ( (LA695_0==DIGIT_STR) ) {
alt695=1;
}
switch (alt695) {
case 1 :
// MFortranParser2018.g:4283:9: label
{
pushFollow(FOLLOW_label_in_synpred38_MFortranParser201817525);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,FORMAT,FOLLOW_FORMAT_in_synpred38_MFortranParser201817529); if (state.failed) return;
}
}
// $ANTLR end synpred38_MFortranParser2018
// $ANTLR start synpred39_MFortranParser2018
public final void synpred39_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4285:7: ( ( label )? INTERFACE )
// MFortranParser2018.g:4285:8: ( label )? INTERFACE
{
// MFortranParser2018.g:4285:8: ( label )?
int alt696=2;
int LA696_0 = input.LA(1);
if ( (LA696_0==DIGIT_STR) ) {
alt696=1;
}
switch (alt696) {
case 1 :
// MFortranParser2018.g:4285:9: label
{
pushFollow(FOLLOW_label_in_synpred39_MFortranParser201817556);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,INTERFACE,FOLLOW_INTERFACE_in_synpred39_MFortranParser201817560); if (state.failed) return;
}
}
// $ANTLR end synpred39_MFortranParser2018
// $ANTLR start synpred40_MFortranParser2018
public final void synpred40_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4287:7: ( ( label )? PARAMETER )
// MFortranParser2018.g:4287:8: ( label )? PARAMETER
{
// MFortranParser2018.g:4287:8: ( label )?
int alt697=2;
int LA697_0 = input.LA(1);
if ( (LA697_0==DIGIT_STR) ) {
alt697=1;
}
switch (alt697) {
case 1 :
// MFortranParser2018.g:4287:9: label
{
pushFollow(FOLLOW_label_in_synpred40_MFortranParser201817587);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,PARAMETER,FOLLOW_PARAMETER_in_synpred40_MFortranParser201817591); if (state.failed) return;
}
}
// $ANTLR end synpred40_MFortranParser2018
// $ANTLR start synpred41_MFortranParser2018
public final void synpred41_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4289:7: ( ( label )? PROCEDURE )
// MFortranParser2018.g:4289:8: ( label )? PROCEDURE
{
// MFortranParser2018.g:4289:8: ( label )?
int alt698=2;
int LA698_0 = input.LA(1);
if ( (LA698_0==DIGIT_STR) ) {
alt698=1;
}
switch (alt698) {
case 1 :
// MFortranParser2018.g:4289:9: label
{
pushFollow(FOLLOW_label_in_synpred41_MFortranParser201817618);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,PROCEDURE,FOLLOW_PROCEDURE_in_synpred41_MFortranParser201817622); if (state.failed) return;
}
}
// $ANTLR end synpred41_MFortranParser2018
// $ANTLR start synpred42_MFortranParser2018
public final void synpred42_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4291:7: ( derived_type_stmt )
// MFortranParser2018.g:4291:8: derived_type_stmt
{
pushFollow(FOLLOW_derived_type_stmt_in_synpred42_MFortranParser201817649);
derived_type_stmt();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred42_MFortranParser2018
// $ANTLR start synpred43_MFortranParser2018
public final void synpred43_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4293:7: ( type_declaration_stmt )
// MFortranParser2018.g:4293:8: type_declaration_stmt
{
pushFollow(FOLLOW_type_declaration_stmt_in_synpred43_MFortranParser201817675);
type_declaration_stmt();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred43_MFortranParser2018
// $ANTLR start synpred44_MFortranParser2018
public final void synpred44_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4295:7: ( ( label )? access_spec )
// MFortranParser2018.g:4295:8: ( label )? access_spec
{
// MFortranParser2018.g:4295:8: ( label )?
int alt699=2;
int LA699_0 = input.LA(1);
if ( (LA699_0==DIGIT_STR) ) {
alt699=1;
}
switch (alt699) {
case 1 :
// MFortranParser2018.g:4295:9: label
{
pushFollow(FOLLOW_label_in_synpred44_MFortranParser201817702);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_access_spec_in_synpred44_MFortranParser201817706);
access_spec();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred44_MFortranParser2018
// $ANTLR start synpred45_MFortranParser2018
public final void synpred45_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4297:7: ( ( label )? ALLOCATABLE )
// MFortranParser2018.g:4297:8: ( label )? ALLOCATABLE
{
// MFortranParser2018.g:4297:8: ( label )?
int alt700=2;
int LA700_0 = input.LA(1);
if ( (LA700_0==DIGIT_STR) ) {
alt700=1;
}
switch (alt700) {
case 1 :
// MFortranParser2018.g:4297:9: label
{
pushFollow(FOLLOW_label_in_synpred45_MFortranParser201817733);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,ALLOCATABLE,FOLLOW_ALLOCATABLE_in_synpred45_MFortranParser201817737); if (state.failed) return;
}
}
// $ANTLR end synpred45_MFortranParser2018
// $ANTLR start synpred46_MFortranParser2018
public final void synpred46_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4299:7: ( ( label )? ASYNCHRONOUS )
// MFortranParser2018.g:4299:8: ( label )? ASYNCHRONOUS
{
// MFortranParser2018.g:4299:8: ( label )?
int alt701=2;
int LA701_0 = input.LA(1);
if ( (LA701_0==DIGIT_STR) ) {
alt701=1;
}
switch (alt701) {
case 1 :
// MFortranParser2018.g:4299:9: label
{
pushFollow(FOLLOW_label_in_synpred46_MFortranParser201817765);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,ASYNCHRONOUS,FOLLOW_ASYNCHRONOUS_in_synpred46_MFortranParser201817769); if (state.failed) return;
}
}
// $ANTLR end synpred46_MFortranParser2018
// $ANTLR start synpred47_MFortranParser2018
public final void synpred47_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4301:7: ( ( label )? BIND )
// MFortranParser2018.g:4301:8: ( label )? BIND
{
// MFortranParser2018.g:4301:8: ( label )?
int alt702=2;
int LA702_0 = input.LA(1);
if ( (LA702_0==DIGIT_STR) ) {
alt702=1;
}
switch (alt702) {
case 1 :
// MFortranParser2018.g:4301:9: label
{
pushFollow(FOLLOW_label_in_synpred47_MFortranParser201817797);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,BIND,FOLLOW_BIND_in_synpred47_MFortranParser201817801); if (state.failed) return;
}
}
// $ANTLR end synpred47_MFortranParser2018
// $ANTLR start synpred48_MFortranParser2018
public final void synpred48_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4303:7: ( ( label )? CODIMENSION )
// MFortranParser2018.g:4303:8: ( label )? CODIMENSION
{
// MFortranParser2018.g:4303:8: ( label )?
int alt703=2;
int LA703_0 = input.LA(1);
if ( (LA703_0==DIGIT_STR) ) {
alt703=1;
}
switch (alt703) {
case 1 :
// MFortranParser2018.g:4303:9: label
{
pushFollow(FOLLOW_label_in_synpred48_MFortranParser201817828);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,CODIMENSION,FOLLOW_CODIMENSION_in_synpred48_MFortranParser201817832); if (state.failed) return;
}
}
// $ANTLR end synpred48_MFortranParser2018
// $ANTLR start synpred49_MFortranParser2018
public final void synpred49_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4305:7: ( ( label )? DATA )
// MFortranParser2018.g:4305:8: ( label )? DATA
{
// MFortranParser2018.g:4305:8: ( label )?
int alt704=2;
int LA704_0 = input.LA(1);
if ( (LA704_0==DIGIT_STR) ) {
alt704=1;
}
switch (alt704) {
case 1 :
// MFortranParser2018.g:4305:9: label
{
pushFollow(FOLLOW_label_in_synpred49_MFortranParser201817859);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,DATA,FOLLOW_DATA_in_synpred49_MFortranParser201817863); if (state.failed) return;
}
}
// $ANTLR end synpred49_MFortranParser2018
// $ANTLR start synpred50_MFortranParser2018
public final void synpred50_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4307:7: ( ( label )? DIMENSION )
// MFortranParser2018.g:4307:8: ( label )? DIMENSION
{
// MFortranParser2018.g:4307:8: ( label )?
int alt705=2;
int LA705_0 = input.LA(1);
if ( (LA705_0==DIGIT_STR) ) {
alt705=1;
}
switch (alt705) {
case 1 :
// MFortranParser2018.g:4307:9: label
{
pushFollow(FOLLOW_label_in_synpred50_MFortranParser201817891);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,DIMENSION,FOLLOW_DIMENSION_in_synpred50_MFortranParser201817895); if (state.failed) return;
}
}
// $ANTLR end synpred50_MFortranParser2018
// $ANTLR start synpred51_MFortranParser2018
public final void synpred51_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4309:7: ( ( label )? EXTERNAL )
// MFortranParser2018.g:4309:8: ( label )? EXTERNAL
{
// MFortranParser2018.g:4309:8: ( label )?
int alt706=2;
int LA706_0 = input.LA(1);
if ( (LA706_0==DIGIT_STR) ) {
alt706=1;
}
switch (alt706) {
case 1 :
// MFortranParser2018.g:4309:9: label
{
pushFollow(FOLLOW_label_in_synpred51_MFortranParser201817922);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,EXTERNAL,FOLLOW_EXTERNAL_in_synpred51_MFortranParser201817926); if (state.failed) return;
}
}
// $ANTLR end synpred51_MFortranParser2018
// $ANTLR start synpred52_MFortranParser2018
public final void synpred52_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4311:7: ( ( label )? INTRINSIC )
// MFortranParser2018.g:4311:8: ( label )? INTRINSIC
{
// MFortranParser2018.g:4311:8: ( label )?
int alt707=2;
int LA707_0 = input.LA(1);
if ( (LA707_0==DIGIT_STR) ) {
alt707=1;
}
switch (alt707) {
case 1 :
// MFortranParser2018.g:4311:9: label
{
pushFollow(FOLLOW_label_in_synpred52_MFortranParser201817953);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,INTRINSIC,FOLLOW_INTRINSIC_in_synpred52_MFortranParser201817957); if (state.failed) return;
}
}
// $ANTLR end synpred52_MFortranParser2018
// $ANTLR start synpred53_MFortranParser2018
public final void synpred53_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4313:7: ( ( label )? POINTER )
// MFortranParser2018.g:4313:8: ( label )? POINTER
{
// MFortranParser2018.g:4313:8: ( label )?
int alt708=2;
int LA708_0 = input.LA(1);
if ( (LA708_0==DIGIT_STR) ) {
alt708=1;
}
switch (alt708) {
case 1 :
// MFortranParser2018.g:4313:9: label
{
pushFollow(FOLLOW_label_in_synpred53_MFortranParser201817984);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,POINTER,FOLLOW_POINTER_in_synpred53_MFortranParser201817988); if (state.failed) return;
}
}
// $ANTLR end synpred53_MFortranParser2018
// $ANTLR start synpred54_MFortranParser2018
public final void synpred54_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4315:7: ( ( label )? PROTECTED )
// MFortranParser2018.g:4315:8: ( label )? PROTECTED
{
// MFortranParser2018.g:4315:8: ( label )?
int alt709=2;
int LA709_0 = input.LA(1);
if ( (LA709_0==DIGIT_STR) ) {
alt709=1;
}
switch (alt709) {
case 1 :
// MFortranParser2018.g:4315:9: label
{
pushFollow(FOLLOW_label_in_synpred54_MFortranParser201818016);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,PROTECTED,FOLLOW_PROTECTED_in_synpred54_MFortranParser201818020); if (state.failed) return;
}
}
// $ANTLR end synpred54_MFortranParser2018
// $ANTLR start synpred55_MFortranParser2018
public final void synpred55_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4317:7: ( ( label )? SAVE )
// MFortranParser2018.g:4317:8: ( label )? SAVE
{
// MFortranParser2018.g:4317:8: ( label )?
int alt710=2;
int LA710_0 = input.LA(1);
if ( (LA710_0==DIGIT_STR) ) {
alt710=1;
}
switch (alt710) {
case 1 :
// MFortranParser2018.g:4317:9: label
{
pushFollow(FOLLOW_label_in_synpred55_MFortranParser201818047);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,SAVE,FOLLOW_SAVE_in_synpred55_MFortranParser201818051); if (state.failed) return;
}
}
// $ANTLR end synpred55_MFortranParser2018
// $ANTLR start synpred56_MFortranParser2018
public final void synpred56_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4319:7: ( ( label )? TARGET )
// MFortranParser2018.g:4319:8: ( label )? TARGET
{
// MFortranParser2018.g:4319:8: ( label )?
int alt711=2;
int LA711_0 = input.LA(1);
if ( (LA711_0==DIGIT_STR) ) {
alt711=1;
}
switch (alt711) {
case 1 :
// MFortranParser2018.g:4319:9: label
{
pushFollow(FOLLOW_label_in_synpred56_MFortranParser201818079);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,TARGET,FOLLOW_TARGET_in_synpred56_MFortranParser201818083); if (state.failed) return;
}
}
// $ANTLR end synpred56_MFortranParser2018
// $ANTLR start synpred57_MFortranParser2018
public final void synpred57_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:4321:7: ( ( label )? VOLATILE )
// MFortranParser2018.g:4321:8: ( label )? VOLATILE
{
// MFortranParser2018.g:4321:8: ( label )?
int alt712=2;
int LA712_0 = input.LA(1);
if ( (LA712_0==DIGIT_STR) ) {
alt712=1;
}
switch (alt712) {
case 1 :
// MFortranParser2018.g:4321:9: label
{
pushFollow(FOLLOW_label_in_synpred57_MFortranParser201818111);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,VOLATILE,FOLLOW_VOLATILE_in_synpred57_MFortranParser201818115); if (state.failed) return;
}
}
// $ANTLR end synpred57_MFortranParser2018
// $ANTLR start synpred58_MFortranParser2018
public final void synpred58_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5652:7: ( ( label )? READ LPAREN )
// MFortranParser2018.g:5652:8: ( label )? READ LPAREN
{
// MFortranParser2018.g:5652:8: ( label )?
int alt713=2;
int LA713_0 = input.LA(1);
if ( (LA713_0==DIGIT_STR) ) {
alt713=1;
}
switch (alt713) {
case 1 :
// MFortranParser2018.g:5652:9: label
{
pushFollow(FOLLOW_label_in_synpred58_MFortranParser201823068);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,READ,FOLLOW_READ_in_synpred58_MFortranParser201823072); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred58_MFortranParser201823074); if (state.failed) return;
}
}
// $ANTLR end synpred58_MFortranParser2018
// $ANTLR start synpred59_MFortranParser2018
public final void synpred59_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5659:7: ( ( label )? READ )
// MFortranParser2018.g:5659:8: ( label )? READ
{
// MFortranParser2018.g:5659:8: ( label )?
int alt714=2;
int LA714_0 = input.LA(1);
if ( (LA714_0==DIGIT_STR) ) {
alt714=1;
}
switch (alt714) {
case 1 :
// MFortranParser2018.g:5659:9: label
{
pushFollow(FOLLOW_label_in_synpred59_MFortranParser201823168);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,READ,FOLLOW_READ_in_synpred59_MFortranParser201823172); if (state.failed) return;
}
}
// $ANTLR end synpred59_MFortranParser2018
// $ANTLR start synpred60_MFortranParser2018
public final void synpred60_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5785:7: ( expr )
// MFortranParser2018.g:5785:7: expr
{
pushFollow(FOLLOW_expr_in_synpred60_MFortranParser201823756);
expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred60_MFortranParser2018
// $ANTLR start synpred62_MFortranParser2018
public final void synpred62_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5897:7: ( ( label )? BACKSPACE LPAREN )
// MFortranParser2018.g:5897:8: ( label )? BACKSPACE LPAREN
{
// MFortranParser2018.g:5897:8: ( label )?
int alt715=2;
int LA715_0 = input.LA(1);
if ( (LA715_0==DIGIT_STR) ) {
alt715=1;
}
switch (alt715) {
case 1 :
// MFortranParser2018.g:5897:9: label
{
pushFollow(FOLLOW_label_in_synpred62_MFortranParser201824220);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,BACKSPACE,FOLLOW_BACKSPACE_in_synpred62_MFortranParser201824224); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred62_MFortranParser201824226); if (state.failed) return;
}
}
// $ANTLR end synpred62_MFortranParser2018
// $ANTLR start synpred63_MFortranParser2018
public final void synpred63_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5903:7: ( ( label )? BACKSPACE )
// MFortranParser2018.g:5903:8: ( label )? BACKSPACE
{
// MFortranParser2018.g:5903:8: ( label )?
int alt716=2;
int LA716_0 = input.LA(1);
if ( (LA716_0==DIGIT_STR) ) {
alt716=1;
}
switch (alt716) {
case 1 :
// MFortranParser2018.g:5903:9: label
{
pushFollow(FOLLOW_label_in_synpred63_MFortranParser201824302);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,BACKSPACE,FOLLOW_BACKSPACE_in_synpred63_MFortranParser201824306); if (state.failed) return;
}
}
// $ANTLR end synpred63_MFortranParser2018
// $ANTLR start synpred64_MFortranParser2018
public final void synpred64_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5921:7: ( ( label )? END FILE LPAREN )
// MFortranParser2018.g:5921:8: ( label )? END FILE LPAREN
{
// MFortranParser2018.g:5921:8: ( label )?
int alt717=2;
int LA717_0 = input.LA(1);
if ( (LA717_0==DIGIT_STR) ) {
alt717=1;
}
switch (alt717) {
case 1 :
// MFortranParser2018.g:5921:9: label
{
pushFollow(FOLLOW_label_in_synpred64_MFortranParser201824405);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,END,FOLLOW_END_in_synpred64_MFortranParser201824409); if (state.failed) return;
match(input,FILE,FOLLOW_FILE_in_synpred64_MFortranParser201824411); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred64_MFortranParser201824413); if (state.failed) return;
}
}
// $ANTLR end synpred64_MFortranParser2018
// $ANTLR start synpred65_MFortranParser2018
public final void synpred65_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5927:7: ( ( label )? END FILE )
// MFortranParser2018.g:5927:8: ( label )? END FILE
{
// MFortranParser2018.g:5927:8: ( label )?
int alt718=2;
int LA718_0 = input.LA(1);
if ( (LA718_0==DIGIT_STR) ) {
alt718=1;
}
switch (alt718) {
case 1 :
// MFortranParser2018.g:5927:9: label
{
pushFollow(FOLLOW_label_in_synpred65_MFortranParser201824492);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,END,FOLLOW_END_in_synpred65_MFortranParser201824496); if (state.failed) return;
match(input,FILE,FOLLOW_FILE_in_synpred65_MFortranParser201824498); if (state.failed) return;
}
}
// $ANTLR end synpred65_MFortranParser2018
// $ANTLR start synpred66_MFortranParser2018
public final void synpred66_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5945:7: ( ( label )? REWIND LPAREN )
// MFortranParser2018.g:5945:8: ( label )? REWIND LPAREN
{
// MFortranParser2018.g:5945:8: ( label )?
int alt719=2;
int LA719_0 = input.LA(1);
if ( (LA719_0==DIGIT_STR) ) {
alt719=1;
}
switch (alt719) {
case 1 :
// MFortranParser2018.g:5945:9: label
{
pushFollow(FOLLOW_label_in_synpred66_MFortranParser201824600);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,REWIND,FOLLOW_REWIND_in_synpred66_MFortranParser201824604); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred66_MFortranParser201824606); if (state.failed) return;
}
}
// $ANTLR end synpred66_MFortranParser2018
// $ANTLR start synpred67_MFortranParser2018
public final void synpred67_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5951:7: ( ( label )? REWIND )
// MFortranParser2018.g:5951:8: ( label )? REWIND
{
// MFortranParser2018.g:5951:8: ( label )?
int alt720=2;
int LA720_0 = input.LA(1);
if ( (LA720_0==DIGIT_STR) ) {
alt720=1;
}
switch (alt720) {
case 1 :
// MFortranParser2018.g:5951:9: label
{
pushFollow(FOLLOW_label_in_synpred67_MFortranParser201824684);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,REWIND,FOLLOW_REWIND_in_synpred67_MFortranParser201824688); if (state.failed) return;
}
}
// $ANTLR end synpred67_MFortranParser2018
// $ANTLR start synpred68_MFortranParser2018
public final void synpred68_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5991:7: ( ( label )? FLUSH LPAREN )
// MFortranParser2018.g:5991:8: ( label )? FLUSH LPAREN
{
// MFortranParser2018.g:5991:8: ( label )?
int alt721=2;
int LA721_0 = input.LA(1);
if ( (LA721_0==DIGIT_STR) ) {
alt721=1;
}
switch (alt721) {
case 1 :
// MFortranParser2018.g:5991:9: label
{
pushFollow(FOLLOW_label_in_synpred68_MFortranParser201824876);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,FLUSH,FOLLOW_FLUSH_in_synpred68_MFortranParser201824880); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred68_MFortranParser201824882); if (state.failed) return;
}
}
// $ANTLR end synpred68_MFortranParser2018
// $ANTLR start synpred69_MFortranParser2018
public final void synpred69_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:5997:7: ( ( label )? FLUSH )
// MFortranParser2018.g:5997:8: ( label )? FLUSH
{
// MFortranParser2018.g:5997:8: ( label )?
int alt722=2;
int LA722_0 = input.LA(1);
if ( (LA722_0==DIGIT_STR) ) {
alt722=1;
}
switch (alt722) {
case 1 :
// MFortranParser2018.g:5997:9: label
{
pushFollow(FOLLOW_label_in_synpred69_MFortranParser201824961);
label();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,FLUSH,FOLLOW_FLUSH_in_synpred69_MFortranParser201824965); if (state.failed) return;
}
}
// $ANTLR end synpred69_MFortranParser2018
// $ANTLR start synpred70_MFortranParser2018
public final void synpred70_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:6346:7: ( ( prefix )? function_subprogram )
// MFortranParser2018.g:6346:7: ( prefix )? function_subprogram
{
// MFortranParser2018.g:6346:7: ( prefix )?
int alt723=2;
int LA723_0 = input.LA(1);
if ( (LA723_0==CHARACTER||LA723_0==CLASS||LA723_0==COMPLEX||(LA723_0 >= DOUBLE && LA723_0 <= DOUBLEPRECISION)||LA723_0==ELEMENTAL||LA723_0==IMPURE||LA723_0==INTEGER||LA723_0==LOGICAL||LA723_0==MODULE||LA723_0==NON_RECURSIVE||LA723_0==PURE||(LA723_0 >= REAL && LA723_0 <= RECURSIVE)||LA723_0==TYPE) ) {
alt723=1;
}
switch (alt723) {
case 1 :
// MFortranParser2018.g:6346:8: prefix
{
pushFollow(FOLLOW_prefix_in_synpred70_MFortranParser201826213);
prefix();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_function_subprogram_in_synpred70_MFortranParser201826219);
function_subprogram();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred70_MFortranParser2018
// $ANTLR start synpred71_MFortranParser2018
public final void synpred71_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:6347:7: ( subroutine_subprogram )
// MFortranParser2018.g:6347:7: subroutine_subprogram
{
pushFollow(FOLLOW_subroutine_subprogram_in_synpred71_MFortranParser201826227);
subroutine_subprogram();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred71_MFortranParser2018
// $ANTLR start synpred72_MFortranParser2018
public final void synpred72_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:6637:7: ( ( prefix )? function_stmt specification_part end_function_stmt )
// MFortranParser2018.g:6637:7: ( prefix )? function_stmt specification_part end_function_stmt
{
// MFortranParser2018.g:6637:7: ( prefix )?
int alt724=2;
int LA724_0 = input.LA(1);
if ( (LA724_0==CHARACTER||LA724_0==CLASS||LA724_0==COMPLEX||(LA724_0 >= DOUBLE && LA724_0 <= DOUBLEPRECISION)||LA724_0==ELEMENTAL||LA724_0==IMPURE||LA724_0==INTEGER||LA724_0==LOGICAL||LA724_0==MODULE||LA724_0==NON_RECURSIVE||LA724_0==PURE||(LA724_0 >= REAL && LA724_0 <= RECURSIVE)||LA724_0==TYPE) ) {
alt724=1;
}
switch (alt724) {
case 1 :
// MFortranParser2018.g:6637:8: prefix
{
pushFollow(FOLLOW_prefix_in_synpred72_MFortranParser201827505);
prefix();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_function_stmt_in_synpred72_MFortranParser201827518);
function_stmt();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_specification_part_in_synpred72_MFortranParser201827520);
specification_part();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_end_function_stmt_in_synpred72_MFortranParser201827529);
end_function_stmt();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred72_MFortranParser2018
// $ANTLR start synpred73_MFortranParser2018
public final void synpred73_MFortranParser2018_fragment() throws RecognitionException {
// MFortranParser2018.g:7312:7: ( EOF )
// MFortranParser2018.g:7312:8: EOF
{
match(input,EOF,FOLLOW_EOF_in_synpred73_MFortranParser201830317); if (state.failed) return;
}
}
// $ANTLR end synpred73_MFortranParser2018
// Delegated rules
public final boolean synpred68_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred68_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred70_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred70_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred16_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred16_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred14_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred14_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred41_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred41_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred43_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred43_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred45_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred45_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred72_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred72_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred39_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred39_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred37_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred37_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred35_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred35_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred9_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred9_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred7_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred7_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred58_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred58_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred5_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred5_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred53_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred53_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred51_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred51_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred55_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred55_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred56_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred56_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred26_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred26_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred27_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred27_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred28_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred28_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred29_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred29_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred25_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred25_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred24_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred24_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred62_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred62_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred63_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred63_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred10_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred10_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred60_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred60_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred65_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred65_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred64_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred64_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred66_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred66_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred67_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred67_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred69_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred69_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred42_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred42_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred44_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred44_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred38_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred38_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred73_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred73_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred71_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred71_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred21_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred21_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred36_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred36_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred23_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred23_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred6_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred6_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred59_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred59_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred8_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred8_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred4_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred4_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred57_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred57_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred1_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred1_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred54_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred54_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred50_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred50_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred52_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred52_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred2_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred2_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred30_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred30_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred3_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred3_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred32_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred32_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred33_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred33_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred31_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred31_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred34_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred34_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred47_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred47_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred48_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred48_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred49_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred49_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred46_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred46_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred40_MFortranParser2018() {
state.backtracking++;
int start = input.mark();
try {
synpred40_MFortranParser2018_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
protected DFA5 dfa5 = new DFA5(this);
protected DFA184 dfa184 = new DFA184(this);
protected DFA367 dfa367 = new DFA367(this);
static final String DFA5_eotS =
"\130\uffff";
static final String DFA5_eofS =
"\130\uffff";
static final String DFA5_minS =
"\1\4\1\0\1\uffff\3\0\122\uffff";
static final String DFA5_maxS =
"\1\u00e3\1\0\1\uffff\3\0\122\uffff";
static final String DFA5_acceptS =
"\2\uffff\1\1\3\uffff\1\5\116\uffff\1\2\1\3\1\4";
static final String DFA5_specialS =
"\1\0\1\1\1\uffff\1\2\1\3\1\4\122\uffff}>";
static final String[] DFA5_transitionS = {
"\1\6\2\uffff\2\6\2\uffff\1\6\1\uffff\3\6\1\uffff\1\6\1\uffff\1\6\2\uffff"+
"\1\6\2\uffff\3\6\3\uffff\2\6\1\uffff\1\6\1\uffff\1\6\1\uffff\4\6\3\uffff"+
"\1\1\5\6\6\uffff\1\6\1\5\1\6\4\uffff\1\6\7\uffff\1\6\1\uffff\1\6\5\uffff"+
"\1\6\2\uffff\1\4\5\uffff\2\6\4\uffff\2\6\2\uffff\1\2\5\uffff\5\6\13\uffff"+
"\1\6\10\uffff\2\6\4\uffff\3\6\1\uffff\1\6\1\uffff\1\6\1\uffff\3\6\11"+
"\uffff\1\6\2\uffff\1\6\1\uffff\1\6\2\uffff\1\3\6\uffff\1\6\2\uffff\1"+
"\6\2\uffff\3\6\1\uffff\2\6\4\uffff\2\6\2\uffff\2\6\1\uffff\4\6\7\uffff"+
"\2\6\2\uffff\1\6\2\uffff\1\6\4\uffff\1\6\4\uffff\3\6\2\uffff\1\6",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS);
static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS);
static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS);
static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS);
static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS);
static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS);
static final short[][] DFA5_transition;
static {
int numStates = DFA5_transitionS.length;
DFA5_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA5_transition[i] = DFA.unpackEncodedString(DFA5_transitionS[i]);
}
}
protected class DFA5 extends DFA {
public DFA5(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 5;
this.eot = DFA5_eot;
this.eof = DFA5_eof;
this.min = DFA5_min;
this.max = DFA5_max;
this.accept = DFA5_accept;
this.special = DFA5_special;
this.transition = DFA5_transition;
}
@Override
public String getDescription() {
return "93:1: implicit_part_recursion : ( ( ( label )? IMPLICIT )=> implicit_stmt implicit_part_recursion | ( ( label )? PARAMETER )=> parameter_stmt implicit_part_recursion | ( ( label )? FORMAT )=> format_stmt implicit_part_recursion | ( ( label )? ENTRY )=> entry_stmt implicit_part_recursion |);";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA5_0 = input.LA(1);
int index5_0 = input.index();
input.rewind();
s = -1;
if ( (LA5_0==DIGIT_STR) ) {s = 1;}
else if ( (LA5_0==IMPLICIT) && (synpred1_MFortranParser2018())) {s = 2;}
else if ( (LA5_0==PARAMETER) ) {s = 3;}
else if ( (LA5_0==FORMAT) ) {s = 4;}
else if ( (LA5_0==ENTRY) ) {s = 5;}
else if ( (LA5_0==ABSTRACT||(LA5_0 >= ALLOCATABLE && LA5_0 <= ALLOCATE)||LA5_0==ASSOCIATE||(LA5_0 >= ASYNCHRONOUS && LA5_0 <= BIND)||LA5_0==BLOCK||LA5_0==CALL||LA5_0==CHARACTER||(LA5_0 >= CLASS && LA5_0 <= CODIMENSION)||(LA5_0 >= COMMON && LA5_0 <= COMPLEX)||LA5_0==CONTAINS||LA5_0==CONTINUE||(LA5_0 >= CRITICAL && LA5_0 <= DEALLOCATE)||(LA5_0 >= DIMENSION && LA5_0 <= DOUBLEPRECISION)||LA5_0==END||LA5_0==ENUM||LA5_0==EQUIVALENCE||LA5_0==EXIT||LA5_0==EXTERNAL||LA5_0==FLUSH||(LA5_0 >= GO && LA5_0 <= GOTO)||(LA5_0 >= IDENT && LA5_0 <= IF)||(LA5_0 >= INQUIRE && LA5_0 <= INTRINSIC)||LA5_0==LOGICAL||(LA5_0 >= M_ALLOCATE_STMT_1 && LA5_0 <= M_ASSIGNMENT_STMT)||(LA5_0 >= M_FORALL_CONSTRUCT_STMT && LA5_0 <= M_IF_STMT)||LA5_0==M_INQUIRE_STMT_2||LA5_0==M_PTR_ASSIGNMENT_STMT||(LA5_0 >= M_WHERE_CONSTRUCT_STMT && LA5_0 <= NAMELIST)||LA5_0==NULLIFY||LA5_0==OPEN||LA5_0==OPTIONAL||LA5_0==POINTER||LA5_0==PRAGMA||(LA5_0 >= PRINT && LA5_0 <= PROCEDURE)||(LA5_0 >= PROTECTED && LA5_0 <= PUBLIC)||(LA5_0 >= READ && LA5_0 <= REAL)||(LA5_0 >= RETURN && LA5_0 <= REWIND)||(LA5_0 >= SAVE && LA5_0 <= SELECTTYPE)||(LA5_0 >= STMT_FUNCTION && LA5_0 <= STOP)||LA5_0==SYNC||LA5_0==TARGET||LA5_0==TYPE||(LA5_0 >= VALUE && LA5_0 <= WAIT)||LA5_0==WRITE) ) {s = 6;}
input.seek(index5_0);
if ( s>=0 ) return s;
break;
case 1 :
int LA5_1 = input.LA(1);
int index5_1 = input.index();
input.rewind();
s = -1;
if ( (synpred1_MFortranParser2018()) ) {s = 2;}
else if ( (synpred2_MFortranParser2018()) ) {s = 85;}
else if ( (synpred3_MFortranParser2018()) ) {s = 86;}
else if ( (synpred4_MFortranParser2018()) ) {s = 87;}
else if ( (true) ) {s = 6;}
input.seek(index5_1);
if ( s>=0 ) return s;
break;
case 2 :
int LA5_3 = input.LA(1);
int index5_3 = input.index();
input.rewind();
s = -1;
if ( (synpred2_MFortranParser2018()) ) {s = 85;}
else if ( (true) ) {s = 6;}
input.seek(index5_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA5_4 = input.LA(1);
int index5_4 = input.index();
input.rewind();
s = -1;
if ( (synpred3_MFortranParser2018()) ) {s = 86;}
else if ( (true) ) {s = 6;}
input.seek(index5_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA5_5 = input.LA(1);
int index5_5 = input.index();
input.rewind();
s = -1;
if ( (synpred4_MFortranParser2018()) ) {s = 87;}
else if ( (true) ) {s = 6;}
input.seek(index5_5);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 5, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA184_eotS =
"\74\uffff";
static final String DFA184_eofS =
"\1\uffff\1\17\1\25\1\31\12\uffff\1\31\55\uffff";
static final String DFA184_minS =
"\1\20\1\27\2\36\2\55\7\uffff\1\14\1\36\5\uffff\1\27\13\uffff\20\0\1\uffff"+
"\1\0\6\uffff\1\0\3\uffff";
static final String DFA184_maxS =
"\1\u00d8\1\u00c8\1\u00da\1\u00c8\2\u008f\7\uffff\1\u00d8\1\u00c8\5\uffff"+
"\1\137\13\uffff\20\0\1\uffff\1\0\6\uffff\1\0\3\uffff";
static final String DFA184_acceptS =
"\6\uffff\1\3\1\4\1\5\1\uffff\1\7\4\uffff\1\1\5\uffff\1\2\3\uffff\1\6\41"+
"\uffff\1\10";
static final String DFA184_specialS =
"\40\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+
"\1\16\1\17\1\uffff\1\20\6\uffff\1\21\3\uffff}>";
static final String[] DFA184_transitionS = {
"\1\12\6\uffff\1\3\25\uffff\1\2\37\uffff\1\10\20\uffff\1\12\1\1\32\uffff"+
"\1\7\3\uffff\1\5\20\uffff\1\6\15\uffff\1\12\14\uffff\1\4\55\uffff\1\10",
"\1\16\6\uffff\1\17\121\uffff\1\17\11\uffff\1\15\54\uffff\1\17\40\uffff"+
"\1\17",
"\1\25\u00a9\uffff\1\25\21\uffff\1\24",
"\1\31\133\uffff\1\17\115\uffff\1\31",
"\1\25\141\uffff\1\6",
"\1\25\141\uffff\1\6",
"",
"",
"",
"",
"",
"",
"",
"\1\61\3\uffff\1\53\6\uffff\1\46\4\uffff\1\57\2\17\15\uffff\1\43\1\45"+
"\37\uffff\1\52\20\uffff\1\55\1\44\20\uffff\1\56\11\uffff\1\50\3\uffff"+
"\1\42\20\uffff\1\47\12\uffff\1\40\2\uffff\1\54\14\uffff\1\41\26\uffff"+
"\1\17\26\uffff\1\51",
"\1\31\133\uffff\1\17\115\uffff\1\31",
"",
"",
"",
"",
"",
"\1\70\25\uffff\1\25\61\uffff\1\25",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
""
};
static final short[] DFA184_eot = DFA.unpackEncodedString(DFA184_eotS);
static final short[] DFA184_eof = DFA.unpackEncodedString(DFA184_eofS);
static final char[] DFA184_min = DFA.unpackEncodedStringToUnsignedChars(DFA184_minS);
static final char[] DFA184_max = DFA.unpackEncodedStringToUnsignedChars(DFA184_maxS);
static final short[] DFA184_accept = DFA.unpackEncodedString(DFA184_acceptS);
static final short[] DFA184_special = DFA.unpackEncodedString(DFA184_specialS);
static final short[][] DFA184_transition;
static {
int numStates = DFA184_transitionS.length;
DFA184_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA184_transition[i] = DFA.unpackEncodedString(DFA184_transitionS[i]);
}
}
protected class DFA184 extends DFA {
public DFA184(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 184;
this.eot = DFA184_eot;
this.eof = DFA184_eof;
this.min = DFA184_min;
this.max = DFA184_max;
this.accept = DFA184_accept;
this.special = DFA184_special;
this.transition = DFA184_transition;
}
@Override
public String getDescription() {
return "2148:1: data_stmt_constant options {backtrack=true; k=3; } : ( designator | signed_int_literal_constant | signed_real_literal_constant | complex_literal_constant | logical_literal_constant | char_literal_constant | boz_literal_constant | structure_constructor );";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA184_32 = input.LA(1);
int index184_32 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_32);
if ( s>=0 ) return s;
break;
case 1 :
int LA184_33 = input.LA(1);
int index184_33 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_33);
if ( s>=0 ) return s;
break;
case 2 :
int LA184_34 = input.LA(1);
int index184_34 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_34);
if ( s>=0 ) return s;
break;
case 3 :
int LA184_35 = input.LA(1);
int index184_35 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_35);
if ( s>=0 ) return s;
break;
case 4 :
int LA184_36 = input.LA(1);
int index184_36 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_36);
if ( s>=0 ) return s;
break;
case 5 :
int LA184_37 = input.LA(1);
int index184_37 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_37);
if ( s>=0 ) return s;
break;
case 6 :
int LA184_38 = input.LA(1);
int index184_38 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_38);
if ( s>=0 ) return s;
break;
case 7 :
int LA184_39 = input.LA(1);
int index184_39 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_39);
if ( s>=0 ) return s;
break;
case 8 :
int LA184_40 = input.LA(1);
int index184_40 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_40);
if ( s>=0 ) return s;
break;
case 9 :
int LA184_41 = input.LA(1);
int index184_41 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_41);
if ( s>=0 ) return s;
break;
case 10 :
int LA184_42 = input.LA(1);
int index184_42 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_42);
if ( s>=0 ) return s;
break;
case 11 :
int LA184_43 = input.LA(1);
int index184_43 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_43);
if ( s>=0 ) return s;
break;
case 12 :
int LA184_44 = input.LA(1);
int index184_44 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_44);
if ( s>=0 ) return s;
break;
case 13 :
int LA184_45 = input.LA(1);
int index184_45 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_45);
if ( s>=0 ) return s;
break;
case 14 :
int LA184_46 = input.LA(1);
int index184_46 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_46);
if ( s>=0 ) return s;
break;
case 15 :
int LA184_47 = input.LA(1);
int index184_47 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_47);
if ( s>=0 ) return s;
break;
case 16 :
int LA184_49 = input.LA(1);
int index184_49 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (true) ) {s = 59;}
input.seek(index184_49);
if ( s>=0 ) return s;
break;
case 17 :
int LA184_56 = input.LA(1);
int index184_56 = input.index();
input.rewind();
s = -1;
if ( (synpred16_MFortranParser2018()) ) {s = 15;}
else if ( (synpred21_MFortranParser2018()) ) {s = 25;}
input.seek(index184_56);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 184, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA367_eotS =
"\120\uffff";
static final String DFA367_eofS =
"\120\uffff";
static final String DFA367_minS =
"\1\4\2\0\1\uffff\1\0\4\uffff\1\0\17\uffff\1\0\66\uffff";
static final String DFA367_maxS =
"\1\u00e3\2\0\1\uffff\1\0\4\uffff\1\0\17\uffff\1\0\66\uffff";
static final String DFA367_acceptS =
"\3\uffff\1\2\1\uffff\2\4\1\5\1\6\1\uffff\11\10\2\11\1\12\1\13\1\14\1\15"+
"\1\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\51\uffff\1\1\1\3"+
"\1\7\1\16";
static final String DFA367_specialS =
"\1\0\1\1\1\2\1\uffff\1\3\4\uffff\1\4\17\uffff\1\5\66\uffff}>";
static final String[] DFA367_transitionS = {
"\1\6\2\uffff\1\25\1\42\2\uffff\1\42\1\uffff\1\26\1\42\1\27\1\uffff\1"+
"\42\1\uffff\1\42\2\uffff\1\20\2\uffff\1\22\1\42\1\30\4\uffff\1\16\3\uffff"+
"\1\42\1\uffff\2\42\1\31\1\42\3\uffff\1\1\1\32\1\42\1\14\1\17\1\15\6\uffff"+
"\1\42\1\2\1\3\14\uffff\1\42\1\uffff\1\33\5\uffff\1\42\2\uffff\1\4\5\uffff"+
"\2\42\4\uffff\2\42\10\uffff\1\42\1\12\1\uffff\1\5\1\34\13\uffff\1\21"+
"\10\uffff\2\42\4\uffff\3\42\1\uffff\1\42\1\uffff\1\42\1\uffff\2\42\12"+
"\uffff\1\42\2\uffff\1\42\4\uffff\1\7\6\uffff\1\35\2\uffff\1\42\2\uffff"+
"\1\42\1\24\1\10\1\uffff\1\36\1\23\4\uffff\1\42\1\13\2\uffff\2\42\1\uffff"+
"\1\37\3\42\10\uffff\1\42\2\uffff\1\42\2\uffff\1\40\4\uffff\1\11\5\uffff"+
"\1\41\1\42\2\uffff\1\42",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA367_eot = DFA.unpackEncodedString(DFA367_eotS);
static final short[] DFA367_eof = DFA.unpackEncodedString(DFA367_eofS);
static final char[] DFA367_min = DFA.unpackEncodedStringToUnsignedChars(DFA367_minS);
static final char[] DFA367_max = DFA.unpackEncodedStringToUnsignedChars(DFA367_maxS);
static final short[] DFA367_accept = DFA.unpackEncodedString(DFA367_acceptS);
static final short[] DFA367_special = DFA.unpackEncodedString(DFA367_specialS);
static final short[][] DFA367_transition;
static {
int numStates = DFA367_transitionS.length;
DFA367_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA367_transition[i] = DFA.unpackEncodedString(DFA367_transitionS[i]);
}
}
protected class DFA367 extends DFA {
public DFA367(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 367;
this.eot = DFA367_eot;
this.eof = DFA367_eof;
this.min = DFA367_min;
this.max = DFA367_max;
this.accept = DFA367_accept;
this.special = DFA367_special;
this.transition = DFA367_transition;
}
@Override
public String getDescription() {
return "4275:1: declaration_construct_and_block : ( ( ( label )? ENTRY )=> entry_stmt declaration_construct_and_block | ( ( label )? ENUM )=> enum_def declaration_construct_and_block | ( ( label )? FORMAT )=> format_stmt declaration_construct_and_block | ( ( label )? INTERFACE )=> interface_block declaration_construct_and_block | ( ( label )? PARAMETER )=> parameter_stmt declaration_construct_and_block | ( ( label )? PROCEDURE )=> procedure_declaration_stmt declaration_construct_and_block | ( derived_type_stmt )=> derived_type_def declaration_construct_and_block | ( type_declaration_stmt )=> type_declaration_stmt declaration_construct_and_block | ( ( label )? access_spec )=> access_stmt declaration_construct_and_block | ( ( label )? ALLOCATABLE )=> allocatable_stmt declaration_construct_and_block | ( ( label )? ASYNCHRONOUS )=> asynchronous_stmt declaration_construct_and_block | ( ( label )? BIND )=> bind_stmt declaration_construct_and_block | ( ( label )? CODIMENSION )=> codimension_stmt declaration_construct_and_block | ( ( label )? DATA )=> data_stmt declaration_construct_and_block | ( ( label )? DIMENSION )=> dimension_stmt declaration_construct_and_block | ( ( label )? EXTERNAL )=> external_stmt declaration_construct_and_block | ( ( label )? INTRINSIC )=> intrinsic_stmt declaration_construct_and_block | ( ( label )? POINTER )=> pointer_stmt declaration_construct_and_block | ( ( label )? PROTECTED )=> protected_stmt declaration_construct_and_block | ( ( label )? SAVE )=> save_stmt declaration_construct_and_block | ( ( label )? TARGET )=> target_stmt declaration_construct_and_block | ( ( label )? VOLATILE )=> volatile_stmt declaration_construct_and_block | block );";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA367_0 = input.LA(1);
int index367_0 = input.index();
input.rewind();
s = -1;
if ( (LA367_0==DIGIT_STR) ) {s = 1;}
else if ( (LA367_0==ENTRY) ) {s = 2;}
else if ( (LA367_0==ENUM) && (synpred37_MFortranParser2018())) {s = 3;}
else if ( (LA367_0==FORMAT) ) {s = 4;}
else if ( (LA367_0==INTERFACE) && (synpred39_MFortranParser2018())) {s = 5;}
else if ( (LA367_0==ABSTRACT) && (synpred39_MFortranParser2018())) {s = 6;}
else if ( (LA367_0==PARAMETER) && (synpred40_MFortranParser2018())) {s = 7;}
else if ( (LA367_0==PROCEDURE) && (synpred41_MFortranParser2018())) {s = 8;}
else if ( (LA367_0==TYPE) ) {s = 9;}
else if ( (LA367_0==INTEGER) && (synpred43_MFortranParser2018())) {s = 10;}
else if ( (LA367_0==REAL) && (synpred43_MFortranParser2018())) {s = 11;}
else if ( (LA367_0==DOUBLE) && (synpred43_MFortranParser2018())) {s = 12;}
else if ( (LA367_0==DOUBLEPRECISION) && (synpred43_MFortranParser2018())) {s = 13;}
else if ( (LA367_0==COMPLEX) && (synpred43_MFortranParser2018())) {s = 14;}
else if ( (LA367_0==DOUBLECOMPLEX) && (synpred43_MFortranParser2018())) {s = 15;}
else if ( (LA367_0==CHARACTER) && (synpred43_MFortranParser2018())) {s = 16;}
else if ( (LA367_0==LOGICAL) && (synpred43_MFortranParser2018())) {s = 17;}
else if ( (LA367_0==CLASS) && (synpred43_MFortranParser2018())) {s = 18;}
else if ( (LA367_0==PUBLIC) && (synpred44_MFortranParser2018())) {s = 19;}
else if ( (LA367_0==PRIVATE) && (synpred44_MFortranParser2018())) {s = 20;}
else if ( (LA367_0==ALLOCATABLE) && (synpred45_MFortranParser2018())) {s = 21;}
else if ( (LA367_0==ASYNCHRONOUS) && (synpred46_MFortranParser2018())) {s = 22;}
else if ( (LA367_0==BIND) && (synpred47_MFortranParser2018())) {s = 23;}
else if ( (LA367_0==CODIMENSION) && (synpred48_MFortranParser2018())) {s = 24;}
else if ( (LA367_0==DATA) ) {s = 25;}
else if ( (LA367_0==DIMENSION) && (synpred50_MFortranParser2018())) {s = 26;}
else if ( (LA367_0==EXTERNAL) && (synpred51_MFortranParser2018())) {s = 27;}
else if ( (LA367_0==INTRINSIC) && (synpred52_MFortranParser2018())) {s = 28;}
else if ( (LA367_0==POINTER) && (synpred53_MFortranParser2018())) {s = 29;}
else if ( (LA367_0==PROTECTED) && (synpred54_MFortranParser2018())) {s = 30;}
else if ( (LA367_0==SAVE) && (synpred55_MFortranParser2018())) {s = 31;}
else if ( (LA367_0==TARGET) && (synpred56_MFortranParser2018())) {s = 32;}
else if ( (LA367_0==VOLATILE) && (synpred57_MFortranParser2018())) {s = 33;}
else if ( (LA367_0==ALLOCATE||LA367_0==ASSOCIATE||LA367_0==BACKSPACE||LA367_0==BLOCK||LA367_0==CALL||LA367_0==CLOSE||LA367_0==CONTINUE||(LA367_0 >= CRITICAL && LA367_0 <= CYCLE)||LA367_0==DEALLOCATE||LA367_0==DO||LA367_0==END||LA367_0==EXIT||LA367_0==FLUSH||(LA367_0 >= GO && LA367_0 <= GOTO)||(LA367_0 >= IDENT && LA367_0 <= IF)||LA367_0==INQUIRE||(LA367_0 >= M_ALLOCATE_STMT_1 && LA367_0 <= M_ASSIGNMENT_STMT)||(LA367_0 >= M_FORALL_CONSTRUCT_STMT && LA367_0 <= M_IF_STMT)||LA367_0==M_INQUIRE_STMT_2||LA367_0==M_PTR_ASSIGNMENT_STMT||(LA367_0 >= M_WHERE_CONSTRUCT_STMT && LA367_0 <= M_WHERE_STMT)||LA367_0==NULLIFY||LA367_0==OPEN||LA367_0==PRAGMA||LA367_0==PRINT||LA367_0==READ||(LA367_0 >= RETURN && LA367_0 <= REWIND)||(LA367_0 >= SELECT && LA367_0 <= SELECTTYPE)||LA367_0==STOP||LA367_0==SYNC||LA367_0==WAIT||LA367_0==WRITE) ) {s = 34;}
input.seek(index367_0);
if ( s>=0 ) return s;
break;
case 1 :
int LA367_1 = input.LA(1);
int index367_1 = input.index();
input.rewind();
s = -1;
if ( (synpred36_MFortranParser2018()) ) {s = 76;}
else if ( (synpred37_MFortranParser2018()) ) {s = 3;}
else if ( (synpred38_MFortranParser2018()) ) {s = 77;}
else if ( (synpred39_MFortranParser2018()) ) {s = 6;}
else if ( (synpred40_MFortranParser2018()) ) {s = 7;}
else if ( (synpred41_MFortranParser2018()) ) {s = 8;}
else if ( (synpred42_MFortranParser2018()) ) {s = 78;}
else if ( (synpred43_MFortranParser2018()) ) {s = 18;}
else if ( (synpred44_MFortranParser2018()) ) {s = 20;}
else if ( (synpred45_MFortranParser2018()) ) {s = 21;}
else if ( (synpred46_MFortranParser2018()) ) {s = 22;}
else if ( (synpred47_MFortranParser2018()) ) {s = 23;}
else if ( (synpred48_MFortranParser2018()) ) {s = 24;}
else if ( (synpred49_MFortranParser2018()) ) {s = 79;}
else if ( (synpred50_MFortranParser2018()) ) {s = 26;}
else if ( (synpred51_MFortranParser2018()) ) {s = 27;}
else if ( (synpred52_MFortranParser2018()) ) {s = 28;}
else if ( (synpred53_MFortranParser2018()) ) {s = 29;}
else if ( (synpred54_MFortranParser2018()) ) {s = 30;}
else if ( (synpred55_MFortranParser2018()) ) {s = 31;}
else if ( (synpred56_MFortranParser2018()) ) {s = 32;}
else if ( (synpred57_MFortranParser2018()) ) {s = 33;}
else if ( (true) ) {s = 34;}
input.seek(index367_1);
if ( s>=0 ) return s;
break;
case 2 :
int LA367_2 = input.LA(1);
int index367_2 = input.index();
input.rewind();
s = -1;
if ( (synpred36_MFortranParser2018()) ) {s = 76;}
else if ( (true) ) {s = 34;}
input.seek(index367_2);
if ( s>=0 ) return s;
break;
case 3 :
int LA367_4 = input.LA(1);
int index367_4 = input.index();
input.rewind();
s = -1;
if ( (synpred38_MFortranParser2018()) ) {s = 77;}
else if ( (true) ) {s = 34;}
input.seek(index367_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA367_9 = input.LA(1);
int index367_9 = input.index();
input.rewind();
s = -1;
if ( (synpred42_MFortranParser2018()) ) {s = 78;}
else if ( (synpred43_MFortranParser2018()) ) {s = 18;}
input.seek(index367_9);
if ( s>=0 ) return s;
break;
case 5 :
int LA367_25 = input.LA(1);
int index367_25 = input.index();
input.rewind();
s = -1;
if ( (synpred49_MFortranParser2018()) ) {s = 79;}
else if ( (true) ) {s = 34;}
input.seek(index367_25);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 367, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_prefix_in_ext_function_subprogram83 = new BitSet(new long[]{0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_function_subprogram_in_ext_function_subprogram97 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_use_stmt_in_specification_part126 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_import_stmt_in_specification_part142 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000C2102004L});
public static final BitSet FOLLOW_implicit_part_recursion_in_specification_part155 = new BitSet(new long[]{0x0C0761018A40A092L,0x02003C0000080401L,0x106C481200040000L,0x00000000C2102004L});
public static final BitSet FOLLOW_declaration_construct_in_specification_part165 = new BitSet(new long[]{0x0C0761018A40A092L,0x02003C0000080401L,0x106C481200040000L,0x00000000C2102004L});
public static final BitSet FOLLOW_implicit_stmt_in_implicit_part_recursion212 = new BitSet(new long[]{0x0400200000000000L,0x0000000800080000L,0x0000001000000000L});
public static final BitSet FOLLOW_implicit_part_recursion_in_implicit_part_recursion217 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameter_stmt_in_implicit_part_recursion247 = new BitSet(new long[]{0x0400200000000000L,0x0000000800080000L,0x0000001000000000L});
public static final BitSet FOLLOW_implicit_part_recursion_in_implicit_part_recursion251 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_format_stmt_in_implicit_part_recursion284 = new BitSet(new long[]{0x0400200000000000L,0x0000000800080000L,0x0000001000000000L});
public static final BitSet FOLLOW_implicit_part_recursion_in_implicit_part_recursion291 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_entry_stmt_in_implicit_part_recursion325 = new BitSet(new long[]{0x0400200000000000L,0x0000000800080000L,0x0000001000000000L});
public static final BitSet FOLLOW_implicit_part_recursion_in_implicit_part_recursion333 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_stmt_in_declaration_construct363 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocatable_stmt_in_declaration_construct371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_asynchronous_stmt_in_declaration_construct379 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_stmt_in_declaration_construct387 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_codimension_stmt_in_declaration_construct395 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_common_stmt_in_declaration_construct403 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_stmt_in_declaration_construct411 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derived_type_def_in_declaration_construct419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dimension_stmt_in_declaration_construct427 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_entry_stmt_in_declaration_construct435 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enum_def_in_declaration_construct443 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_equivalence_stmt_in_declaration_construct451 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_external_stmt_in_declaration_construct459 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_format_stmt_in_declaration_construct467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_intent_stmt_in_declaration_construct475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interface_block_in_declaration_construct483 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_intrinsic_stmt_in_declaration_construct491 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_namelist_stmt_in_declaration_construct499 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_optional_stmt_in_declaration_construct507 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameter_stmt_in_declaration_construct515 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_stmt_in_declaration_construct523 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedure_declaration_stmt_in_declaration_construct531 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_stmt_in_declaration_construct539 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_save_stmt_in_declaration_construct547 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_target_stmt_in_declaration_construct555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_declaration_stmt_in_declaration_construct563 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_volatile_stmt_in_declaration_construct571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_stmt_in_declaration_construct579 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stmt_function_stmt_in_declaration_construct587 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pragma_type_qualifier_stmt_in_declaration_construct595 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_executable_construct_in_execution_part622 = new BitSet(new long[]{0x0600A3D0040A4902L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_execution_part_construct_in_execution_part632 = new BitSet(new long[]{0x0600A3D0040A4902L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_executable_construct_in_execution_part_construct661 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_stmt_in_execution_part_construct669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_entry_stmt_in_execution_part_construct677 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_format_stmt_in_execution_part_construct685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_contains_stmt_in_internal_subprogram_part712 = new BitSet(new long[]{0x0027200102400002L,0x0200042000400000L,0x3080000001000001L,0x0000000002010000L});
public static final BitSet FOLLOW_internal_subprogram_in_internal_subprogram_part722 = new BitSet(new long[]{0x0027200102400002L,0x0200042000400000L,0x3080000001000001L,0x0000000002010000L});
public static final BitSet FOLLOW_prefix_in_internal_subprogram763 = new BitSet(new long[]{0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_function_subprogram_in_internal_subprogram768 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subroutine_subprogram_in_internal_subprogram776 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_action_stmt_in_executable_construct800 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_associate_construct_in_executable_construct808 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_construct_in_executable_construct816 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_case_construct_in_executable_construct824 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_critical_construct_in_executable_construct832 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_do_construct_in_executable_construct840 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_construct_in_executable_construct848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_if_construct_in_executable_construct856 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_type_construct_in_executable_construct864 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_where_construct_in_executable_construct872 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pragma_stmt_in_executable_construct880 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_stmt_in_action_stmt903 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignment_stmt_in_action_stmt911 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_backspace_stmt_in_action_stmt919 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_stmt_in_action_stmt927 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_close_stmt_in_action_stmt935 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_computed_goto_stmt_in_action_stmt943 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_continue_stmt_in_action_stmt951 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_cycle_stmt_in_action_stmt959 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_deallocate_stmt_in_action_stmt967 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_endfile_stmt_in_action_stmt975 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exit_stmt_in_action_stmt983 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_flush_stmt_in_action_stmt991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_stmt_in_action_stmt999 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_goto_stmt_in_action_stmt1007 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_if_stmt_in_action_stmt1015 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inquire_stmt_in_action_stmt1023 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nullify_stmt_in_action_stmt1031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_open_stmt_in_action_stmt1039 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_assignment_stmt_in_action_stmt1047 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_print_stmt_in_action_stmt1055 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_read_stmt_in_action_stmt1063 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_return_stmt_in_action_stmt1071 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rewind_stmt_in_action_stmt1079 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stop_stmt_in_action_stmt1087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sync_all_stmt_in_action_stmt1095 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sync_images_stmt_in_action_stmt1103 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sync_memory_stmt_in_action_stmt1111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_wait_stmt_in_action_stmt1119 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_where_stmt_in_action_stmt1127 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_write_stmt_in_action_stmt1135 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_name_in_keyword1176 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_name1208 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_constant_in_constant1233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_constant1243 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_constant_in_literal_constant1267 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_real_literal_constant_in_literal_constant1275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_complex_literal_constant_in_literal_constant1283 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logical_literal_constant_in_literal_constant1291 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_literal_constant1299 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boz_literal_constant_in_literal_constant1307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_constant_in_int_constant1332 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_int_constant1342 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_power_op_in_intrinsic_operator1369 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mult_op_in_intrinsic_operator1380 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_add_op_in_intrinsic_operator1392 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_concat_op_in_intrinsic_operator1405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rel_op_in_intrinsic_operator1415 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_not_op_in_intrinsic_operator1428 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_and_op_in_intrinsic_operator1441 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_or_op_in_intrinsic_operator1454 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_equiv_op_in_intrinsic_operator1468 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFINED_OP_in_defined_operator1490 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_extended_intrinsic_op_in_defined_operator1508 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_intrinsic_operator_in_extended_intrinsic_op1546 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIGIT_STR_in_label1571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_label_list1601 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_label_list1614 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_label_in_label_list1618 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_char_literal_constant_in_char_constant1662 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_char_constant1672 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_type_param_value1693 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_type_param_value1712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_type_param_value1731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_intrinsic_type_spec_in_type_spec1766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derived_type_spec_in_type_spec1774 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_intrinsic_type_spec_in_declaration_type_spec1793 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_declaration_type_spec1811 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_declaration_type_spec1814 = new BitSet(new long[]{0x0007000100400000L,0x0200040000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_intrinsic_type_spec_in_declaration_type_spec1816 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_declaration_type_spec1818 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_declaration_type_spec1836 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_declaration_type_spec1839 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_derived_type_spec_in_declaration_type_spec1841 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_declaration_type_spec1843 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_declaration_type_spec1861 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_declaration_type_spec1864 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_declaration_type_spec1866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_declaration_type_spec1868 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_declaration_type_spec1886 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_declaration_type_spec1888 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_derived_type_spec_in_declaration_type_spec1890 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_declaration_type_spec1892 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_declaration_type_spec1910 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_declaration_type_spec1912 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_declaration_type_spec1914 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_declaration_type_spec1916 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_in_intrinsic_type_spec1949 = new BitSet(new long[]{0x0000000000001002L,0x0400000000000000L});
public static final BitSet FOLLOW_kind_selector_in_intrinsic_type_spec1952 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REAL_in_intrinsic_type_spec1974 = new BitSet(new long[]{0x0000000000001002L,0x0400000000000000L});
public static final BitSet FOLLOW_kind_selector_in_intrinsic_type_spec1977 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_in_intrinsic_type_spec1999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_PRECISION_in_intrinsic_type_spec2001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLEPRECISION_in_intrinsic_type_spec2019 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMPLEX_in_intrinsic_type_spec2037 = new BitSet(new long[]{0x0000000000001002L,0x0400000000000000L});
public static final BitSet FOLLOW_kind_selector_in_intrinsic_type_spec2040 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_in_intrinsic_type_spec2062 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_COMPLEX_in_intrinsic_type_spec2064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLECOMPLEX_in_intrinsic_type_spec2082 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHARACTER_in_intrinsic_type_spec2100 = new BitSet(new long[]{0x0000000000001002L,0x0400000000000000L});
public static final BitSet FOLLOW_char_selector_in_intrinsic_type_spec2103 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LOGICAL_in_intrinsic_type_spec2125 = new BitSet(new long[]{0x0000000000001002L,0x0400000000000000L});
public static final BitSet FOLLOW_kind_selector_in_intrinsic_type_spec2128 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_kind_selector2169 = new BitSet(new long[]{0x0000300000810000L,0x44018000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_KIND_in_kind_selector2174 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_kind_selector2178 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_kind_selector2182 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_kind_selector2184 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_kind_selector2204 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_DIGIT_STR_in_kind_selector2208 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_signed_int_literal_constant2235 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_MINUS_in_signed_int_literal_constant2241 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_int_literal_constant_in_signed_int_literal_constant2251 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIGIT_STR_in_int_literal_constant2270 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_UNDERSCORE_in_int_literal_constant2273 = new BitSet(new long[]{0x0000200000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_kind_param_in_int_literal_constant2277 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIGIT_STR_in_kind_param2316 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_kind_param2326 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_signed_real_literal_constant2358 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_MINUS_in_signed_real_literal_constant2364 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_real_literal_constant_in_signed_real_literal_constant2374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_M_REAL_CONST_in_real_literal_constant2393 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_UNDERSCORE_in_real_literal_constant2396 = new BitSet(new long[]{0x0000200000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_kind_param_in_real_literal_constant2400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_complex_literal_constant2440 = new BitSet(new long[]{0x0000200000000000L,0x4000000080000000L,0x0000040000008000L});
public static final BitSet FOLLOW_real_part_in_complex_literal_constant2442 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_complex_literal_constant2444 = new BitSet(new long[]{0x0000200000000000L,0x4000000080000000L,0x0000040000008000L});
public static final BitSet FOLLOW_imag_part_in_complex_literal_constant2446 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_complex_literal_constant2448 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_int_literal_constant_in_real_part2467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_real_literal_constant_in_real_part2485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_real_part2504 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_int_literal_constant_in_imag_part2533 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_real_literal_constant_in_imag_part2551 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_imag_part2569 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_char_selector2607 = new BitSet(new long[]{0x0000200000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_char_length_in_char_selector2609 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_char_selector2612 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_char_selector2632 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_value_in_char_selector2634 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_char_selector2644 = new BitSet(new long[]{0x0000300000810000L,0x44018000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_KIND_in_char_selector2649 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_char_selector2651 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_char_selector2655 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_char_selector2684 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_char_selector2702 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_LEN_in_char_selector2706 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_char_selector2708 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_value_in_char_selector2710 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_char_selector2720 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_KIND_in_char_selector2724 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_char_selector2726 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_char_selector2728 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_char_selector2757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_char_selector2775 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_KIND_in_char_selector2779 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_char_selector2781 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_char_selector2783 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_char_selector2793 = new BitSet(new long[]{0x0000300010811000L,0x44050000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_LEN_in_char_selector2798 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_char_selector2800 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_value_in_char_selector2804 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_char_selector2833 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_length_selector2862 = new BitSet(new long[]{0x0000300010811000L,0x44050000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_LEN_in_length_selector2868 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_length_selector2870 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_value_in_length_selector2875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_length_selector2877 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_length_selector2895 = new BitSet(new long[]{0x0000200000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_char_length_in_length_selector2897 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_length_selector2900 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_char_length2935 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_value_in_char_length2937 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_char_length2939 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_constant_in_char_length2949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIGIT_STR_in_char_literal_constant2970 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_UNDERSCORE_in_char_literal_constant2972 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_CHAR_CONST_in_char_literal_constant2974 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_char_literal_constant2992 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_CHAR_CONST_in_char_literal_constant2994 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHAR_CONST_in_char_literal_constant3012 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRUE_in_logical_literal_constant3041 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_UNDERSCORE_in_logical_literal_constant3046 = new BitSet(new long[]{0x0000200000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_kind_param_in_logical_literal_constant3050 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FALSE_in_logical_literal_constant3070 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_UNDERSCORE_in_logical_literal_constant3074 = new BitSet(new long[]{0x0000200000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_kind_param_in_logical_literal_constant3078 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derived_type_stmt_in_derived_type_def3113 = new BitSet(new long[]{0x0207600D0A400080L,0x0204840000000000L,0x104C080008000000L,0x0000000002000040L});
public static final BitSet FOLLOW_type_param_or_comp_def_stmt_list_in_derived_type_def3124 = new BitSet(new long[]{0x0207200502400000L,0x0200040000000000L,0x100C000000000000L,0x0000000002000040L});
public static final BitSet FOLLOW_private_or_sequence_in_derived_type_def3137 = new BitSet(new long[]{0x0207200502400000L,0x0200040000000000L,0x100C000000000000L,0x0000000002000040L});
public static final BitSet FOLLOW_component_def_stmt_in_derived_type_def3162 = new BitSet(new long[]{0x0207200502400000L,0x0200040000000000L,0x1008000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_type_bound_procedure_part_in_derived_type_def3175 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_type_stmt_in_derived_type_def3186 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_derived_type_stmt3217 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_TYPE_in_derived_type_stmt3222 = new BitSet(new long[]{0x0000000060000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COMMA_in_derived_type_stmt3234 = new BitSet(new long[]{0x0000000000008010L,0x0000000000000200L,0x0044000000000000L});
public static final BitSet FOLLOW_type_attr_spec_list_in_derived_type_stmt3236 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_derived_type_stmt3243 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_derived_type_stmt3255 = new BitSet(new long[]{0x2000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_derived_type_stmt3265 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_derived_type_stmt3267 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_derived_type_stmt3269 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_derived_type_stmt3282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_generic_name_list3319 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_generic_name_list3340 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_generic_name_list3344 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_access_spec_in_type_attr_spec3386 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDS_in_type_attr_spec3404 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_type_attr_spec3406 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_type_attr_spec3408 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_type_attr_spec3410 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSTRACT_in_type_attr_spec3428 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BIND_in_type_attr_spec3448 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_type_attr_spec3450 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_type_attr_spec3452 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_type_attr_spec3454 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_attr_spec_in_type_attr_spec_list3489 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_type_attr_spec_list3493 = new BitSet(new long[]{0x0000000000008010L,0x0000000000000200L,0x0044000000000000L});
public static final BitSet FOLLOW_type_attr_spec_in_type_attr_spec_list3495 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_private_components_stmt_in_private_or_sequence3524 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sequence_stmt_in_private_or_sequence3532 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_type_stmt3558 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_type_stmt3563 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_TYPE_in_end_type_stmt3565 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_type_stmt3577 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_type_stmt3581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_sequence_stmt3617 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_SEQUENCE_in_sequence_stmt3622 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_sequence_stmt3624 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_param_attr_spec_in_type_param_or_comp_def_stmt3653 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_type_param_or_comp_def_stmt3655 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_type_param_decl_list_in_type_param_or_comp_def_stmt3657 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_param_or_comp_def_stmt3659 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_component_attr_spec_list_in_type_param_or_comp_def_stmt3676 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_type_param_or_comp_def_stmt3678 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_component_decl_list_in_type_param_or_comp_def_stmt3680 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_param_or_comp_def_stmt3682 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_param_or_comp_def_stmt_in_type_param_or_comp_def_stmt_list3716 = new BitSet(new long[]{0x0000400808000082L,0x0004800000000000L,0x0044080008000000L});
public static final BitSet FOLLOW_type_param_or_comp_def_stmt_in_type_param_or_comp_def_stmt_list3720 = new BitSet(new long[]{0x0000400808000082L,0x0004800000000000L,0x0044080008000000L});
public static final BitSet FOLLOW_IDENT_in_type_param_decl3748 = new BitSet(new long[]{0x8000000000000002L});
public static final BitSet FOLLOW_EQUALS_in_type_param_decl3752 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_type_param_decl3754 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_param_decl_in_type_param_decl_list3792 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_type_param_decl_list3796 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_type_param_decl_in_type_param_decl_list3798 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_KIND_in_type_param_attr_spec3822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LEN_in_type_param_attr_spec3841 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_component_def_stmt_in_component_def_stmt3879 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_proc_component_def_stmt_in_component_def_stmt3887 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_data_component_def_stmt3918 = new BitSet(new long[]{0x0007000102400000L,0x0200040000000000L,0x1000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_declaration_type_spec_in_data_component_def_stmt3930 = new BitSet(new long[]{0x0000000060000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COMMA_in_data_component_def_stmt3943 = new BitSet(new long[]{0x0000400808000080L,0x0000000000000000L,0x0044080008000000L});
public static final BitSet FOLLOW_component_attr_spec_list_in_data_component_def_stmt3945 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_data_component_def_stmt3961 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_component_decl_list_in_data_component_def_stmt3973 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_data_component_def_stmt3975 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_spec_in_component_attr_spec4003 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALLOCATABLE_in_component_attr_spec4021 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CODIMENSION_in_component_attr_spec4039 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_component_attr_spec4041 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_coarray_spec_in_component_attr_spec4043 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_component_attr_spec4045 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONTIGUOUS_in_component_attr_spec4063 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIMENSION_in_component_attr_spec4081 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_component_attr_spec4083 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_component_array_spec_in_component_attr_spec4085 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_component_attr_spec4087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_POINTER_in_component_attr_spec4105 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_component_attr_spec_extension_in_component_attr_spec4123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NO_LANG_EXT_in_component_attr_spec_extension4140 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_component_attr_spec_in_component_attr_spec_list4165 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_component_attr_spec_list4169 = new BitSet(new long[]{0x0000400808000080L,0x0000000000000000L,0x0044080008000000L});
public static final BitSet FOLLOW_component_attr_spec_in_component_attr_spec_list4171 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_IDENT_in_component_decl4200 = new BitSet(new long[]{0x8000000000001002L,0x0401000000000008L});
public static final BitSet FOLLOW_LPAREN_in_component_decl4210 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_component_array_spec_in_component_decl4212 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_component_decl4214 = new BitSet(new long[]{0x8000000000001002L,0x0001000000000008L});
public static final BitSet FOLLOW_LBRACKET_in_component_decl4227 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_coarray_spec_in_component_decl4229 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_component_decl4231 = new BitSet(new long[]{0x8000000000001002L,0x0000000000000008L});
public static final BitSet FOLLOW_ASTERISK_in_component_decl4244 = new BitSet(new long[]{0x0000200000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_char_length_in_component_decl4246 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000008L});
public static final BitSet FOLLOW_component_initialization_in_component_decl4259 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_component_decl_in_component_decl_list4301 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_component_decl_list4305 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_component_decl_in_component_decl_list4307 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_explicit_shape_spec_list_in_component_array_spec4331 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_deferred_shape_spec_list_in_component_array_spec4349 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_proc_component_def_stmt4389 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_PROCEDURE_in_proc_component_def_stmt4401 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_proc_component_def_stmt4403 = new BitSet(new long[]{0x0007000102400000L,0x0200040080000000L,0x1000000000000000L,0x0000000002000002L});
public static final BitSet FOLLOW_proc_interface_in_proc_component_def_stmt4407 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_proc_component_def_stmt4413 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_proc_component_def_stmt4415 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0044082002000000L});
public static final BitSet FOLLOW_proc_component_attr_spec_list_in_proc_component_def_stmt4423 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_proc_component_def_stmt4425 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_proc_decl_list_in_proc_component_def_stmt4427 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_proc_component_def_stmt4429 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_POINTER_in_proc_component_attr_spec4458 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PASS_in_proc_component_attr_spec4476 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_proc_component_attr_spec4480 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_proc_component_attr_spec4484 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_proc_component_attr_spec4486 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOPASS_in_proc_component_attr_spec4507 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_spec_in_proc_component_attr_spec4525 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_proc_component_attr_spec_in_proc_component_attr_spec_list4560 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_proc_component_attr_spec_list4571 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0044082002000000L});
public static final BitSet FOLLOW_proc_component_attr_spec_in_proc_component_attr_spec_list4573 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_EQUALS_in_component_initialization4602 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_component_initialization4604 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQ_GT_in_component_initialization4612 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_null_init_in_component_initialization4614 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_private_components_stmt4645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_PRIVATE_in_private_components_stmt4657 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_private_components_stmt4659 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_contains_stmt_in_type_bound_procedure_part4692 = new BitSet(new long[]{0x0000200000000000L,0x0000000001008000L,0x000C000000000000L});
public static final BitSet FOLLOW_binding_private_stmt_in_type_bound_procedure_part4696 = new BitSet(new long[]{0x0000200000000000L,0x0000000001008000L,0x0008000000000000L});
public static final BitSet FOLLOW_type_bound_proc_binding_in_type_bound_procedure_part4709 = new BitSet(new long[]{0x0000200000000002L,0x0000000001008000L,0x0008000000000000L});
public static final BitSet FOLLOW_type_bound_proc_binding_in_type_bound_procedure_part4713 = new BitSet(new long[]{0x0000200000000002L,0x0000000001008000L,0x0008000000000000L});
public static final BitSet FOLLOW_label_in_binding_private_stmt4761 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_PRIVATE_in_binding_private_stmt4773 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_binding_private_stmt4775 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_type_bound_proc_binding4815 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_type_bound_procedure_stmt_in_type_bound_proc_binding4820 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_bound_proc_binding4822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_type_bound_proc_binding4843 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_bound_generic_stmt_in_type_bound_proc_binding4848 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_bound_proc_binding4850 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_type_bound_proc_binding4871 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_final_procedure_stmt_in_type_bound_proc_binding4876 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_bound_proc_binding4878 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROCEDURE_in_type_bound_procedure_stmt4917 = new BitSet(new long[]{0x0000000060000000L,0x0400000080000000L});
public static final BitSet FOLLOW_LPAREN_in_type_bound_procedure_stmt4927 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_type_bound_procedure_stmt4931 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_type_bound_procedure_stmt4933 = new BitSet(new long[]{0x0000000060000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COMMA_in_type_bound_procedure_stmt4946 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0044002002800000L});
public static final BitSet FOLLOW_binding_attr_list_in_type_bound_procedure_stmt4948 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_type_bound_procedure_stmt4963 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_type_bound_proc_decl_list_in_type_bound_procedure_stmt4982 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_type_bound_proc_decl5012 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_type_bound_proc_decl5022 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_type_bound_proc_decl5026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_bound_proc_decl_in_type_bound_proc_decl_list5057 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_type_bound_proc_decl_list5067 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_type_bound_proc_decl_in_type_bound_proc_decl_list5069 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_GENERIC_in_type_bound_generic_stmt5096 = new BitSet(new long[]{0x0000000060000000L});
public static final BitSet FOLLOW_COMMA_in_type_bound_generic_stmt5100 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0044000000000000L});
public static final BitSet FOLLOW_access_spec_in_type_bound_generic_stmt5102 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_type_bound_generic_stmt5114 = new BitSet(new long[]{0x0000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_generic_spec_in_type_bound_generic_stmt5116 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_type_bound_generic_stmt5118 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_type_bound_generic_stmt5120 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PASS_in_binding_attr5153 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_binding_attr5157 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_binding_attr5159 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_binding_attr5161 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOPASS_in_binding_attr5183 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NON_OVERRIDABLE_in_binding_attr5201 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFERRED_in_binding_attr5219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_spec_in_binding_attr5237 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_binding_attr_in_binding_attr_list5272 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_binding_attr_list5283 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0044002002800000L});
public static final BitSet FOLLOW_binding_attr_in_binding_attr_list5285 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_FINAL_in_final_procedure_stmt5309 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_final_procedure_stmt5313 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_final_procedure_stmt5318 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_derived_type_spec5352 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_derived_type_spec5356 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_spec_list_in_derived_type_spec5358 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_derived_type_spec5362 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keyword_in_type_param_spec5400 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_type_param_spec5402 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_value_in_type_param_spec5408 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_param_spec_in_type_param_spec_list5443 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_type_param_spec_list5454 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_spec_in_type_param_spec_list5456 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_IDENT_in_structure_constructor5479 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_structure_constructor5481 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_type_param_spec_list_in_structure_constructor5483 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_structure_constructor5485 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_structure_constructor5494 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000002L});
public static final BitSet FOLLOW_component_spec_list_in_structure_constructor5498 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_structure_constructor5503 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keyword_in_component_spec5540 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_component_spec5542 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_component_data_source_in_component_spec5548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_component_spec_in_component_spec_list5583 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_component_spec_list5594 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_component_spec_in_component_spec_list5596 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_component_data_source5619 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enum_def_stmt_in_enum_def5648 = new BitSet(new long[]{0x1000200000000000L});
public static final BitSet FOLLOW_enumerator_def_stmt_in_enum_def5657 = new BitSet(new long[]{0x1200200000000000L});
public static final BitSet FOLLOW_enumerator_def_stmt_in_enum_def5667 = new BitSet(new long[]{0x1200200000000000L});
public static final BitSet FOLLOW_end_enum_stmt_in_enum_def5680 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_enum_def_stmt5711 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_ENUM_in_enum_def_stmt5730 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_enum_def_stmt5732 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_BIND_in_enum_def_stmt5734 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_enum_def_stmt5736 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_enum_def_stmt5738 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_enum_def_stmt5740 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_enum_def_stmt5742 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_enumerator_def_stmt5783 = new BitSet(new long[]{0x1000000000000000L});
public static final BitSet FOLLOW_ENUMERATOR_in_enumerator_def_stmt5795 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_enumerator_def_stmt5799 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_enumerator_list_in_enumerator_def_stmt5804 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_enumerator_def_stmt5806 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_enumerator5839 = new BitSet(new long[]{0x8000000000000002L});
public static final BitSet FOLLOW_EQUALS_in_enumerator5843 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_enumerator5845 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumerator_in_enumerator_list5883 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_enumerator_list5893 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_enumerator_in_enumerator_list5895 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_end_enum_stmt5929 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_enum_stmt5941 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_ENUM_in_end_enum_stmt5943 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_enum_stmt5945 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BIN_CONST_in_boz_literal_constant5973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OCT_CONST_in_boz_literal_constant5983 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HEX_CONST_in_boz_literal_constant5994 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_array_constructor6025 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_array_constructor6027 = new BitSet(new long[]{0x0007300100C10000L,0x46010400C0002000L,0x1000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_ac_spec_in_array_constructor6029 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_array_constructor6031 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_array_constructor6033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACKET_in_array_constructor6041 = new BitSet(new long[]{0x0007300100C10000L,0x46010400C0002000L,0x1000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_ac_spec_in_array_constructor6043 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_array_constructor6045 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_spec_in_ac_spec6080 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_ac_spec6082 = new BitSet(new long[]{0x0000300000810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_ac_value_list_in_ac_spec6091 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ac_value_list_in_ac_spec6111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_ac_value6147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ac_implied_do_in_ac_value6155 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ac_value_in_ac_value_list6180 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_ac_value_list6191 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_ac_value_in_ac_value_list6193 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_LPAREN_in_ac_implied_do6216 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_ac_value_list_in_ac_implied_do6218 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_ac_implied_do6220 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_ac_implied_do_control_in_ac_implied_do6222 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_ac_implied_do6224 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_ac_implied_do_control6257 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_ac_implied_do_control6259 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_ac_implied_do_control6261 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_ac_implied_do_control6263 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_ac_implied_do_control6265 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_ac_implied_do_control6276 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_ac_implied_do_control6278 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_type_declaration_stmt6324 = new BitSet(new long[]{0x0007000102400000L,0x0200040000000000L,0x1000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_declaration_type_spec_in_type_declaration_stmt6336 = new BitSet(new long[]{0x0000000060000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COMMA_in_type_declaration_stmt6347 = new BitSet(new long[]{0x000040080800A080L,0x0000280000000400L,0x0064081208000000L,0x00000000C0100004L});
public static final BitSet FOLLOW_attr_spec_in_type_declaration_stmt6349 = new BitSet(new long[]{0x0000000060000000L});
public static final BitSet FOLLOW_COLON_COLON_in_type_declaration_stmt6355 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_entity_decl_list_in_type_declaration_stmt6366 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_declaration_stmt6368 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_spec_in_attr_spec6397 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALLOCATABLE_in_attr_spec6415 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASYNCHRONOUS_in_attr_spec6433 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CODIMENSION_in_attr_spec6451 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_attr_spec6453 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_coarray_spec_in_attr_spec6455 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_attr_spec6457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONTIGUOUS_in_attr_spec6475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIMENSION_in_attr_spec6493 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_attr_spec6495 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_in_attr_spec6497 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_attr_spec6499 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTERNAL_in_attr_spec6517 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTENT_in_attr_spec6535 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_attr_spec6537 = new BitSet(new long[]{0x0000000000000000L,0x0000014000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_intent_spec_in_attr_spec6539 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_attr_spec6541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTRINSIC_in_attr_spec6559 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_language_binding_spec_in_attr_spec6577 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OPTIONAL_in_attr_spec6595 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PARAMETER_in_attr_spec6613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_POINTER_in_attr_spec6631 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROTECTED_in_attr_spec6649 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SAVE_in_attr_spec6667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TARGET_in_attr_spec6685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VALUE_in_attr_spec6703 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VOLATILE_in_attr_spec6721 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attr_spec_extension_in_attr_spec6739 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NO_LANG_EXT_in_attr_spec_extension6766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_entity_decl6799 = new BitSet(new long[]{0x8000000000001002L,0x0401000000000008L});
public static final BitSet FOLLOW_LPAREN_in_entity_decl6810 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_in_entity_decl6812 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_entity_decl6814 = new BitSet(new long[]{0x8000000000001002L,0x0001000000000008L});
public static final BitSet FOLLOW_LBRACKET_in_entity_decl6830 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_coarray_spec_in_entity_decl6832 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_entity_decl6834 = new BitSet(new long[]{0x8000000000001002L,0x0000000000000008L});
public static final BitSet FOLLOW_ASTERISK_in_entity_decl6850 = new BitSet(new long[]{0x0000200000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_char_length_in_entity_decl6852 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000008L});
public static final BitSet FOLLOW_initialization_in_entity_decl6868 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_entity_decl_in_entity_decl_list6908 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_entity_decl_list6919 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_entity_decl_in_entity_decl_list6921 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_IDENT_in_object_name6949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUALS_in_initialization6970 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_initialization6972 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQ_GT_in_initialization6991 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_designator_in_initialization6993 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_null_init7022 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_null_init7024 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_null_init7026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PUBLIC_in_access_spec7053 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRIVATE_in_access_spec7069 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BIND_in_language_binding_spec7101 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_language_binding_spec7103 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_language_binding_spec7105 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_language_binding_spec7115 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_name_in_language_binding_spec7117 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_language_binding_spec7119 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_language_binding_spec7121 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_language_binding_spec7127 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_array_spec_element_in_coarray_spec7159 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_coarray_spec7168 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_element_in_coarray_spec7170 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_DIMENSION_in_dimension_spec7201 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_dimension_spec7203 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_in_dimension_spec7205 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_dimension_spec7207 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_array_spec_element_in_array_spec7238 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_array_spec7247 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_element_in_array_spec7249 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_array_spec_element7288 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_array_spec_element7292 = new BitSet(new long[]{0x0000300000811002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_array_spec_element7311 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_array_spec_element7330 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_array_spec_element7371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_array_spec_element7381 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DODOT_in_array_spec_element7391 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_explicit_shape_spec7417 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_explicit_shape_spec7420 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_explicit_shape_spec7422 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_explicit_shape_spec_in_explicit_shape_spec_list7457 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_explicit_shape_spec_list7467 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_explicit_shape_spec_in_explicit_shape_spec_list7469 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COLON_in_deferred_shape_spec_list7513 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_deferred_shape_spec_list7524 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_deferred_shape_spec_list7526 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_IN_in_intent_spec7550 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OUT_in_intent_spec7560 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IN_in_intent_spec7570 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_OUT_in_intent_spec7572 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INOUT_in_intent_spec7582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_access_stmt7615 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0044000000000000L});
public static final BitSet FOLLOW_access_spec_in_access_stmt7627 = new BitSet(new long[]{0x2000000020000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_COLON_COLON_in_access_stmt7642 = new BitSet(new long[]{0x0000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_access_id_list_in_access_stmt7656 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_access_stmt7669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_generic_spec_in_access_id7698 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_id_in_access_id_list7725 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_access_id_list7736 = new BitSet(new long[]{0x0000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_access_id_in_access_id_list7738 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_allocatable_stmt7774 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_ALLOCATABLE_in_allocatable_stmt7785 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_allocatable_stmt7789 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_allocatable_decl_list_in_allocatable_stmt7794 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_allocatable_stmt7796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_object_name_in_allocatable_decl7832 = new BitSet(new long[]{0x0000000000000002L,0x0401000000000000L});
public static final BitSet FOLLOW_LPAREN_in_allocatable_decl7844 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_in_allocatable_decl7846 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_allocatable_decl7848 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_allocatable_decl7863 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_coarray_spec_in_allocatable_decl7865 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_allocatable_decl7867 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocatable_decl_in_allocatable_decl_list7907 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_allocatable_decl_list7918 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_allocatable_decl_in_allocatable_decl_list7920 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_asynchronous_stmt7956 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_ASYNCHRONOUS_in_asynchronous_stmt7968 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_asynchronous_stmt7972 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_asynchronous_stmt7977 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_asynchronous_stmt7986 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_bind_stmt8026 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_language_binding_spec_in_bind_stmt8038 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_COLON_COLON_in_bind_stmt8042 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_bind_entity_list_in_bind_stmt8047 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_bind_stmt8056 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_bind_entity8083 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_in_bind_entity8100 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_bind_entity8102 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_bind_entity8104 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_entity_in_bind_entity_list8138 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_bind_entity_list8148 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_bind_entity_in_bind_entity_list8150 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_codimension_stmt8185 = new BitSet(new long[]{0x0000000008000000L});
public static final BitSet FOLLOW_CODIMENSION_in_codimension_stmt8196 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_codimension_stmt8200 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_codimension_decl_list_in_codimension_stmt8205 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_codimension_stmt8214 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_codimension_decl8241 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_codimension_decl8243 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_coarray_spec_in_codimension_decl8245 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_codimension_decl8247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_codimension_decl_in_codimension_decl_list8280 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_codimension_decl_list8290 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_codimension_decl_in_codimension_decl_list8292 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_contiguous_stmt8327 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_CONTIGUOUS_in_contiguous_stmt8338 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_contiguous_stmt8342 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_contiguous_stmt8347 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_contiguous_stmt8356 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_data_stmt8396 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_DATA_in_data_stmt8408 = new BitSet(new long[]{0x0000200000800000L,0x0400000080000000L});
public static final BitSet FOLLOW_data_stmt_set_in_data_stmt8410 = new BitSet(new long[]{0x2000200040800000L,0x0400000080000000L});
public static final BitSet FOLLOW_COMMA_in_data_stmt8423 = new BitSet(new long[]{0x0000200000800000L,0x0400000080000000L});
public static final BitSet FOLLOW_data_stmt_set_in_data_stmt8428 = new BitSet(new long[]{0x2000200040800000L,0x0400000080000000L});
public static final BitSet FOLLOW_end_of_stmt_in_data_stmt8441 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_stmt_object_list_in_data_stmt_set8468 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_data_stmt_set8476 = new BitSet(new long[]{0x0000200000810000L,0x44000000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_data_stmt_value_list_in_data_stmt_set8478 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_data_stmt_set8480 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_in_data_stmt_object8512 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_implied_do_in_data_stmt_object8520 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_stmt_object_in_data_stmt_object_list8545 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_data_stmt_object_list8555 = new BitSet(new long[]{0x0000200000800000L,0x0400000080000000L});
public static final BitSet FOLLOW_data_stmt_object_in_data_stmt_object_list8557 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_LPAREN_in_data_implied_do8585 = new BitSet(new long[]{0x0000000000000000L,0x0400000080000000L});
public static final BitSet FOLLOW_data_i_do_object_list_in_data_implied_do8587 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_data_implied_do8596 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_data_implied_do8598 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_data_implied_do8600 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_data_implied_do8602 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_data_implied_do8611 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_data_implied_do8613 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_data_implied_do8624 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_data_implied_do8626 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_data_implied_do8632 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_ref_in_data_i_do_object8666 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_implied_do_in_data_i_do_object8674 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_i_do_object_in_data_i_do_object_list8699 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_data_i_do_object_list8710 = new BitSet(new long[]{0x0000000000000000L,0x0400000080000000L});
public static final BitSet FOLLOW_data_i_do_object_in_data_i_do_object_list8712 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_designator_in_data_stmt_value8757 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_ASTERISK_in_data_stmt_value8760 = new BitSet(new long[]{0x0000200000810000L,0x44000000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_data_stmt_constant_in_data_stmt_value8762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_constant_in_data_stmt_value8774 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_ASTERISK_in_data_stmt_value8777 = new BitSet(new long[]{0x0000200000810000L,0x44000000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_data_stmt_constant_in_data_stmt_value8779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_int_literal_constant_in_data_stmt_value8791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_real_literal_constant_in_data_stmt_value8799 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_complex_literal_constant_in_data_stmt_value8807 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logical_literal_constant_in_data_stmt_value8815 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_data_stmt_value8823 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boz_literal_constant_in_data_stmt_value8831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structure_constructor_in_data_stmt_value8839 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_stmt_value_in_data_stmt_value_list8864 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_data_stmt_value_list8874 = new BitSet(new long[]{0x0000200000810000L,0x44000000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_data_stmt_value_in_data_stmt_value_list8876 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_designator_in_data_stmt_constant8917 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_int_literal_constant_in_data_stmt_constant8925 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_real_literal_constant_in_data_stmt_constant8933 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_complex_literal_constant_in_data_stmt_constant8941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logical_literal_constant_in_data_stmt_constant8949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_data_stmt_constant8957 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boz_literal_constant_in_data_stmt_constant8965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structure_constructor_in_data_stmt_constant8973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_dimension_stmt9004 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_DIMENSION_in_dimension_stmt9015 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_dimension_stmt9019 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_dimension_decl_in_dimension_stmt9031 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_COMMA_in_dimension_stmt9035 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_dimension_decl_in_dimension_stmt9037 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_end_of_stmt_in_dimension_stmt9050 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_dimension_decl9077 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_dimension_decl9079 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_in_dimension_decl9081 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_dimension_decl9083 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_intent_stmt9123 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_INTENT_in_intent_stmt9135 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_intent_stmt9137 = new BitSet(new long[]{0x0000000000000000L,0x0000014000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_intent_spec_in_intent_stmt9139 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_intent_stmt9141 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_intent_stmt9145 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_intent_stmt9150 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_intent_stmt9159 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_optional_stmt9200 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_OPTIONAL_in_optional_stmt9212 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_optional_stmt9216 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_optional_stmt9221 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_optional_stmt9230 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_parameter_stmt9270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_PARAMETER_in_parameter_stmt9281 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_parameter_stmt9283 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_named_constant_def_list_in_parameter_stmt9285 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_parameter_stmt9287 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_parameter_stmt9295 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_named_constant_def9324 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_named_constant_def9326 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_named_constant_def9328 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_named_constant_def_in_named_constant_def_list9363 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_named_constant_def_list9373 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_named_constant_def_in_named_constant_def_list9375 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_pointer_stmt9410 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_POINTER_in_pointer_stmt9422 = new BitSet(new long[]{0x0000000020000000L,0x0400000080000000L});
public static final BitSet FOLLOW_cray_pointer_assoc_list_in_pointer_stmt9432 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_COLON_COLON_in_pointer_stmt9449 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_pointer_decl_list_in_pointer_stmt9454 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_pointer_stmt9473 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_pointer_decl9506 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_pointer_decl9517 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_deferred_shape_spec_list_in_pointer_decl9519 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_pointer_decl9521 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_cray_pointer_assoc9552 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_cray_pointer_assoc9556 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_cray_pointer_assoc9558 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_cray_pointer_assoc9562 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_cray_pointer_assoc9564 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_decl_in_pointer_decl_list9599 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_pointer_decl_list9609 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_pointer_decl_in_pointer_decl_list9611 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_cray_pointer_assoc_in_cray_pointer_assoc_list9641 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_cray_pointer_assoc_list9651 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_cray_pointer_assoc_in_cray_pointer_assoc_list9653 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_protected_stmt9688 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_PROTECTED_in_protected_stmt9699 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_protected_stmt9703 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_protected_stmt9708 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_protected_stmt9716 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_save_stmt9756 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_SAVE_in_save_stmt9768 = new BitSet(new long[]{0x2000000020000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_COLON_COLON_in_save_stmt9774 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_saved_entity_list_in_save_stmt9779 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_save_stmt9793 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_saved_entity9824 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_in_saved_entity9842 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_saved_entity9846 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_saved_entity9848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_saved_entity_in_saved_entity_list9884 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_saved_entity_list9894 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_saved_entity_in_saved_entity_list9896 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_target_stmt9931 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_TARGET_in_target_stmt9942 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_target_stmt9946 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_target_decl_list_in_target_stmt9951 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_target_stmt9959 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_target_decl9992 = new BitSet(new long[]{0x0000000000000002L,0x0401000000000000L});
public static final BitSet FOLLOW_LPAREN_in_target_decl10002 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_array_spec_in_target_decl10004 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_target_decl10006 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_target_decl10020 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000002001000000L});
public static final BitSet FOLLOW_coarray_spec_in_target_decl10022 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_target_decl10024 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_target_decl_in_target_decl_list10064 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_target_decl_list10075 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_target_decl_in_target_decl_list10077 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_value_stmt10112 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_VALUE_in_value_stmt10123 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_value_stmt10127 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_value_stmt10132 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_value_stmt10141 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_volatile_stmt10181 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_VOLATILE_in_volatile_stmt10193 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_volatile_stmt10197 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_volatile_stmt10202 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_volatile_stmt10211 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_implicit_stmt10247 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_IMPLICIT_in_implicit_stmt10259 = new BitSet(new long[]{0x0007000102400000L,0x0200040000000000L,0x1000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_implicit_spec_list_in_implicit_stmt10268 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_implicit_stmt10277 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_implicit_stmt10299 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_IMPLICIT_in_implicit_stmt10311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
public static final BitSet FOLLOW_NONE_in_implicit_stmt10313 = new BitSet(new long[]{0x2000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_implicit_stmt10323 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L,0x0000000000000000L,0x0000000002000002L});
public static final BitSet FOLLOW_implicit_none_spec_in_implicit_stmt10330 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_implicit_stmt10334 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_implicit_stmt10345 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_type_spec_in_implicit_spec10374 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_implicit_spec10376 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_letter_spec_list_in_implicit_spec10378 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_implicit_spec10380 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_implicit_spec_in_implicit_spec_list10415 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_implicit_spec_list10423 = new BitSet(new long[]{0x0007000102400000L,0x0200040000000000L,0x1000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_implicit_spec_in_implicit_spec_list10425 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_IDENT_in_letter_spec10452 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000000L});
public static final BitSet FOLLOW_MINUS_in_letter_spec10456 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_letter_spec10460 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_letter_spec_in_letter_spec_list10499 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_letter_spec_list10509 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_letter_spec_in_letter_spec_list10511 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_EXTERNAL_in_implicit_none_spec10539 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_implicit_none_spec10549 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_import_stmt10581 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_IMPORT_in_import_stmt10592 = new BitSet(new long[]{0x2000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_import_stmt10598 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_import_stmt10603 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_import_stmt10616 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_import_stmt10637 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_IMPORT_in_import_stmt10648 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_import_stmt10650 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_ONLY_in_import_stmt10652 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_import_stmt10654 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_import_stmt10656 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_import_stmt10665 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_import_stmt10686 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_IMPORT_in_import_stmt10697 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_import_stmt10699 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
public static final BitSet FOLLOW_NONE_in_import_stmt10701 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_import_stmt10710 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_import_stmt10731 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_IMPORT_in_import_stmt10742 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_import_stmt10744 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_ALL_in_import_stmt10746 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_import_stmt10755 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_namelist_stmt10796 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_NAMELIST_in_namelist_stmt10807 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_namelist_stmt10809 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_namelist_stmt10813 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_namelist_stmt10815 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_namelist_group_object_list_in_namelist_stmt10833 = new BitSet(new long[]{0x2000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_COMMA_in_namelist_stmt10845 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_namelist_stmt10850 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_namelist_stmt10854 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_namelist_stmt10856 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_namelist_group_object_list_in_namelist_stmt10882 = new BitSet(new long[]{0x2000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_end_of_stmt_in_namelist_stmt10902 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_namelist_group_object_list10941 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_namelist_group_object_list10953 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_namelist_group_object_list10957 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_equivalence_stmt11003 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_EQUIVALENCE_in_equivalence_stmt11014 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_equivalence_set_list_in_equivalence_stmt11016 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_equivalence_stmt11024 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_equivalence_set11053 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_equivalence_object_in_equivalence_set11055 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_equivalence_set11057 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_equivalence_object_list_in_equivalence_set11059 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_equivalence_set11061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_equivalence_set_in_equivalence_set_list11092 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_equivalence_set_list11103 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_equivalence_set_in_equivalence_set_list11105 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_substring_in_equivalence_object11139 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_equivalence_object_in_equivalence_object_list11166 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_equivalence_object_list11177 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_equivalence_object_in_equivalence_object_list11179 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_common_stmt11215 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_COMMON_in_common_stmt11226 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000500L});
public static final BitSet FOLLOW_common_block_name_in_common_stmt11232 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_common_block_object_list_in_common_stmt11254 = new BitSet(new long[]{0x2000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000500L});
public static final BitSet FOLLOW_COMMA_in_common_stmt11266 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000500L});
public static final BitSet FOLLOW_common_block_name_in_common_stmt11273 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_common_block_object_list_in_common_stmt11295 = new BitSet(new long[]{0x2000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000500L});
public static final BitSet FOLLOW_end_of_stmt_in_common_stmt11309 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_SLASH_in_common_block_name11341 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_in_common_block_name11351 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_IDENT_in_common_block_name11354 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_SLASH_in_common_block_name11358 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_common_block_object11383 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_common_block_object11393 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_explicit_shape_spec_list_in_common_block_object11395 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_common_block_object11397 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_common_block_object_in_common_block_object_list11436 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_common_block_object_list11446 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_common_block_object_in_common_block_object_list11448 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_CIVL_PRIMITIVE_in_quantified_expr11473 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_quantified_expr11475 = new BitSet(new long[]{0x0007000100400000L,0x0200040000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_intrinsic_type_spec_in_quantified_expr11477 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_entity_decl_list_in_quantified_expr11479 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_quantified_expr11486 = new BitSet(new long[]{0x0000300001810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_quantified_expr_in_quantified_expr11489 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_quantified_expr11491 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_quantified_expr11499 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_quantified_expr11501 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CIVL_PRIMITIVE_in_civl_stmt11522 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_civl_stmt11524 = new BitSet(new long[]{0x0000300001810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000002L});
public static final BitSet FOLLOW_expr_in_civl_stmt11532 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_quantified_expr_in_civl_stmt11541 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_civl_stmt11551 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_pragma_type_qualifier_stmt11579 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_pragma_type_qualifier_stmt11581 = new BitSet(new long[]{0x0000000001000000L});
public static final BitSet FOLLOW_CIVL_PRIMITIVE_in_pragma_type_qualifier_stmt11583 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_pragma_type_qualifier_stmt11585 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_pragma_stmt11622 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_pragma_stmt11624 = new BitSet(new long[]{0xDFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x000001FFFFFFFFFFL});
public static final BitSet FOLLOW_pragma_tokens_in_pragma_stmt11627 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_civl_stmt_in_pragma_stmt11629 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_pragma_stmt11634 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_pragma_tokens11675 = new BitSet(new long[]{0xDFFFFFFFFEFFFFF2L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x000001FFFFFFFFFFL});
public static final BitSet FOLLOW_data_ref_in_designator11731 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_designator11734 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_substring_range_in_designator11736 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_designator11740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_designator11760 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_designator11762 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_substring_range_in_designator11764 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_designator11766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_ref_in_designator_or_func_ref11805 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_designator_or_func_ref11816 = new BitSet(new long[]{0x0000300010811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_substring_range_or_arg_list_in_designator_or_func_ref11818 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_designator_or_func_ref11820 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_designator_or_func_ref11859 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_designator_or_func_ref11861 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_substring_range_in_designator_or_func_ref11863 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_designator_or_func_ref11865 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_substring_range_or_arg_list11904 = new BitSet(new long[]{0x0000300000810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_substring_range_or_arg_list11907 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_substring_range_or_arg_list11930 = new BitSet(new long[]{0x0000000050000000L});
public static final BitSet FOLLOW_substr_range_or_arg_list_suffix_in_substring_range_or_arg_list11932 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_substring_range_or_arg_list11950 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_substring_range_or_arg_list11952 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_substring_range_or_arg_list11954 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_substring_range_or_arg_list11976 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_actual_arg_spec_in_substring_range_or_arg_list11978 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_IDENT_in_substring_range_or_arg_list12003 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_substring_range_or_arg_list12005 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_substring_range_or_arg_list12012 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_label_in_substring_range_or_arg_list12016 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_substring_range_or_arg_list12037 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_actual_arg_spec_in_substring_range_or_arg_list12039 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COLON_in_substr_range_or_arg_list_suffix12093 = new BitSet(new long[]{0x0000300000810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_substr_range_or_arg_list_suffix12096 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_substr_range_or_arg_list_suffix12132 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_actual_arg_spec_in_substr_range_or_arg_list_suffix12134 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_designator_in_variable12169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_in_logical_variable12201 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_in_char_variable12229 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_in_default_char_variable12257 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_in_int_variable12286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_ref_in_substring12323 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_substring12333 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_substring_range_in_substring12335 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_substring12337 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_substring12349 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_substring12358 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_substring_range_in_substring12360 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_substring12362 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_substring_range12391 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_substring_range12397 = new BitSet(new long[]{0x0000300000810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_substring_range12400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_part_ref_in_data_ref12441 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_PERCENT_in_data_ref12451 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_part_ref_in_data_ref12453 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_IDENT_in_part_ref12510 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_part_ref12512 = new BitSet(new long[]{0x0000300070811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_section_subscript_list_in_part_ref12514 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_part_ref12516 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
public static final BitSet FOLLOW_image_selector_in_part_ref12529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_part_ref12570 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_image_selector_in_part_ref12572 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_part_ref12590 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_part_ref_no_image_selector12651 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_part_ref_no_image_selector12653 = new BitSet(new long[]{0x0000300070811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_section_subscript_list_in_part_ref_no_image_selector12655 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_part_ref_no_image_selector12657 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_part_ref_no_image_selector12675 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_section_subscript12736 = new BitSet(new long[]{0x0000000030000000L});
public static final BitSet FOLLOW_section_subscript_ambiguous_in_section_subscript12738 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_section_subscript12746 = new BitSet(new long[]{0x0000300010810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_section_subscript12749 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_section_subscript12756 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_section_subscript12758 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_COLON_in_section_subscript12780 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_section_subscript12782 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_section_subscript12800 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_section_subscript12802 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_section_subscript12804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_section_subscript12827 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_section_subscript12829 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_section_subscript12831 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_label_in_section_subscript12835 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_section_subscript12854 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_label_in_section_subscript12858 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_section_subscript_ambiguous12932 = new BitSet(new long[]{0x0000300010810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_section_subscript_ambiguous12935 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_section_subscript_ambiguous12942 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_section_subscript_ambiguous12944 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_COLON_in_section_subscript_ambiguous12964 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_section_subscript_ambiguous12966 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_section_subscript_in_section_subscript_list13008 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_section_subscript_list13019 = new BitSet(new long[]{0x0000300070811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_section_subscript_in_section_subscript_list13021 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_LBRACKET_in_image_selector13051 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_cosubscript_list_in_image_selector13053 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_image_selector13056 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000010000201000L});
public static final BitSet FOLLOW_image_selector_spec_list_in_image_selector13058 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_image_selector13064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_cosubscript_list13101 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_cosubscript_list13111 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_cosubscript_list13113 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_STAT_in_image_selector_spec13137 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_image_selector_spec13139 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_designator_in_image_selector_spec13141 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TEAM_in_image_selector_spec13159 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_image_selector_spec13161 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_image_selector_spec13163 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TEAM_NUMBER_in_image_selector_spec13181 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_image_selector_spec13183 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_image_selector_spec13185 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_image_selector_spec_in_image_selector_spec_list13221 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_image_selector_spec_list13231 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000010000201000L});
public static final BitSet FOLLOW_image_selector_spec_in_image_selector_spec_list13233 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_allocate_stmt13268 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_M_ALLOCATE_STMT_1_in_allocate_stmt13280 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_ALLOCATE_in_allocate_stmt13282 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_allocate_stmt13284 = new BitSet(new long[]{0x0007000100400000L,0x0200040080000000L,0x1000000000000000L});
public static final BitSet FOLLOW_type_spec_in_allocate_stmt13293 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_allocate_stmt13295 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_allocation_list_in_allocate_stmt13297 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_allocate_stmt13307 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L,0x0000000000000002L,0x0000000000001800L});
public static final BitSet FOLLOW_alloc_opt_list_in_allocate_stmt13309 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_allocate_stmt13316 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_allocate_stmt13325 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_allocate_stmt13346 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_ALLOCATE_in_allocate_stmt13358 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_allocate_stmt13360 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_allocation_list_in_allocate_stmt13362 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_allocate_stmt13372 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L,0x0000000000000002L,0x0000000000001800L});
public static final BitSet FOLLOW_alloc_opt_list_in_allocate_stmt13374 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_allocate_stmt13381 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_allocate_stmt13389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ERRMSG_in_alloc_opt13418 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_alloc_opt13420 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_default_char_variable_in_alloc_opt13422 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MOLD_in_alloc_opt13440 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_alloc_opt13442 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_alloc_opt13444 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SOURCE_in_alloc_opt13462 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_alloc_opt13464 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_alloc_opt13466 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAT_in_alloc_opt13484 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_alloc_opt13486 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_designator_in_alloc_opt13488 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alloc_opt_in_alloc_opt_list13523 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_alloc_opt_list13533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L,0x0000000000000002L,0x0000000000001800L});
public static final BitSet FOLLOW_alloc_opt_in_alloc_opt_list13535 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_allocate_object_in_allocation13582 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_allocation13584 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_allocate_coarray_spec_in_allocation13586 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_allocation13588 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_object_in_allocation13635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocation_in_allocation_list13669 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_allocation_list13679 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_allocation_in_allocation_list13681 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_part_ref_no_image_selector_in_allocate_object13713 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_PERCENT_in_allocate_object13722 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_part_ref_no_image_selector_in_allocate_object13724 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_allocate_object_in_allocate_object_list13753 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_allocate_object_list13763 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_allocate_object_in_allocate_object_list13765 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_allocate_shape_spec13793 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_allocate_shape_spec13796 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_allocate_shape_spec13798 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_shape_spec_in_allocate_shape_spec_list13835 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_allocate_shape_spec_list13845 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_allocate_shape_spec_in_allocate_shape_spec_list13847 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_ASTERISK_in_allocate_coarray_spec13891 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_allocate_coarray_spec13909 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_allocate_coarray_spec13911 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_allocate_coarray_spec13913 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_allocate_coshape_spec13938 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_allocate_coshape_spec13942 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_allocate_coshape_spec13944 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_coshape_spec_in_allocate_coshape_spec_list13982 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_allocate_coshape_spec_list13991 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_allocate_coshape_spec_in_allocate_coshape_spec_list13993 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_nullify_stmt14027 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_NULLIFY_in_nullify_stmt14038 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_nullify_stmt14040 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_pointer_object_list_in_nullify_stmt14042 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_nullify_stmt14044 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_nullify_stmt14052 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_ref_in_pointer_object14081 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_object_in_pointer_object_list14114 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_pointer_object_list14124 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_pointer_object_in_pointer_object_list14126 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_deallocate_stmt14161 = new BitSet(new long[]{0x0000020000000000L});
public static final BitSet FOLLOW_DEALLOCATE_in_deallocate_stmt14172 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_deallocate_stmt14174 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_allocate_object_list_in_deallocate_stmt14176 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_deallocate_stmt14186 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_dealloc_opt_list_in_deallocate_stmt14188 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_deallocate_stmt14194 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_deallocate_stmt14202 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAT_in_dealloc_opt14235 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_dealloc_opt14237 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_designator_in_dealloc_opt14239 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ERRMSG_in_dealloc_opt14257 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_dealloc_opt14259 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_default_char_variable_in_dealloc_opt14261 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dealloc_opt_in_dealloc_opt_list14296 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_dealloc_opt_list14306 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_dealloc_opt_in_dealloc_opt_list14308 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_designator_or_func_ref_in_primary14344 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_constant_in_primary14352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_array_constructor_in_primary14360 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structure_constructor_in_primary14368 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primary14376 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_primary14378 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_primary14380 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_defined_unary_op_in_level_1_expr14404 = new BitSet(new long[]{0x0000200000810000L,0x04010000C0002000L,0x0000000020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_primary_in_level_1_expr14417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFINED_OP_in_defined_unary_op14450 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_level_1_expr_in_power_operand14475 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_power_op_in_power_operand14486 = new BitSet(new long[]{0x0000300000810000L,0x04010000C0002000L,0x0000000020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_power_operand_in_power_operand14488 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_power_operand_in_mult_operand14525 = new BitSet(new long[]{0x0000000000001002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_mult_op_in_mult_operand14536 = new BitSet(new long[]{0x0000300000810000L,0x04010000C0002000L,0x0000000020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_power_operand_in_mult_operand14538 = new BitSet(new long[]{0x0000000000001002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_add_op_in_signed_operand14591 = new BitSet(new long[]{0x0000300000810000L,0x04010000C0002000L,0x0000000020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_mult_operand_in_signed_operand14602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_operand_in_add_operand14634 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000000L,0x0000040000000000L});
public static final BitSet FOLLOW_add_op_in_add_operand14646 = new BitSet(new long[]{0x0000300000810000L,0x04010000C0002000L,0x0000000020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_mult_operand_in_add_operand14648 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000000L,0x0000040000000000L});
public static final BitSet FOLLOW_add_operand_in_level_2_expr14703 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_concat_op_in_level_2_expr14714 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_add_operand_in_level_2_expr14716 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_POWER_in_power_op14771 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_mult_op14796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_in_mult_op14806 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_add_op14831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_add_op14841 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_level_2_expr_in_level_3_expr14866 = new BitSet(new long[]{0x4000000000000002L,0x081A000038800004L,0x0000000000080000L,0x0000000000000200L});
public static final BitSet FOLLOW_rel_op_in_level_3_expr14876 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_level_2_expr_in_level_3_expr14878 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_SLASH_in_concat_op14919 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQ_in_rel_op14947 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NE_in_rel_op14957 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_rel_op14967 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LE_in_rel_op14977 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GT_in_rel_op14987 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GE_in_rel_op14997 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQ_EQ_in_rel_op15007 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_EQ_in_rel_op15017 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESSTHAN_in_rel_op15027 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESSTHAN_EQ_in_rel_op15037 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GREATERTHAN_in_rel_op15047 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GREATERTHAN_EQ_in_rel_op15057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_not_op_in_and_operand15087 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_level_3_expr_in_and_operand15092 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_and_op_in_and_operand15102 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_not_op_in_and_operand15108 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_level_3_expr_in_and_operand15113 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_and_operand_in_or_operand15167 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_or_op_in_or_operand15170 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_and_operand_in_or_operand15172 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_or_operand_in_equiv_operand15209 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L,0x0000000000100000L});
public static final BitSet FOLLOW_equiv_op_in_equiv_operand15220 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_or_operand_in_equiv_operand15222 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L,0x0000000000100000L});
public static final BitSet FOLLOW_equiv_operand_in_level_5_expr15276 = new BitSet(new long[]{0x0000100000000002L});
public static final BitSet FOLLOW_defined_binary_op_in_level_5_expr15287 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_equiv_operand_in_level_5_expr15289 = new BitSet(new long[]{0x0000100000000002L});
public static final BitSet FOLLOW_NOT_in_not_op15343 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_and_op15369 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_or_op15394 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQV_in_equiv_op15419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEQV_in_equiv_op15429 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_level_5_expr_in_expr15450 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFINED_OP_in_defined_binary_op15475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_assignment_stmt15510 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_M_ASSIGNMENT_STMT_in_assignment_stmt15521 = new BitSet(new long[]{0x0000200000800000L,0x0000000080000000L});
public static final BitSet FOLLOW_variable_in_assignment_stmt15523 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_assignment_stmt15525 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_assignment_stmt15527 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_assignment_stmt15536 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_pointer_assignment_stmt15583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_M_PTR_ASSIGNMENT_STMT_in_pointer_assignment_stmt15595 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_data_ref_in_pointer_assignment_stmt15597 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_pointer_assignment_stmt15599 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_pointer_assignment_stmt15601 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_pointer_assignment_stmt15609 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_pointer_assignment_stmt15630 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_M_PTR_ASSIGNMENT_STMT_in_pointer_assignment_stmt15641 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_data_ref_in_pointer_assignment_stmt15643 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_pointer_assignment_stmt15652 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_bounds_spec_list_in_pointer_assignment_stmt15654 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_pointer_assignment_stmt15656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_pointer_assignment_stmt15658 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_pointer_assignment_stmt15660 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_pointer_assignment_stmt15669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_pointer_assignment_stmt15690 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_M_PTR_ASSIGNMENT_STMT_in_pointer_assignment_stmt15702 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_data_ref_in_pointer_assignment_stmt15704 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_pointer_assignment_stmt15713 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_bounds_remapping_list_in_pointer_assignment_stmt15715 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_pointer_assignment_stmt15717 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_pointer_assignment_stmt15719 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_pointer_assignment_stmt15721 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_pointer_assignment_stmt15730 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_in_data_pointer_object15759 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_bounds_spec15780 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_bounds_spec15782 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bounds_spec_in_bounds_spec_list15809 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_bounds_spec_list15819 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_bounds_spec_in_bounds_spec_list15821 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_bounds_remapping15845 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_bounds_remapping15847 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_bounds_remapping15849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bounds_remapping_in_bounds_remapping_list15884 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_bounds_remapping_list15894 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_bounds_remapping_in_bounds_remapping_list15896 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_designator_in_proc_pointer_object15923 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_where_stmt15961 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_M_WHERE_STMT_in_where_stmt15972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_WHERE_in_where_stmt15974 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_where_stmt15976 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_where_stmt15978 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_where_stmt15980 = new BitSet(new long[]{0x0000200000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_assignment_stmt_in_where_stmt15989 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_where_construct_stmt_in_where_construct16023 = new BitSet(new long[]{0x0340200000000000L,0x0000000080000000L,0x0000000000030008L});
public static final BitSet FOLLOW_where_body_construct_in_where_construct16033 = new BitSet(new long[]{0x0340200000000000L,0x0000000080000000L,0x0000000000030008L});
public static final BitSet FOLLOW_masked_elsewhere_stmt_in_where_construct16049 = new BitSet(new long[]{0x0340200000000000L,0x0000000080000000L,0x0000000000030008L});
public static final BitSet FOLLOW_where_body_construct_in_where_construct16053 = new BitSet(new long[]{0x0340200000000000L,0x0000000080000000L,0x0000000000030008L});
public static final BitSet FOLLOW_elsewhere_stmt_in_where_construct16090 = new BitSet(new long[]{0x0200200000000000L,0x0000000080000000L,0x0000000000030008L});
public static final BitSet FOLLOW_where_body_construct_in_where_construct16094 = new BitSet(new long[]{0x0200200000000000L,0x0000000080000000L,0x0000000000030008L});
public static final BitSet FOLLOW_end_where_stmt_in_where_construct16128 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_where_construct_stmt16167 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_where_construct_stmt16169 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_M_WHERE_CONSTRUCT_STMT_in_where_construct_stmt16182 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_WHERE_in_where_construct_stmt16184 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_where_construct_stmt16186 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_where_construct_stmt16188 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_where_construct_stmt16190 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_where_construct_stmt16199 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignment_stmt_in_where_body_construct16233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_where_stmt_in_where_body_construct16241 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_where_construct_in_where_body_construct16249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_masked_elsewhere_stmt16285 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_ELSE_in_masked_elsewhere_stmt16296 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_WHERE_in_masked_elsewhere_stmt16298 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_masked_elsewhere_stmt16300 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_masked_elsewhere_stmt16302 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_masked_elsewhere_stmt16304 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_masked_elsewhere_stmt16308 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_masked_elsewhere_stmt16321 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_masked_elsewhere_stmt16342 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_ELSEWHERE_in_masked_elsewhere_stmt16353 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_masked_elsewhere_stmt16355 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_masked_elsewhere_stmt16357 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_masked_elsewhere_stmt16359 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_masked_elsewhere_stmt16363 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_masked_elsewhere_stmt16375 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_elsewhere_stmt16416 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_ELSE_in_elsewhere_stmt16428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_WHERE_in_elsewhere_stmt16430 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_elsewhere_stmt16433 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_elsewhere_stmt16446 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_elsewhere_stmt16467 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_ELSEWHERE_in_elsewhere_stmt16479 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_elsewhere_stmt16482 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_elsewhere_stmt16494 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_where_stmt16534 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_where_stmt16545 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_WHERE_in_end_where_stmt16547 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_where_stmt16551 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_where_stmt16564 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_construct_stmt_in_forall_construct16597 = new BitSet(new long[]{0x0200200000000000L,0x0000000080000000L,0x0000000000034308L});
public static final BitSet FOLLOW_forall_body_construct_in_forall_construct16607 = new BitSet(new long[]{0x0200200000000000L,0x0000000080000000L,0x0000000000034308L});
public static final BitSet FOLLOW_end_forall_stmt_in_forall_construct16618 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_forall_construct_stmt16648 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000100L});
public static final BitSet FOLLOW_IDENT_in_forall_construct_stmt16662 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_forall_construct_stmt16664 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_M_FORALL_CONSTRUCT_STMT_in_forall_construct_stmt16677 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_FORALL_in_forall_construct_stmt16679 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_concurrent_header_in_forall_construct_stmt16681 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_forall_construct_stmt16690 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_assignment_stmt_in_forall_body_construct16725 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_where_stmt_in_forall_body_construct16733 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_where_construct_in_forall_body_construct16741 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_construct_in_forall_body_construct16749 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_stmt_in_forall_body_construct16757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignment_stmt_in_forall_assignment_stmt16780 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_assignment_stmt_in_forall_assignment_stmt16798 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_forall_stmt16838 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_forall_stmt16850 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_FORALL_in_end_forall_stmt16852 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_forall_stmt16856 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_forall_stmt16868 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_forall_stmt16908 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_M_FORALL_STMT_in_forall_stmt16920 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_FORALL_in_forall_stmt16922 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_concurrent_header_in_forall_stmt16924 = new BitSet(new long[]{0x0000200000000000L,0x0000000000000000L,0x0000000000004008L});
public static final BitSet FOLLOW_forall_assignment_stmt_in_forall_stmt16926 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_execution_part_construct_in_block16966 = new BitSet(new long[]{0x0600A3D0040A4902L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_associate_stmt_in_associate_construct16989 = new BitSet(new long[]{0x0600A3D0040A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_associate_construct16997 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_associate_stmt_in_associate_construct17005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_associate_stmt17046 = new BitSet(new long[]{0x0000000000000800L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_associate_stmt17059 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_associate_stmt17061 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_ASSOCIATE_in_associate_stmt17074 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_associate_stmt17076 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_association_list_in_associate_stmt17078 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_associate_stmt17080 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_associate_stmt17089 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_association17118 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_association17120 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_selector_in_association17122 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_association_in_association_list17157 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_association_list17167 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_association_in_association_list17169 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_selector17193 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_associate_stmt17225 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_associate_stmt17236 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_ASSOCIATE_in_end_associate_stmt17238 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_associate_stmt17241 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_associate_stmt17254 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_stmt_in_block_construct17287 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200361186090500L,0x986E48109003570CL,0x00000009A212403DL});
public static final BitSet FOLLOW_specification_part_and_block_in_block_construct17295 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_block_stmt_in_block_construct17304 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_block_stmt17334 = new BitSet(new long[]{0x0000000000020000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_block_stmt17347 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_block_stmt17349 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_BLOCK_in_block_stmt17355 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_block_stmt17364 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_use_stmt_in_specification_part_and_block17400 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200361186090500L,0x986E48109003570CL,0x00000009A212403DL});
public static final BitSet FOLLOW_import_stmt_in_specification_part_and_block17416 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200361186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_specification_part_and_block17430 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_entry_stmt_in_declaration_construct_and_block17482 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17484 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enum_def_in_declaration_construct_and_block17513 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17515 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_format_stmt_in_declaration_construct_and_block17544 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17546 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interface_block_in_declaration_construct_and_block17575 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17577 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameter_stmt_in_declaration_construct_and_block17606 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedure_declaration_stmt_in_declaration_construct_and_block17638 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17640 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derived_type_def_in_declaration_construct_and_block17664 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17666 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_declaration_stmt_in_declaration_construct_and_block17690 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17692 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_stmt_in_declaration_construct_and_block17721 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17723 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocatable_stmt_in_declaration_construct_and_block17752 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17755 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_asynchronous_stmt_in_declaration_construct_and_block17785 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17787 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bind_stmt_in_declaration_construct_and_block17816 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17818 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_codimension_stmt_in_declaration_construct_and_block17847 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_stmt_in_declaration_construct_and_block17879 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dimension_stmt_in_declaration_construct_and_block17910 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_external_stmt_in_declaration_construct_and_block17941 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17943 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_intrinsic_stmt_in_declaration_construct_and_block17972 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block17974 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_stmt_in_declaration_construct_and_block18004 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_stmt_in_declaration_construct_and_block18035 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18037 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_save_stmt_in_declaration_construct_and_block18067 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18069 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_target_stmt_in_declaration_construct_and_block18099 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18101 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_volatile_stmt_in_declaration_construct_and_block18131 = new BitSet(new long[]{0x0E07E3D10E4AE990L,0x0200360186090500L,0x986E48109003570CL,0x000000098212403DL});
public static final BitSet FOLLOW_declaration_construct_and_block_in_declaration_construct_and_block18133 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_in_declaration_construct_and_block18141 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_block_stmt18176 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_block_stmt18188 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_BLOCK_in_end_block_stmt18190 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_block_stmt18193 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_block_stmt18206 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_change_team_stmt_in_change_team_construct18239 = new BitSet(new long[]{0x0600A3D0040A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_change_team_construct18241 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_change_team_stmt_in_change_team_construct18243 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_change_team_stmt18273 = new BitSet(new long[]{0x0000000000200000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_change_team_stmt18286 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_change_team_stmt18288 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_CHANGE_in_change_team_stmt18294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
public static final BitSet FOLLOW_TEAM_in_change_team_stmt18296 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_change_team_stmt18305 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_change_team_stmt18307 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_change_team_stmt18310 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_coarray_association_list_in_change_team_stmt18312 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_change_team_stmt18326 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_sync_stat_list_in_change_team_stmt18328 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_change_team_stmt18335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_codimension_decl_in_coarray_association18364 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_coarray_association18366 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_coarray_association18368 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_coarray_association_in_coarray_association_list18407 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_coarray_association_list18417 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_coarray_association_in_coarray_association_list18419 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_end_change_team_stmt18450 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_change_team_stmt18461 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
public static final BitSet FOLLOW_TEAM_in_end_change_team_stmt18463 = new BitSet(new long[]{0x0000000000000002L,0x0400000080000000L});
public static final BitSet FOLLOW_LPAREN_in_end_change_team_stmt18474 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_sync_stat_list_in_end_change_team_stmt18477 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_end_change_team_stmt18483 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_change_team_stmt18496 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_critical_stmt_in_critical_construct18532 = new BitSet(new long[]{0x0600A3D0040A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_critical_construct18534 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_critical_stmt_in_critical_construct18536 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_critical_stmt18576 = new BitSet(new long[]{0x0000004000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_critical_stmt18588 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_critical_stmt18590 = new BitSet(new long[]{0x0000004000000000L});
public static final BitSet FOLLOW_CRITICAL_in_critical_stmt18596 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_critical_stmt18605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_critical_stmt18645 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_critical_stmt18657 = new BitSet(new long[]{0x0000004000000000L});
public static final BitSet FOLLOW_CRITICAL_in_end_critical_stmt18659 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_critical_stmt18662 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_critical_stmt18675 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_do_stmt_in_do_construct18705 = new BitSet(new long[]{0x0600A3D0040A4900L,0x0000020186090100L,0x880240009003770CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_do_construct18713 = new BitSet(new long[]{0x0200200000000000L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_end_do_in_do_construct18721 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_do_stmt18762 = new BitSet(new long[]{0x0000800000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_do_stmt18776 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_do_stmt18778 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_DO_in_do_stmt18784 = new BitSet(new long[]{0x2000200240000000L,0x0000000080000000L,0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_DIGIT_STR_in_do_stmt18795 = new BitSet(new long[]{0x2000000240000000L,0x0000000080000000L,0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_loop_control_in_do_stmt18810 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_do_stmt18823 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_loop_control18858 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_loop_control18863 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_loop_control18865 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_loop_control18867 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_loop_control18869 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_loop_control18871 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_loop_control18882 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_loop_control18884 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_loop_control18909 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_WHILE_in_loop_control18914 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_loop_control18916 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_loop_control18918 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_loop_control18920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_loop_control18941 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_CONCURRENT_in_loop_control18946 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_concurrent_header_in_loop_control18948 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_concurrent_header18981 = new BitSet(new long[]{0x0007000100400000L,0x0200040080000000L,0x1000000000000000L});
public static final BitSet FOLLOW_intrinsic_type_spec_in_concurrent_header18991 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_concurrent_header18993 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_concurrent_control_list_in_concurrent_header19006 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_concurrent_header19017 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_concurrent_header19019 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_concurrent_header19032 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_concurrent_control19065 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_concurrent_control19067 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_concurrent_control19069 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_concurrent_control19071 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_concurrent_control19073 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_concurrent_control19084 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_concurrent_control19086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_concurrent_control_in_concurrent_control_list19125 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_concurrent_control_list19135 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_concurrent_control_in_concurrent_control_list19137 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_locality_spec_in_concurrent_locality19173 = new BitSet(new long[]{0x0000040000000002L,0x00C0000000000000L,0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LOCAL_in_locality_spec19197 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_locality_spec19199 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_locality_spec19201 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_locality_spec19203 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LOCAL_INT_in_locality_spec19221 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_locality_spec19223 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_locality_spec19225 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_locality_spec19227 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHARED_in_locality_spec19245 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_locality_spec19247 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_locality_spec19249 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_locality_spec19251 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_locality_spec19269 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_locality_spec19271 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
public static final BitSet FOLLOW_NONE_in_locality_spec19273 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_locality_spec19275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_end_do_stmt_in_end_do19308 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_do_term_action_stmt_in_end_do19316 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_do_term_action_stmt19346 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_M_LBL_DO_TERMINAL_in_do_term_action_stmt19350 = new BitSet(new long[]{0x0200229004084100L,0x0000020006010100L,0x880200009002560CL,0x0000000900024001L});
public static final BitSet FOLLOW_action_stmt_in_do_term_action_stmt19360 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_END_in_do_term_action_stmt19373 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_DO_in_do_term_action_stmt19375 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_do_term_action_stmt19391 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_do_term_action_stmt19416 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_do_stmt19464 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_do_stmt19476 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_DO_in_end_do_stmt19478 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_do_stmt19482 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_do_stmt19496 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_cycle_stmt19536 = new BitSet(new long[]{0x0000008000000000L});
public static final BitSet FOLLOW_CYCLE_in_cycle_stmt19548 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_cycle_stmt19551 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_cycle_stmt19564 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_if_then_stmt_in_if_construct19601 = new BitSet(new long[]{0x06C0A3D0040A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_if_construct19603 = new BitSet(new long[]{0x02C0200000000000L});
public static final BitSet FOLLOW_else_if_stmt_in_if_construct19614 = new BitSet(new long[]{0x06C0A3D0040A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_if_construct19616 = new BitSet(new long[]{0x02C0200000000000L});
public static final BitSet FOLLOW_else_stmt_in_if_construct19632 = new BitSet(new long[]{0x0600A3D0040A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_if_construct19634 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_if_stmt_in_if_construct19647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_if_then_stmt19673 = new BitSet(new long[]{0x0000000000000000L,0x0000000180000000L});
public static final BitSet FOLLOW_IDENT_in_if_then_stmt19688 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_if_then_stmt19690 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_IF_in_if_then_stmt19701 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_if_then_stmt19703 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_if_then_stmt19705 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_if_then_stmt19707 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_THEN_in_if_then_stmt19709 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_if_then_stmt19718 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_else_if_stmt19754 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_ELSE_in_else_if_stmt19766 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_IF_in_else_if_stmt19768 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_else_if_stmt19770 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_else_if_stmt19772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_else_if_stmt19774 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_THEN_in_else_if_stmt19776 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_else_if_stmt19789 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_else_if_stmt19801 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_else_if_stmt19822 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_ELSEIF_in_else_if_stmt19833 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_else_if_stmt19835 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_else_if_stmt19837 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_else_if_stmt19839 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_THEN_in_else_if_stmt19841 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_else_if_stmt19854 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_else_if_stmt19866 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_else_stmt19902 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_ELSE_in_else_stmt19913 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_else_stmt19919 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_else_stmt19930 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_if_stmt19966 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_if_stmt19977 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_IF_in_end_if_stmt19979 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_if_stmt19985 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_if_stmt19997 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_if_stmt20037 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_M_IF_STMT_in_if_stmt20049 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_IF_in_if_stmt20051 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_if_stmt20053 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_if_stmt20055 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_if_stmt20057 = new BitSet(new long[]{0x0200229004084100L,0x0000020006010100L,0x880200009002560CL,0x0000000900024001L});
public static final BitSet FOLLOW_action_stmt_in_if_stmt20066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_case_stmt_in_case_construct20100 = new BitSet(new long[]{0x0200200000100000L});
public static final BitSet FOLLOW_case_stmt_in_case_construct20104 = new BitSet(new long[]{0x0600A3D0041A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_case_construct20106 = new BitSet(new long[]{0x0200200000100000L});
public static final BitSet FOLLOW_end_select_stmt_in_case_construct20111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_case_stmt20141 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000018L});
public static final BitSet FOLLOW_IDENT_in_select_case_stmt20154 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_select_case_stmt20156 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000018L});
public static final BitSet FOLLOW_SELECT_in_select_case_stmt20170 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_CASE_in_select_case_stmt20172 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_SELECTCASE_in_select_case_stmt20184 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_select_case_stmt20197 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_select_case_stmt20199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_select_case_stmt20201 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_select_case_stmt20210 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_case_stmt20254 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_CASE_in_case_stmt20265 = new BitSet(new long[]{0x0000040000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_case_selector_in_case_stmt20267 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_case_stmt20271 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_case_stmt20284 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_select_stmt20324 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_select_stmt20335 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_SELECT_in_end_select_stmt20337 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_select_stmt20340 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_select_stmt20353 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_case_selector20385 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_case_value_range_list_in_case_selector20387 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_case_selector20389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_case_selector20407 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_case_value_range20440 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_case_value_in_case_value_range20442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_case_value_in_case_value_range20450 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_case_value_range_suffix_in_case_value_range20452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_case_value_range_suffix20473 = new BitSet(new long[]{0x0000300000810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_case_value_in_case_value_range_suffix20477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_case_value_range_in_case_value_range_list20513 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_case_value_range_list20525 = new BitSet(new long[]{0x0000300010810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_case_value_range_in_case_value_range_list20527 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_case_value20551 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_rank_stmt_in_select_rank_construct20572 = new BitSet(new long[]{0x0200200000000000L,0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_select_rank_case_stmt_in_select_rank_construct20581 = new BitSet(new long[]{0x0600A3D0040A4900L,0x0000020186090100L,0x8A0240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_block_in_select_rank_construct20583 = new BitSet(new long[]{0x0200200000000000L,0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_end_select_rank_stmt_in_select_rank_construct20593 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_rank_stmt20629 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_IDENT_in_select_rank_stmt20643 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_select_rank_stmt20645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_SELECT_in_select_rank_stmt20655 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_RANK_in_select_rank_stmt20657 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_select_rank_stmt20659 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_IDENT_in_select_rank_stmt20671 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_select_rank_stmt20673 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_selector_in_select_rank_stmt20677 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_select_rank_stmt20679 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_select_rank_stmt20687 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_rank_stmt20708 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_IDENT_in_select_rank_stmt20723 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_select_rank_stmt20725 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SELECTRANK_in_select_rank_stmt20735 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_select_rank_stmt20737 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_IDENT_in_select_rank_stmt20749 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_select_rank_stmt20751 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_selector_in_select_rank_stmt20755 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_select_rank_stmt20757 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_select_rank_stmt20765 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_rank_case_stmt20801 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_RANK_in_select_rank_case_stmt20813 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_select_rank_case_stmt20815 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_select_rank_case_stmt20817 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_select_rank_case_stmt20819 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_select_rank_case_stmt20823 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_rank_case_stmt20849 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_RANK_in_select_rank_case_stmt20860 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_select_rank_case_stmt20862 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_select_rank_case_stmt20864 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_select_rank_case_stmt20866 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_select_rank_case_stmt20870 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_rank_case_stmt20895 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_RANK_in_select_rank_case_stmt20906 = new BitSet(new long[]{0x0000040000000000L});
public static final BitSet FOLLOW_DEFAULT_in_select_rank_case_stmt20908 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_select_rank_case_stmt20912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_select_rank_stmt20956 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_select_rank_stmt20968 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_SELECT_in_end_select_rank_stmt20970 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_select_rank_stmt20974 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_select_rank_stmt20988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_type_stmt_in_select_type_construct21017 = new BitSet(new long[]{0x0200200002000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_type_guard_stmt_in_select_type_construct21021 = new BitSet(new long[]{0x0600A3D0060A4900L,0x0000020186090100L,0x880240009003570CL,0x0000000902024039L});
public static final BitSet FOLLOW_block_in_select_type_construct21023 = new BitSet(new long[]{0x0200200002000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_end_select_type_stmt_in_select_type_construct21035 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_type_stmt21072 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_IDENT_in_select_type_stmt21085 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_select_type_stmt21087 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_SELECT_in_select_type_stmt21098 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_TYPE_in_select_type_stmt21100 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_select_type_stmt21102 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_IDENT_in_select_type_stmt21114 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_select_type_stmt21116 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_selector_in_select_type_stmt21120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_select_type_stmt21122 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_select_type_stmt21131 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_select_type_stmt21152 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_IDENT_in_select_type_stmt21166 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_select_type_stmt21168 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_SELECTTYPE_in_select_type_stmt21179 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_select_type_stmt21181 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_IDENT_in_select_type_stmt21193 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_select_type_stmt21195 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_selector_in_select_type_stmt21199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_select_type_stmt21201 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_select_type_stmt21210 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_type_guard_stmt21250 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_TYPE_in_type_guard_stmt21262 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_IS_in_type_guard_stmt21264 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_type_guard_stmt21266 = new BitSet(new long[]{0x0007000100400000L,0x0200040080000000L,0x1000000000000000L});
public static final BitSet FOLLOW_type_spec_in_type_guard_stmt21268 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_type_guard_stmt21270 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_type_guard_stmt21280 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_guard_stmt21294 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_type_guard_stmt21315 = new BitSet(new long[]{0x0000000002000000L});
public static final BitSet FOLLOW_CLASS_in_type_guard_stmt21326 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_IS_in_type_guard_stmt21328 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_type_guard_stmt21330 = new BitSet(new long[]{0x0007000100400000L,0x0200040080000000L,0x1000000000000000L});
public static final BitSet FOLLOW_type_spec_in_type_guard_stmt21332 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_type_guard_stmt21334 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_type_guard_stmt21344 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_guard_stmt21358 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_type_guard_stmt21379 = new BitSet(new long[]{0x0000000002000000L});
public static final BitSet FOLLOW_CLASS_in_type_guard_stmt21391 = new BitSet(new long[]{0x0000040000000000L});
public static final BitSet FOLLOW_DEFAULT_in_type_guard_stmt21393 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_type_guard_stmt21404 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_type_guard_stmt21417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_select_type_stmt21457 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_select_type_stmt21468 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_SELECT_in_end_select_type_stmt21470 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_select_type_stmt21474 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_select_type_stmt21487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_exit_stmt21527 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_EXIT_in_exit_stmt21539 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_exit_stmt21542 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_exit_stmt21555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_goto_stmt21595 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_GO_in_goto_stmt21606 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_TO_in_goto_stmt21608 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_DIGIT_STR_in_goto_stmt21610 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_goto_stmt21619 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_goto_stmt21640 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_GOTO_in_goto_stmt21651 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_DIGIT_STR_in_goto_stmt21653 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_goto_stmt21662 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_computed_goto_stmt21698 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_GO_in_computed_goto_stmt21709 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_TO_in_computed_goto_stmt21711 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_computed_goto_stmt21713 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_label_list_in_computed_goto_stmt21715 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_computed_goto_stmt21717 = new BitSet(new long[]{0x0000300040810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_COMMA_in_computed_goto_stmt21721 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_computed_goto_stmt21726 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_computed_goto_stmt21735 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_computed_goto_stmt21756 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_GOTO_in_computed_goto_stmt21767 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_computed_goto_stmt21769 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_label_list_in_computed_goto_stmt21771 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_computed_goto_stmt21773 = new BitSet(new long[]{0x0000300040810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_COMMA_in_computed_goto_stmt21777 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_computed_goto_stmt21782 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_computed_goto_stmt21792 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_continue_stmt21828 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_CONTINUE_in_continue_stmt21839 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_continue_stmt21848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_stop_stmt21889 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_STOP_in_stop_stmt21900 = new BitSet(new long[]{0x2000200040800000L,0x0000000080000000L});
public static final BitSet FOLLOW_stop_code_in_stop_stmt21903 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_COMMA_in_stop_stmt21917 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_QUIET_in_stop_stmt21921 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_stop_stmt21923 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_stop_stmt21925 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_stop_stmt21935 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_error_stop_stmt21975 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_ERROR_in_error_stop_stmt21986 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_STOP_in_error_stop_stmt21988 = new BitSet(new long[]{0x2000200040800000L,0x0000000080000000L});
public static final BitSet FOLLOW_stop_code_in_error_stop_stmt21991 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_COMMA_in_error_stop_stmt22004 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_QUIET_in_error_stop_stmt22008 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_error_stop_stmt22010 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_error_stop_stmt22012 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_error_stop_stmt22022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_error_stop_stmt22044 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_ERRORSTOP_in_error_stop_stmt22055 = new BitSet(new long[]{0x2000300040810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_error_stop_stmt22058 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_COMMA_in_error_stop_stmt22071 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_QUIET_in_error_stop_stmt22075 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_error_stop_stmt22077 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_error_stop_stmt22079 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_error_stop_stmt22089 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_constant_in_stop_code22118 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIGIT_STR_in_stop_code22136 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_sync_all_stmt22182 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_SYNC_in_sync_all_stmt22193 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_ALL_in_sync_all_stmt22195 = new BitSet(new long[]{0x2000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_sync_all_stmt22198 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_sync_all_stmt22200 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_sync_all_stmt22211 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_sync_all_stmt22232 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_SYNC_in_sync_all_stmt22243 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_ALL_in_sync_all_stmt22245 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_sync_all_stmt22247 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_sync_stat_list_in_sync_all_stmt22249 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_sync_all_stmt22251 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_sync_all_stmt22260 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_sync_stat22289 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_sync_stat22291 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_sync_stat22293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sync_stat_in_sync_stat_list22328 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_sync_stat_list22339 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_sync_stat_in_sync_stat_list22341 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_sync_images_stmt22376 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_SYNC_in_sync_images_stmt22387 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_IMAGES_in_sync_images_stmt22389 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_sync_images_stmt22391 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_image_set_in_sync_images_stmt22393 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_sync_images_stmt22403 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_sync_stat_list_in_sync_images_stmt22405 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_sync_images_stmt22411 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_sync_images_stmt22420 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_image_set22449 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_image_set22459 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_sync_memory_stmt22491 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_SYNC_in_sync_memory_stmt22503 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_MEMORY_in_sync_memory_stmt22505 = new BitSet(new long[]{0x2000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_sync_memory_stmt22508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_sync_memory_stmt22510 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_sync_memory_stmt22521 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_sync_memory_stmt22542 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_SYNC_in_sync_memory_stmt22554 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_MEMORY_in_sync_memory_stmt22556 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_sync_memory_stmt22558 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_sync_stat_list_in_sync_memory_stmt22560 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_sync_memory_stmt22562 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_sync_memory_stmt22571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_io_unit22664 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_io_unit22674 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_file_unit_number22697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_open_stmt22730 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_OPEN_in_open_stmt22742 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_open_stmt22744 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_connect_spec_list_in_open_stmt22746 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_open_stmt22748 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_open_stmt22757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_connect_spec22786 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_connect_spec22804 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_connect_spec22806 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_connect_spec22808 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_connect_spec_in_connect_spec_list22843 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_connect_spec_list22853 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_connect_spec_in_connect_spec_list22855 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_close_stmt22896 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_CLOSE_in_close_stmt22907 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_close_stmt22909 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_close_spec_list_in_close_stmt22911 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_close_stmt22913 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_close_stmt22922 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_close_spec22952 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_close_spec22970 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_close_spec22972 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_close_spec22974 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_close_spec_in_close_spec_list23005 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_close_spec_list23015 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_close_spec_in_close_spec_list23017 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_read_stmt23092 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_READ_in_read_stmt23108 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_read_stmt23110 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_io_control_spec_list_in_read_stmt23112 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_read_stmt23114 = new BitSet(new long[]{0x2000200000800000L,0x0400000080000000L});
public static final BitSet FOLLOW_input_item_list_in_read_stmt23128 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_read_stmt23144 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_read_stmt23190 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_READ_in_read_stmt23206 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_format_in_read_stmt23208 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_COMMA_in_read_stmt23223 = new BitSet(new long[]{0x0000200000800000L,0x0400000080000000L});
public static final BitSet FOLLOW_input_item_list_in_read_stmt23225 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_read_stmt23243 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_write_stmt23287 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_WRITE_in_write_stmt23298 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_write_stmt23300 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_io_control_spec_list_in_write_stmt23302 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_write_stmt23304 = new BitSet(new long[]{0x2000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_output_item_list_in_write_stmt23314 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_write_stmt23327 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_print_stmt23367 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_PRINT_in_print_stmt23378 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_format_in_print_stmt23380 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_COMMA_in_print_stmt23391 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_output_item_list_in_print_stmt23393 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_print_stmt23406 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_io_control_spec23435 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_io_control_spec23455 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_io_control_spec23475 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_io_control_spec23477 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_io_control_spec23479 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_io_control_spec23500 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_io_control_spec23502 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_io_control_spec23504 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_io_control_spec_in_io_control_spec_list23601 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_io_control_spec_list23611 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_io_control_spec_in_io_control_spec_list23613 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_format23642 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_format23652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_in_input_item23676 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_io_implied_do_in_input_item23684 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_input_item_in_input_item_list23709 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_input_item_list23719 = new BitSet(new long[]{0x0000200000800000L,0x0400000080000000L});
public static final BitSet FOLLOW_input_item_in_input_item_list23721 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_expr_in_output_item23756 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_io_implied_do_in_output_item23764 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_output_item_in_output_item_list23789 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_output_item_list23799 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_output_item_in_output_item_list23801 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_LPAREN_in_io_implied_do23825 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_io_implied_do_object_in_io_implied_do23827 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_io_implied_do_suffix_in_io_implied_do23829 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_io_implied_do23831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_output_item_in_io_implied_do_object23860 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_io_implied_do_suffix23893 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_io_implied_do_object_in_io_implied_do_suffix23895 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_io_implied_do_suffix_in_io_implied_do_suffix23897 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_io_implied_do_suffix23905 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_io_implied_do_control_in_io_implied_do_suffix23907 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_io_implied_do_control23930 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_io_implied_do_control23932 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_io_implied_do_control23934 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_io_implied_do_control23936 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_io_implied_do_control23938 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_io_implied_do_control23949 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_io_implied_do_control23951 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_dtv_type_spec23985 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_dtv_type_spec23987 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_derived_type_spec_in_dtv_type_spec23989 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_dtv_type_spec23991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_dtv_type_spec24009 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_dtv_type_spec24011 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_derived_type_spec_in_dtv_type_spec24013 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_dtv_type_spec24015 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_wait_stmt24055 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_WAIT_in_wait_stmt24067 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_wait_stmt24069 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_wait_spec_list_in_wait_stmt24071 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_wait_stmt24073 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_wait_stmt24081 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_wait_spec24110 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_wait_spec24128 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_wait_spec24130 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_wait_spec24132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_wait_spec_in_wait_spec_list24167 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_wait_spec_list24177 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_wait_spec_in_wait_spec_list24179 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_backspace_stmt24244 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_BACKSPACE_in_backspace_stmt24260 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_backspace_stmt24262 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_position_spec_list_in_backspace_stmt24264 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_backspace_stmt24266 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_backspace_stmt24278 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_backspace_stmt24324 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_BACKSPACE_in_backspace_stmt24340 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_file_unit_number_in_backspace_stmt24342 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_backspace_stmt24355 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_endfile_stmt24431 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_endfile_stmt24447 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_FILE_in_endfile_stmt24449 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_endfile_stmt24451 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_position_spec_list_in_endfile_stmt24453 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_endfile_stmt24455 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_endfile_stmt24468 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_endfile_stmt24517 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_endfile_stmt24533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_FILE_in_endfile_stmt24535 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_file_unit_number_in_endfile_stmt24537 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_endfile_stmt24550 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_rewind_stmt24625 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_REWIND_in_rewind_stmt24641 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_rewind_stmt24643 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_position_spec_list_in_rewind_stmt24645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_rewind_stmt24647 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_rewind_stmt24660 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_rewind_stmt24706 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_REWIND_in_rewind_stmt24721 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_file_unit_number_in_rewind_stmt24723 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_rewind_stmt24736 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_position_spec24769 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_position_spec24787 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_position_spec24789 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_position_spec24791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_position_spec_in_position_spec_list24826 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_position_spec_list24837 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_position_spec_in_position_spec_list24839 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_flush_stmt24901 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_FLUSH_in_flush_stmt24917 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_flush_stmt24919 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_flush_spec_list_in_flush_stmt24921 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_flush_stmt24923 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_flush_stmt24936 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_flush_stmt24983 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_FLUSH_in_flush_stmt24997 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_file_unit_number_in_flush_stmt24999 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_flush_stmt25011 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_flush_spec25043 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_flush_spec25061 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_flush_spec25063 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_flush_spec25065 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_flush_spec_in_flush_spec_list25101 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_flush_spec_list25111 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_flush_spec_in_flush_spec_list25113 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_inquire_stmt25148 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_INQUIRE_in_inquire_stmt25159 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_inquire_stmt25161 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_inquire_spec_list_in_inquire_stmt25163 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_inquire_stmt25165 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_inquire_stmt25174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_inquire_stmt25195 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_M_INQUIRE_STMT_2_in_inquire_stmt25206 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_INQUIRE_in_inquire_stmt25208 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_inquire_stmt25210 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_inquire_stmt25219 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_inquire_stmt25223 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_inquire_stmt25225 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_inquire_stmt25234 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_output_item_list_in_inquire_stmt25236 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_inquire_stmt25245 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_inquire_spec25274 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_inquire_spec25292 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_inquire_spec25294 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_inquire_spec25296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inquire_spec_in_inquire_spec_list25331 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_inquire_spec_list25341 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_inquire_spec_in_inquire_spec_list25343 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_format_stmt25378 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_FORMAT_in_format_stmt25389 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_format_specification_in_format_stmt25391 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_format_stmt25400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_format_specification25434 = new BitSet(new long[]{0x0000200040000000L,0x0400000000000000L,0x0000000000000070L,0x0000000000000002L});
public static final BitSet FOLLOW_format_item_list_in_format_specification25438 = new BitSet(new long[]{0x0000000040000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_format_specification25452 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_unlimited_format_item_in_format_specification25454 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_format_specification25460 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_M_DATA_EDIT_DESC_in_format_item25494 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_M_CTRL_EDIT_DESC_in_format_item25513 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_M_CSTR_EDIT_DESC_in_format_item25531 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIGIT_STR_in_format_item25550 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_format_item25564 = new BitSet(new long[]{0x0000200000000000L,0x0400000000000000L,0x0000000000000070L});
public static final BitSet FOLLOW_format_item_list_in_format_item25566 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_format_item25568 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_format_item_in_format_item_list25605 = new BitSet(new long[]{0x0000200040000002L,0x0400000000000000L,0x0000000000000070L});
public static final BitSet FOLLOW_COMMA_in_format_item_list25617 = new BitSet(new long[]{0x0000200000000000L,0x0400000000000000L,0x0000000000000070L});
public static final BitSet FOLLOW_format_item_in_format_item_list25621 = new BitSet(new long[]{0x0000200040000002L,0x0400000000000000L,0x0000000000000070L});
public static final BitSet FOLLOW_ASTERISK_in_unlimited_format_item25645 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_unlimited_format_item25647 = new BitSet(new long[]{0x0000200000000000L,0x0400000000000000L,0x0000000000000070L});
public static final BitSet FOLLOW_format_item_list_in_unlimited_format_item25649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_unlimited_format_item25651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_program_stmt_in_main_program25691 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_main_program25699 = new BitSet(new long[]{0x0200A2D4040A4900L,0x0000020186010100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_execution_part_in_main_program25709 = new BitSet(new long[]{0x0200200400000000L});
public static final BitSet FOLLOW_internal_subprogram_part_in_main_program25724 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_program_stmt_in_main_program25737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_program_stmt25770 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_PROGRAM_in_program_stmt25781 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_program_stmt25783 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_program_stmt25792 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_program_stmt25832 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_program_stmt25843 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_PROGRAM_in_end_program_stmt25845 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_program_stmt25848 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_program_stmt25861 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_program_stmt25882 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_program_stmt25893 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_program_stmt25902 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_module_stmt_in_module25936 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_module25944 = new BitSet(new long[]{0x0200200400000000L});
public static final BitSet FOLLOW_module_subprogram_part_in_module25954 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_module_stmt_in_module25965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_module_stmt25995 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_MODULE_in_module_stmt26006 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_module_stmt26010 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_module_stmt26023 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_module_stmt26063 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_module_stmt26074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_MODULE_in_end_module_stmt26076 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_module_stmt26079 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_module_stmt26091 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_module_stmt26112 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_module_stmt26117 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_module_stmt26126 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_contains_stmt_in_module_subprogram_part26163 = new BitSet(new long[]{0x0027200102400002L,0x0200042000400000L,0x3080000001000001L,0x0000000002010000L});
public static final BitSet FOLLOW_module_subprogram_in_module_subprogram_part26173 = new BitSet(new long[]{0x0027200102400002L,0x0200042000400000L,0x3080000001000001L,0x0000000002010000L});
public static final BitSet FOLLOW_prefix_in_module_subprogram26213 = new BitSet(new long[]{0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_function_subprogram_in_module_subprogram26219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subroutine_subprogram_in_module_subprogram26227 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_separate_module_subprogram_in_module_subprogram26235 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_use_stmt26265 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_USE_in_use_stmt26276 = new BitSet(new long[]{0x0000000060000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COMMA_in_use_stmt26280 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_module_nature_in_use_stmt26282 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_use_stmt26288 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_use_stmt26299 = new BitSet(new long[]{0x2000000040000000L});
public static final BitSet FOLLOW_COMMA_in_use_stmt26302 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000100000000L});
public static final BitSet FOLLOW_rename_list_in_use_stmt26304 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_use_stmt26317 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_use_stmt26338 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_USE_in_use_stmt26349 = new BitSet(new long[]{0x0000000060000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COMMA_in_use_stmt26353 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_module_nature_in_use_stmt26355 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_use_stmt26361 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_use_stmt26372 = new BitSet(new long[]{0x0000000040000000L});
public static final BitSet FOLLOW_COMMA_in_use_stmt26374 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_ONLY_in_use_stmt26376 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_use_stmt26378 = new BitSet(new long[]{0x2000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_only_list_in_use_stmt26381 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_use_stmt26394 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTRINSIC_in_module_nature26423 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NON_INTRINSIC_in_module_nature26444 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_rename26477 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_rename26479 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_rename26483 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OPERATOR_in_rename26503 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_rename26505 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DEFINED_OP_in_rename26509 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_rename26511 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_rename26520 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_OPERATOR_in_rename26524 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_rename26526 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DEFINED_OP_in_rename26530 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_rename26532 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rename_in_rename_list26568 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_rename_list26578 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000100000000L});
public static final BitSet FOLLOW_rename_in_rename_list26580 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_generic_spec_in_only26613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rename_in_only26622 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_only_in_only_list26649 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_only_list26659 = new BitSet(new long[]{0x0000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_only_in_only_list26661 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_submodule_stmt_in_submodule26693 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_submodule26701 = new BitSet(new long[]{0x0200200400000000L});
public static final BitSet FOLLOW_module_subprogram_part_in_submodule26711 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_submodule_stmt_in_submodule26724 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_submodule_stmt26754 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_SUBMODULE_in_submodule_stmt26765 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_submodule_stmt26767 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_parent_identifier_in_submodule_stmt26769 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_submodule_stmt26771 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_submodule_stmt26773 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_submodule_stmt26781 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_parent_identifier26812 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_parent_identifier26822 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_parent_identifier26826 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_submodule_stmt26864 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_submodule_stmt26874 = new BitSet(new long[]{0x2000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_SUBMODULE_in_end_submodule_stmt26879 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_submodule_stmt26884 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_submodule_stmt26896 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_data_stmt_in_block_data26930 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_block_data26938 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_block_data_stmt_in_block_data26946 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_block_data_stmt26976 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_BLOCK_in_block_data_stmt26987 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_DATA_in_block_data_stmt26989 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_block_data_stmt26992 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_block_data_stmt27005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_block_data_stmt27026 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_BLOCKDATA_in_block_data_stmt27037 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_block_data_stmt27040 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_block_data_stmt27052 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_block_data_stmt27092 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_block_data_stmt27103 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_BLOCK_in_end_block_data_stmt27105 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_DATA_in_end_block_data_stmt27107 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_block_data_stmt27110 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_block_data_stmt27123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_block_data_stmt27144 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_block_data_stmt27155 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_BLOCKDATA_in_end_block_data_stmt27157 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_block_data_stmt27160 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_block_data_stmt27172 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_block_data_stmt27193 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_block_data_stmt27204 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_block_data_stmt27206 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interface_stmt_in_interface_block27240 = new BitSet(new long[]{0x0227200102400000L,0x0200042000400000L,0x3088000001000001L,0x0000000002010000L});
public static final BitSet FOLLOW_interface_specification_in_interface_block27250 = new BitSet(new long[]{0x0227200102400000L,0x0200042000400000L,0x3088000001000001L,0x0000000002010000L});
public static final BitSet FOLLOW_end_interface_stmt_in_interface_block27261 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interface_body_in_interface_specification27285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedure_stmt_in_interface_specification27293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_interface_stmt27323 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_INTERFACE_in_interface_stmt27335 = new BitSet(new long[]{0x2000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_generic_spec_in_interface_stmt27338 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_interface_stmt27351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_interface_stmt27372 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_ABSTRACT_in_interface_stmt27383 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_INTERFACE_in_interface_stmt27385 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_interface_stmt27394 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_interface_stmt27434 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_interface_stmt27445 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_INTERFACE_in_end_interface_stmt27447 = new BitSet(new long[]{0x2000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_generic_spec_in_end_interface_stmt27451 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_interface_stmt27464 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_interface_body27505 = new BitSet(new long[]{0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_function_stmt_in_interface_body27518 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_interface_body27520 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_function_stmt_in_interface_body27529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subroutine_stmt_in_interface_body27547 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_interface_body27549 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_subroutine_stmt_in_interface_body27558 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_procedure_stmt27598 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000001L});
public static final BitSet FOLLOW_MODULE_in_procedure_stmt27611 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_PROCEDURE_in_procedure_stmt27624 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_procedure_stmt27626 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_procedure_stmt27635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_generic_spec27664 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OPERATOR_in_generic_spec27682 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_generic_spec27684 = new BitSet(new long[]{0x4000100000001200L,0x481A000038800006L,0x0000240404180000L,0x0000000000000700L});
public static final BitSet FOLLOW_defined_operator_in_generic_spec27686 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_generic_spec27688 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSIGNMENT_in_generic_spec27706 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_generic_spec27708 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_generic_spec27710 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_generic_spec27712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_defined_io_generic_spec_in_generic_spec27730 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_READ_in_defined_io_generic_spec27759 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_defined_io_generic_spec27761 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_FORMATTED_in_defined_io_generic_spec27763 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_defined_io_generic_spec27765 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_READ_in_defined_io_generic_spec27783 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_defined_io_generic_spec27785 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_UNFORMATTED_in_defined_io_generic_spec27787 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_defined_io_generic_spec27789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WRITE_in_defined_io_generic_spec27807 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_defined_io_generic_spec27809 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_FORMATTED_in_defined_io_generic_spec27811 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_defined_io_generic_spec27813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WRITE_in_defined_io_generic_spec27831 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_defined_io_generic_spec27833 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_UNFORMATTED_in_defined_io_generic_spec27835 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_defined_io_generic_spec27837 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GENERIC_in_generic_stmt27870 = new BitSet(new long[]{0x0000000060000000L});
public static final BitSet FOLLOW_COMMA_in_generic_stmt27874 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0044000000000000L});
public static final BitSet FOLLOW_access_spec_in_generic_stmt27876 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_generic_stmt27888 = new BitSet(new long[]{0x0000000000000400L,0x0000000080000000L,0x0800000100000000L,0x0000000800000000L});
public static final BitSet FOLLOW_generic_spec_in_generic_stmt27890 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_generic_stmt27892 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_generic_stmt27894 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_external_stmt27934 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_EXTERNAL_in_external_stmt27945 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_external_stmt27949 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_external_stmt27954 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_external_stmt27963 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_procedure_declaration_stmt28003 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_PROCEDURE_in_procedure_declaration_stmt28014 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_procedure_declaration_stmt28016 = new BitSet(new long[]{0x0007000102400000L,0x0200040080000000L,0x1000000000000000L,0x0000000002000002L});
public static final BitSet FOLLOW_proc_interface_in_procedure_declaration_stmt28020 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_procedure_declaration_stmt28026 = new BitSet(new long[]{0x0000000060000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COMMA_in_procedure_declaration_stmt28038 = new BitSet(new long[]{0x0000000000008000L,0x0000080000000000L,0x0064080208000000L,0x0000000000000004L});
public static final BitSet FOLLOW_proc_attr_spec_in_procedure_declaration_stmt28040 = new BitSet(new long[]{0x0000000060000000L});
public static final BitSet FOLLOW_COLON_COLON_in_procedure_declaration_stmt28046 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_proc_decl_list_in_procedure_declaration_stmt28057 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_procedure_declaration_stmt28066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_proc_interface28095 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_type_spec_in_proc_interface28105 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_spec_in_proc_attr_spec28126 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_language_binding_spec_in_proc_attr_spec28145 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTENT_in_proc_attr_spec28163 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_proc_attr_spec28165 = new BitSet(new long[]{0x0000000000000000L,0x0000014000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_intent_spec_in_proc_attr_spec28167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_proc_attr_spec28169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OPTIONAL_in_proc_attr_spec28187 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_POINTER_in_proc_attr_spec28205 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROTECTED_in_proc_attr_spec28223 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SAVE_in_proc_attr_spec28241 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_proc_attr_spec_extension_in_proc_attr_spec28261 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NO_LANG_EXT_in_proc_attr_spec_extension28288 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_proc_decl28311 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_proc_decl28315 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_proc_pointer_init_in_proc_decl28317 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_proc_decl_in_proc_decl_list28357 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_proc_decl_list28367 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_proc_decl_in_proc_decl_list28369 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_null_init_in_proc_pointer_init28396 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_proc_pointer_init28414 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_intrinsic_stmt28454 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_INTRINSIC_in_intrinsic_stmt28465 = new BitSet(new long[]{0x0000000020000000L,0x0000000080000000L});
public static final BitSet FOLLOW_COLON_COLON_in_intrinsic_stmt28468 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_generic_name_list_in_intrinsic_stmt28472 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_intrinsic_stmt28481 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_call_stmt28525 = new BitSet(new long[]{0x0000000000080000L});
public static final BitSet FOLLOW_CALL_in_call_stmt28536 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_procedure_designator_in_call_stmt28538 = new BitSet(new long[]{0x2000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_call_stmt28549 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000002L});
public static final BitSet FOLLOW_actual_arg_spec_list_in_call_stmt28562 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_call_stmt28568 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_call_stmt28587 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_ref_in_procedure_designator28616 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_actual_arg_spec28642 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_actual_arg_spec28644 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_actual_arg_spec28659 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_actual_arg_spec28682 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_label_in_actual_arg_spec28686 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_actual_arg_spec_in_actual_arg_spec_list28733 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_actual_arg_spec_list28743 = new BitSet(new long[]{0x0000300000811000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_actual_arg_spec_in_actual_arg_spec_list28745 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_prefix_spec_in_prefix28777 = new BitSet(new long[]{0x0027000102400002L,0x0200042000000000L,0x3080000001000001L,0x0000000002000000L});
public static final BitSet FOLLOW_prefix_spec_in_prefix28786 = new BitSet(new long[]{0x0027000102400002L,0x0200042000000000L,0x3080000001000001L,0x0000000002000000L});
public static final BitSet FOLLOW_declaration_type_spec_in_prefix_spec28809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELEMENTAL_in_prefix_spec28827 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMPURE_in_prefix_spec28845 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MODULE_in_prefix_spec28863 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NON_RECURSIVE_in_prefix_spec28881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PURE_in_prefix_spec28899 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECURSIVE_in_prefix_spec28917 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_stmt_in_function_subprogram28954 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_function_subprogram28962 = new BitSet(new long[]{0x0200A2D4040A4900L,0x0000020186010100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_execution_part_in_function_subprogram28972 = new BitSet(new long[]{0x0200200400000000L});
public static final BitSet FOLLOW_internal_subprogram_part_in_function_subprogram28986 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_function_stmt_in_function_subprogram28998 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_function_stmt29039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_FUNCTION_in_function_stmt29050 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_function_stmt29052 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function_stmt29054 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_generic_name_list_in_function_stmt29065 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_function_stmt29078 = new BitSet(new long[]{0x2000000000008000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_suffix_in_function_stmt29081 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_function_stmt29094 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_language_binding_spec_in_suffix29130 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_RESULT_in_suffix29141 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_suffix29143 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_suffix29145 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_suffix29147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RESULT_in_suffix29170 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_suffix29172 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_suffix29174 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_suffix29176 = new BitSet(new long[]{0x0000000000008002L});
public static final BitSet FOLLOW_language_binding_spec_in_suffix29187 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_function_stmt29232 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_function_stmt29243 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_FUNCTION_in_end_function_stmt29245 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_function_stmt29248 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_function_stmt29260 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_function_stmt29281 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_function_stmt29292 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_function_stmt29294 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subroutine_stmt_in_subroutine_subprogram29328 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_subroutine_subprogram29336 = new BitSet(new long[]{0x0200A2D4040A4900L,0x0000020186010100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_execution_part_in_subroutine_subprogram29346 = new BitSet(new long[]{0x0200200400000000L});
public static final BitSet FOLLOW_internal_subprogram_part_in_subroutine_subprogram29360 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_subroutine_stmt_in_subroutine_subprogram29372 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_subroutine_stmt29412 = new BitSet(new long[]{0x0027000102400000L,0x0200042000000000L,0x3080000001000001L,0x0000000002010000L});
public static final BitSet FOLLOW_prefix_in_subroutine_stmt29424 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_SUBROUTINE_in_subroutine_stmt29437 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_subroutine_stmt29439 = new BitSet(new long[]{0x2000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_subroutine_stmt29450 = new BitSet(new long[]{0x0000000000001000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_dummy_arg_list_in_subroutine_stmt29453 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_subroutine_stmt29468 = new BitSet(new long[]{0x2000000000008000L});
public static final BitSet FOLLOW_language_binding_spec_in_subroutine_stmt29481 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_subroutine_stmt29503 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_dummy_arg29544 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_dummy_arg29554 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dummy_arg_in_dummy_arg_list29581 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_COMMA_in_dummy_arg_list29591 = new BitSet(new long[]{0x0000000000001000L,0x0000000080000000L});
public static final BitSet FOLLOW_dummy_arg_in_dummy_arg_list29593 = new BitSet(new long[]{0x0000000040000002L});
public static final BitSet FOLLOW_label_in_end_subroutine_stmt29628 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_subroutine_stmt29639 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_SUBROUTINE_in_end_subroutine_stmt29641 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_subroutine_stmt29644 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_subroutine_stmt29656 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_subroutine_stmt29677 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_subroutine_stmt29688 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_subroutine_stmt29697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mp_subprogram_stmt_in_separate_module_subprogram29734 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_separate_module_subprogram29742 = new BitSet(new long[]{0x0200A2D4040A4900L,0x0000020186010100L,0x880240009003570CL,0x0000000900024039L});
public static final BitSet FOLLOW_execution_part_in_separate_module_subprogram29752 = new BitSet(new long[]{0x0200200400000000L});
public static final BitSet FOLLOW_internal_subprogram_part_in_separate_module_subprogram29767 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_mp_subprogram_stmt_in_separate_module_subprogram29780 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_mp_subprogram_stmt29810 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_MODULE_in_mp_subprogram_stmt29821 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_PROCEDURE_in_mp_subprogram_stmt29823 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_mp_subprogram_stmt29825 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_mp_subprogram_stmt29834 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_end_mp_subprogram_stmt29874 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_end_mp_subprogram_stmt29885 = new BitSet(new long[]{0x2000000000000000L,0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_PROCEDURE_in_end_mp_subprogram_stmt29896 = new BitSet(new long[]{0x2000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_end_mp_subprogram_stmt29911 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_end_mp_subprogram_stmt29933 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_entry_stmt29974 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_ENTRY_in_entry_stmt29986 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_entry_stmt29988 = new BitSet(new long[]{0x2000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_entry_stmt29999 = new BitSet(new long[]{0x0000000000001000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_dummy_arg_list_in_entry_stmt30002 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_entry_stmt30017 = new BitSet(new long[]{0x2000000000008000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_suffix_in_entry_stmt30020 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_entry_stmt30042 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_return_stmt30083 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
public static final BitSet FOLLOW_RETURN_in_return_stmt30095 = new BitSet(new long[]{0x2000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_return_stmt30098 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_return_stmt30111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_contains_stmt30151 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_CONTAINS_in_contains_stmt30162 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_contains_stmt30170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_stmt_function_stmt30210 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_STMT_FUNCTION_in_stmt_function_stmt30221 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_IDENT_in_stmt_function_stmt30223 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_stmt_function_stmt30225 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_generic_name_list_in_stmt_function_stmt30236 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_stmt_function_stmt30249 = new BitSet(new long[]{0x8000000000000000L});
public static final BitSet FOLLOW_EQUALS_in_stmt_function_stmt30251 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_stmt_function_stmt30253 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_stmt_function_stmt30262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EOS_in_end_of_stmt30298 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EOF_in_end_of_stmt30322 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred1_MFortranParser2018191 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_IMPLICIT_in_synpred1_MFortranParser2018195 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred2_MFortranParser2018227 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_PARAMETER_in_synpred2_MFortranParser2018231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred3_MFortranParser2018261 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_FORMAT_in_synpred3_MFortranParser2018265 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred4_MFortranParser2018301 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_ENTRY_in_synpred4_MFortranParser2018305 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_synpred5_MFortranParser2018763 = new BitSet(new long[]{0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_function_subprogram_in_synpred5_MFortranParser2018768 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_spec_in_synpred6_MFortranParser20186080 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_COLON_COLON_in_synpred6_MFortranParser20186082 = new BitSet(new long[]{0x0000300000810002L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_ac_value_list_in_synpred6_MFortranParser20186091 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_synpred7_MFortranParser20186147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_in_synpred8_MFortranParser20188757 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_ASTERISK_in_synpred8_MFortranParser20188760 = new BitSet(new long[]{0x0000200000810000L,0x44000000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_data_stmt_constant_in_synpred8_MFortranParser20188762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_int_literal_constant_in_synpred9_MFortranParser20188774 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_ASTERISK_in_synpred9_MFortranParser20188777 = new BitSet(new long[]{0x0000200000810000L,0x44000000C0002000L,0x0000040020008000L,0x0000000001000000L});
public static final BitSet FOLLOW_data_stmt_constant_in_synpred9_MFortranParser20188779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_signed_int_literal_constant_in_synpred10_MFortranParser20188791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_synpred14_MFortranParser20188823 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_in_synpred16_MFortranParser20188917 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_constant_in_synpred21_MFortranParser20188957 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_synpred23_MFortranParser201812492 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred23_MFortranParser201812494 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_synpred24_MFortranParser201812552 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_synpred24_MFortranParser201812554 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_synpred25_MFortranParser201812633 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred25_MFortranParser201812635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_object_in_synpred26_MFortranParser201813564 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LBRACKET_in_synpred26_MFortranParser201813566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_object_in_synpred27_MFortranParser201813619 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASTERISK_in_synpred28_MFortranParser201813886 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_synpred29_MFortranParser201813900 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_synpred29_MFortranParser201813902 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_ASTERISK_in_synpred29_MFortranParser201813904 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_or_func_ref_in_synpred30_MFortranParser201814344 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_constant_in_synpred31_MFortranParser201814352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_array_constructor_in_synpred32_MFortranParser201814360 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structure_constructor_in_synpred33_MFortranParser201814368 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred34_MFortranParser201815583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_M_PTR_ASSIGNMENT_STMT_in_synpred34_MFortranParser201815595 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_data_ref_in_synpred34_MFortranParser201815597 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_synpred34_MFortranParser201815599 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_synpred34_MFortranParser201815601 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_synpred34_MFortranParser201815609 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred35_MFortranParser201815630 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_M_PTR_ASSIGNMENT_STMT_in_synpred35_MFortranParser201815641 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_data_ref_in_synpred35_MFortranParser201815643 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred35_MFortranParser201815652 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_bounds_spec_list_in_synpred35_MFortranParser201815654 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_synpred35_MFortranParser201815656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_EQ_GT_in_synpred35_MFortranParser201815658 = new BitSet(new long[]{0x0000300000810000L,0x44010000C0002000L,0x0000040024008000L,0x0000000001000000L});
public static final BitSet FOLLOW_expr_in_synpred35_MFortranParser201815660 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_end_of_stmt_in_synpred35_MFortranParser201815669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred36_MFortranParser201817463 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_ENTRY_in_synpred36_MFortranParser201817467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred37_MFortranParser201817494 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_ENUM_in_synpred37_MFortranParser201817498 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred38_MFortranParser201817525 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_FORMAT_in_synpred38_MFortranParser201817529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred39_MFortranParser201817556 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_INTERFACE_in_synpred39_MFortranParser201817560 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred40_MFortranParser201817587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_PARAMETER_in_synpred40_MFortranParser201817591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred41_MFortranParser201817618 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_PROCEDURE_in_synpred41_MFortranParser201817622 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derived_type_stmt_in_synpred42_MFortranParser201817649 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_declaration_stmt_in_synpred43_MFortranParser201817675 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred44_MFortranParser201817702 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0044000000000000L});
public static final BitSet FOLLOW_access_spec_in_synpred44_MFortranParser201817706 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred45_MFortranParser201817733 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_ALLOCATABLE_in_synpred45_MFortranParser201817737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred46_MFortranParser201817765 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_ASYNCHRONOUS_in_synpred46_MFortranParser201817769 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred47_MFortranParser201817797 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_BIND_in_synpred47_MFortranParser201817801 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred48_MFortranParser201817828 = new BitSet(new long[]{0x0000000008000000L});
public static final BitSet FOLLOW_CODIMENSION_in_synpred48_MFortranParser201817832 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred49_MFortranParser201817859 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_DATA_in_synpred49_MFortranParser201817863 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred50_MFortranParser201817891 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_DIMENSION_in_synpred50_MFortranParser201817895 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred51_MFortranParser201817922 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_EXTERNAL_in_synpred51_MFortranParser201817926 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred52_MFortranParser201817953 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_INTRINSIC_in_synpred52_MFortranParser201817957 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred53_MFortranParser201817984 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_POINTER_in_synpred53_MFortranParser201817988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred54_MFortranParser201818016 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_PROTECTED_in_synpred54_MFortranParser201818020 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred55_MFortranParser201818047 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_SAVE_in_synpred55_MFortranParser201818051 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred56_MFortranParser201818079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_TARGET_in_synpred56_MFortranParser201818083 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred57_MFortranParser201818111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_VOLATILE_in_synpred57_MFortranParser201818115 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred58_MFortranParser201823068 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_READ_in_synpred58_MFortranParser201823072 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred58_MFortranParser201823074 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred59_MFortranParser201823168 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_READ_in_synpred59_MFortranParser201823172 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_synpred60_MFortranParser201823756 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred62_MFortranParser201824220 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_BACKSPACE_in_synpred62_MFortranParser201824224 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred62_MFortranParser201824226 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred63_MFortranParser201824302 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_BACKSPACE_in_synpred63_MFortranParser201824306 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred64_MFortranParser201824405 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_synpred64_MFortranParser201824409 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_FILE_in_synpred64_MFortranParser201824411 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred64_MFortranParser201824413 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred65_MFortranParser201824492 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_END_in_synpred65_MFortranParser201824496 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_FILE_in_synpred65_MFortranParser201824498 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred66_MFortranParser201824600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_REWIND_in_synpred66_MFortranParser201824604 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred66_MFortranParser201824606 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred67_MFortranParser201824684 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_REWIND_in_synpred67_MFortranParser201824688 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred68_MFortranParser201824876 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_FLUSH_in_synpred68_MFortranParser201824880 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred68_MFortranParser201824882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_label_in_synpred69_MFortranParser201824961 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_FLUSH_in_synpred69_MFortranParser201824965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_synpred70_MFortranParser201826213 = new BitSet(new long[]{0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_function_subprogram_in_synpred70_MFortranParser201826219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subroutine_subprogram_in_synpred71_MFortranParser201826227 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_synpred72_MFortranParser201827505 = new BitSet(new long[]{0x0000200000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_function_stmt_in_synpred72_MFortranParser201827518 = new BitSet(new long[]{0x0C0761018A40A090L,0x02003C1800080401L,0x106C481200040000L,0x00000000E2102004L});
public static final BitSet FOLLOW_specification_part_in_synpred72_MFortranParser201827520 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_end_function_stmt_in_synpred72_MFortranParser201827529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EOF_in_synpred73_MFortranParser201830317 = new BitSet(new long[]{0x0000000000000002L});
}