diff --git a/Parser/spec/SlottableFortranParser.rats b/Parser/spec/SlottableFortranParser.rats index f3cf1fff694a38c7187984fedd8f71ecb3f5ffc2..456c72f5c697761080c4922a52fdb4e1fd01561b 100644 --- a/Parser/spec/SlottableFortranParser.rats +++ b/Parser/spec/SlottableFortranParser.rats @@ -195,6 +195,8 @@ public ExecutionPartConstruct execution_part_construct := ... ; public Name name := ... ; public Block block := ... ; public DoConstruct do_construct := ... ; +public Variable variable := ... ; +public Designator designator := ... ; // == Slots ==================================================================== @@ -221,7 +223,7 @@ Expr expr += //// SlotDoConstruct:DoConstruct ::= <SlotName:String> ; DoConstruct do_construct += - <ExprSlot> NUMBERSIGN n:slot_name (COLON (D O C O N S T R U C T / S I M P L E D O C O N S T R U C T / O M P D O C O N S T R U C T / A C C L O O P C O N S T R U C T))? NUMBERSIGN LB + <ExprSlot> NUMBERSIGN n:slot_name (COLON (D O C O N C U R R E N T C O N S T R U C T / D O C O N S T R U C T / S I M P L E D O C O N S T R U C T / O M P D O C O N S T R U C T / A C C L O O P C O N S T R U C T))? NUMBERSIGN LB { yyValue = new SlotDoConstruct(n); } @@ -265,7 +267,13 @@ IntLiteralConstant int_literal_constant += //// SlotExecutableConstruct:ExecutableConstruct ::= <SlotName:String> ; ExecutableConstruct executable_construct += - <ExecutableConstructSlot> NUMBERSIGN n:slot_name (COLON (E X E C U T A B L E C O N S T R U C T / A C C P A R A L L E L C O N S T R U C T / A C C D A T A C O N S T R U C T))? NUMBERSIGN LB + <ExecutableConstructSlot> NUMBERSIGN n:slot_name + (COLON ( + E X E C U T A B L E C O N S T R U C T + / A C C P A R A L L E L C O N S T R U C T + / A C C D A T A C O N S T R U C T + ) )? + NUMBERSIGN LB { yyValue = new SlotExecutableConstruct(n); } @@ -276,18 +284,29 @@ ExecutableConstruct executable_construct += //// SlotExecutionPartConstruct:ExecutionPartConstruct ::= <SlotName:String> ; ExecutionPartConstruct execution_part_construct += - <ExecutionPartConstructSlot> NUMBERSIGN n:slot_name (COLON E X E C U T I O N P A R T C O N S T R U C T)? NUMBERSIGN LB + <ExecutionPartConstructSlot> NUMBERSIGN n:slot_name (COLON (E X E C U T A B L E C O N S T R U C T UNDERSCORE)? E X E C U T I O N P A R T C O N S T R U C T)? NUMBERSIGN LB { yyValue = new SlotExecutionPartConstruct(n); } / <BEGINNING> ... ; +// == Designator Slots =================================================== + +//// SlotDesignator:Designator ::= <SlotName:String> ; +Designator designator += + <DesignatorSlot> NUMBERSIGN n:slot_name (COLON (O B J E C T N A M E UNDERSCORE)? D E S I G N A T O R)? NUMBERSIGN LB + { + yyValue = new SlotDesignator(n); + } +/ <BEGINNING> ... +; + // == Name Slots =================================================== //// SlotForName:Name ; Name name += - NUMBERSIGN n:slot_name (COLON F O R N A M E)? NUMBERSIGN SS + NUMBERSIGN n:slot_name (COLON (F O R)? N A M E)? NUMBERSIGN SS { yyValue = new SlotForName(n); }