diff --git a/.gitignore b/.gitignore index 5e00402..f915ca1 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ lib/ *.lai *.la *.a +/bin/ diff --git a/src/fortran/ofp/parser/FortranParserBase.g b/src/fortran/ofp/parser/FortranParserBase.g index 18c52f4..ecc97d2 100644 --- a/src/fortran/ofp/parser/FortranParserBase.g +++ b/src/fortran/ofp/parser/FortranParserBase.g @@ -239,11 +239,12 @@ declaration_construct // R208 execution_part +@init{int count = 1; /*for mandatory executable_construct*/} @after { - action.execution_part(); + action.execution_part(count); } : executable_construct - ( execution_part_construct )* + ( execution_part_construct {count += 1;} )* ; // R209 diff --git a/src/fortran/ofp/parser/java/FortranParserActionPrint.java b/src/fortran/ofp/parser/java/FortranParserActionPrint.java index dc64fb1..5ba2018 100644 --- a/src/fortran/ofp/parser/java/FortranParserActionPrint.java +++ b/src/fortran/ofp/parser/java/FortranParserActionPrint.java @@ -145,8 +145,9 @@ public void declaration_construct() { * execution_part * */ - public void execution_part() { + public void execution_part(int count) { printRuleHeader(208, "execution-part"); + printParameter(count, "count"); printRuleTrailer(); } diff --git a/src/fortran/ofp/parser/java/IFortranParserAction.java b/src/fortran/ofp/parser/java/IFortranParserAction.java index 1e7483b..87d3a5a 100644 --- a/src/fortran/ofp/parser/java/IFortranParserAction.java +++ b/src/fortran/ofp/parser/java/IFortranParserAction.java @@ -61,7 +61,7 @@ public abstract interface IFortranParserAction { /** R208 * execution_part */ - public abstract void execution_part(); + public abstract void execution_part(int count); /** R209 * execution_part_construct