LCOV - code coverage report
Current view: top level - src/frontend/SageIII/accparser - accparser.h (source / functions) Hit Total Coverage
Test: ROSE Lines: 0 3 0.0 %
Date: 2022-12-08 13:48:47 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* parser/listener/visitor header section */
       2             : 
       3             : // Generated from accparser.g4 by ANTLR 4.7.2
       4             : 
       5             : #pragma once
       6             : 
       7             : /* parser precinclude section */
       8             : 
       9             : #include "antlr4-runtime.h"
      10             : 
      11             : 
      12             : /* parser postinclude section */
      13             : #ifndef _WIN32
      14             : #pragma GCC diagnostic ignored "-Wunused-parameter"
      15             : #endif
      16             : 
      17             : 
      18             : 
      19             : /* parser context section */
      20             : 
      21             : class  accparser : public antlr4::Parser {
      22             : public:
      23             :   enum {
      24             :     EXPR = 1, C_PREFIX = 2, FORTRAN_PREFIX = 3, ACC = 4, ATOMIC = 5, CACHE = 6, 
      25             :     DATA = 7, END = 8, DECLARE = 9, ENTER = 10, EXIT = 11, HOST_DATA = 12, 
      26             :     INIT = 13, KERNELS = 14, LOOP = 15, PARALLEL = 16, ROUTINE = 17, SERIAL = 18, 
      27             :     SET = 19, SHUTDOWN = 20, UPDATE = 21, LEFT_PAREN = 22, RIGHT_PAREN = 23, 
      28             :     D_BLANK = 24, COLON = 25, LINE_END = 26, ASYNC = 27, ATTACH = 28, AUTO = 29, 
      29             :     BIND = 30, CAPTURE = 31, COLLAPSE = 32, COPY = 33, COPYIN = 34, COPYOUT = 35, 
      30             :     CREATE = 36, DEFAULT = 37, DEFAULT_ASYNC = 38, DELETE = 39, DETACH = 40, 
      31             :     DEVICE = 41, DEVICE_NUM = 42, DEVICE_RESIDENT = 43, DEVICE_TYPE = 44, 
      32             :     DEVICEPTR = 45, FINALIZE = 46, FIRSTPRIVATE = 47, GANG = 48, HOST = 49, 
      33             :     IF = 50, IF_PRESENT = 51, INDEPENDENT = 52, LINK = 53, NOHOST = 54, 
      34             :     NO_CREATE = 55, NUM = 56, NUM_GANGS = 57, NUM_WORKERS = 58, PRESENT = 59, 
      35             :     PRIVATE = 60, READ = 61, REDUCTION = 62, SELF = 63, SEQ = 64, TILE = 65, 
      36             :     USE_DEVICE = 66, VECTOR = 67, VECTOR_LENGTH = 68, WAIT = 69, WORKER = 70, 
      37             :     WRITE = 71, COMMENT = 72, CACHE_LEFT_PAREN = 73, CACHE_READONLY = 74, 
      38             :     CACHE_COLON = 75, CACHE_COMMA = 76, CACHE_BLANK = 77, CACHE_LINE_END = 78, 
      39             :     ROUTINE_LEFT_PAREN = 79, ROUTINE_BLANK = 80, ROUTINE_LINE_END = 81, 
      40             :     COPYIN_LEFT_PAREN = 82, READONLY = 83, COPYIN_COLON = 84, COPYIN_COMMA = 85, 
      41             :     COPYIN_BLANK = 86, COPYIN_LINE_END = 87, COPYOUT_LEFT_PAREN = 88, ZERO = 89, 
      42             :     COPYOUT_COLON = 90, COPYOUT_COMMA = 91, COPYOUT_BLANK = 92, COPYOUT_LINE_END = 93, 
      43             :     CREATE_LEFT_PAREN = 94, CREATE_ZERO = 95, CREATE_COLON = 96, CREATE_COMMA = 97, 
      44             :     CREATE_BLANK = 98, CREATE_LINE_END = 99, NONE = 100, BLANK = 101, EXPR_LINE_END = 102, 
      45             :     VECTOR_LEFT_PAREN = 103, LENGTH = 104, VECTOR_COLON = 105, VECTOR_BLANK = 106, 
      46             :     VECTOR_LINE_END = 107, REDUCTION_LEFT_PAREN = 108, ADD = 109, MUL = 110, 
      47             :     MAX = 111, MIN = 112, BITAND = 113, BITOR = 114, BITXOR = 115, LOGAND = 116, 
      48             :     LOGOR = 117, REDUCTION_COLON = 118, REDUCTION_COMMA = 119, REDUCTION_BLANK = 120, 
      49             :     REDUCTION_LINE_END = 121, WAIT_LEFT_PAREN = 122, DEVNUM = 123, QUEUES = 124, 
      50             :     WAIT_COLON = 125, WAIT_COMMA = 126, WAIT_BLANK = 127, WAIT_LINE_END = 128, 
      51             :     WORKER_LEFT_PAREN = 129, WORKER_NUM = 130, WORKER_COLON = 131, WORKER_BLANK = 132, 
      52             :     WORKER_LINE_END = 133, EXPR_LEFT_PAREN = 134, COMMA = 135, EXPRESSION_LEFT_PAREN = 136, 
      53             :     EXPRESSION_RIGHT_PAREN = 137, EXPRESSION_CHAR = 138
      54             :   };
      55             : 
      56             :   enum {
      57             :     RuleAcc = 0, RulePrefix = 1, RuleC_prefix = 2, RuleFortran_prefix = 3, 
      58             :     RuleOpenacc_directive = 4, RuleAtomic_directive = 5, RuleAtomic_clause = 6, 
      59             :     RuleCache_directive = 7, RuleCache_directive_modifier = 8, RuleData_directive = 9, 
      60             :     RuleData_clause_list = 10, RuleData_clauses = 11, RuleDeclare_directive = 12, 
      61             :     RuleDeclare_clause_list = 13, RuleDeclare_clauses = 14, RuleEnd_directive = 15, 
      62             :     RuleEnd_clause_seq = 16, RuleFortran_paired_directive = 17, RuleEnd_atomic_directive = 18, 
      63             :     RuleEnd_data_directive = 19, RuleEnd_host_data_directive = 20, RuleEnd_kernels_directive = 21, 
      64             :     RuleEnd_kernels_loop_directive = 22, RuleEnd_parallel_directive = 23, 
      65             :     RuleEnd_parallel_loop_directive = 24, RuleEnd_serial_directive = 25, 
      66             :     RuleEnd_serial_loop_directive = 26, RuleEnter_data_directive = 27, RuleEnter_data_clause_list = 28, 
      67             :     RuleEnter_data_clauses = 29, RuleExit_data_directive = 30, RuleExit_data_clause_list = 31, 
      68             :     RuleExit_data_clauses = 32, RuleHost_data_directive = 33, RuleHost_data_clause_list = 34, 
      69             :     RuleHost_data_clauses = 35, RuleInit_directive = 36, RuleInit_clause_list = 37, 
      70             :     RuleInit_clauses = 38, RuleKernels_directive = 39, RuleKernels_clause_list = 40, 
      71             :     RuleKernels_clauses = 41, RuleKernels_loop_directive = 42, RuleKernels_loop_clause_list = 43, 
      72             :     RuleKernels_loop_clauses = 44, RuleLoop_directive = 45, RuleLoop_clause_list = 46, 
      73             :     RuleLoop_clauses = 47, RuleParallel_directive = 48, RuleParallel_clause_list = 49, 
      74             :     RuleParallel_clauses = 50, RuleParallel_loop_directive = 51, RuleParallel_loop_clause_list = 52, 
      75             :     RuleParallel_loop_clauses = 53, RuleRoutine_directive = 54, RuleRoutine_clause_list = 55, 
      76             :     RuleRoutine_clauses = 56, RuleName = 57, RuleSerial_directive = 58, 
      77             :     RuleSerial_clause_list = 59, RuleSerial_clauses = 60, RuleSerial_loop_directive = 61, 
      78             :     RuleSerial_loop_clause_list = 62, RuleSerial_loop_clauses = 63, RuleSet_directive = 64, 
      79             :     RuleSet_clause_list = 65, RuleSet_clauses = 66, RuleShutdown_directive = 67, 
      80             :     RuleShutdown_clause_list = 68, RuleShutdown_clauses = 69, RuleUpdate_directive = 70, 
      81             :     RuleUpdate_clause_list = 71, RuleUpdate_clauses = 72, RuleWait_directive = 73, 
      82             :     RuleWait_clause_list = 74, RuleWait_clauses = 75, RuleAsync_clause = 76, 
      83             :     RuleAttach_clause = 77, RuleAuto_clause = 78, RuleBind_clause = 79, 
      84             :     RuleName_or_string = 80, RuleCapture_clause = 81, RuleCollapse_clause = 82, 
      85             :     RuleCopy_clause = 83, RuleCopyin_clause = 84, RuleCopyin_clause_modifier = 85, 
      86             :     RuleCopyin_no_modifier_clause = 86, RuleCopyout_clause = 87, RuleCopyout_clause_modifier = 88, 
      87             :     RuleCopyout_no_modifier_clause = 89, RuleCreate_clause = 90, RuleCreate_clause_modifier = 91, 
      88             :     RuleCreate_no_modifier_clause = 92, RuleDefault_clause = 93, RuleDefault_kind = 94, 
      89             :     RuleDefault_async_clause = 95, RuleDelete_clause = 96, RuleDetach_clause = 97, 
      90             :     RuleDevice_clause = 98, RuleDevice_num_clause = 99, RuleDevice_resident_clause = 100, 
      91             :     RuleDevice_type_clause = 101, RuleDevice_type_list = 102, RuleDeviceptr_clause = 103, 
      92             :     RuleFinalize_clause = 104, RuleFirstprivate_clause = 105, RuleGang_clause = 106, 
      93             :     RuleGang_arg_list = 107, RuleGang_no_list_clause = 108, RuleHost_clause = 109, 
      94             :     RuleIf_clause = 110, RuleIf_present_clause = 111, RuleIndependent_clause = 112, 
      95             :     RuleLink_clause = 113, RuleNohost_clause = 114, RuleNo_create_clause = 115, 
      96             :     RuleNum_gangs_clause = 116, RuleNum_workers_clause = 117, RulePresent_clause = 118, 
      97             :     RulePrivate_clause = 119, RuleRead_clause = 120, RuleReduction_clause = 121, 
      98             :     RuleReduction_operator = 122, RuleSelf_clause = 123, RuleSelf_list_clause = 124, 
      99             :     RuleCondition = 125, RuleSeq_clause = 126, RuleTile_clause = 127, RuleUpdate_clause = 128, 
     100             :     RuleSize_expr_list = 129, RuleUse_device_clause = 130, RuleVector_clause = 131, 
     101             :     RuleVector_clause_args = 132, RuleVector_clause_modifier = 133, RuleVector_no_modifier_clause = 134, 
     102             :     RuleVector_length_clause = 135, RuleWait_clause = 136, RuleWait_argument_clause = 137, 
     103             :     RuleWait_argument = 138, RuleWait_int_expr_list = 139, RuleWait_int_expr = 140, 
     104             :     RuleWait_argument_queues = 141, RuleWait_argument_int_expr = 142, RuleWorker_clause = 143, 
     105             :     RuleWorker_clause_args = 144, RuleWorker_clause_modifier = 145, RuleWorker_no_modifier_clause = 146, 
     106             :     RuleWrite_clause = 147, RuleConst_int = 148, RuleInt_expr_list = 149, 
     107             :     RuleInt_expr = 150, RuleVar_list = 151, RuleVar = 152
     108             :   };
     109             : 
     110             :   accparser(antlr4::TokenStream *input);
     111             :   ~accparser();
     112             : 
     113             :   virtual std::string getGrammarFileName() const override;
     114           0 :   virtual const antlr4::atn::ATN& getATN() const override { return _atn; };
     115           0 :   virtual const std::vector<std::string>& getTokenNames() const override { return _tokenNames; }; // deprecated: use vocabulary instead.
     116             :   virtual const std::vector<std::string>& getRuleNames() const override;
     117             :   virtual antlr4::dfa::Vocabulary& getVocabulary() const override;
     118             : 
     119             : 
     120             :   /* public parser declarations/members section */
     121             :   bool myAction() { return true; }
     122             :   bool doesItBlend() { return true; }
     123           0 :   void cleanUp() {}
     124             :   void doInit() {}
     125             :   void doAfter() {}
     126             : 
     127             : 
     128             :   class AccContext;
     129             :   class PrefixContext;
     130             :   class C_prefixContext;
     131             :   class Fortran_prefixContext;
     132             :   class Openacc_directiveContext;
     133             :   class Atomic_directiveContext;
     134             :   class Atomic_clauseContext;
     135             :   class Cache_directiveContext;
     136             :   class Cache_directive_modifierContext;
     137             :   class Data_directiveContext;
     138             :   class Data_clause_listContext;
     139             :   class Data_clausesContext;
     140             :   class Declare_directiveContext;
     141             :   class Declare_clause_listContext;
     142             :   class Declare_clausesContext;
     143             :   class End_directiveContext;
     144             :   class End_clause_seqContext;
     145             :   class Fortran_paired_directiveContext;
     146             :   class End_atomic_directiveContext;
     147             :   class End_data_directiveContext;
     148             :   class End_host_data_directiveContext;
     149             :   class End_kernels_directiveContext;
     150             :   class End_kernels_loop_directiveContext;
     151             :   class End_parallel_directiveContext;
     152             :   class End_parallel_loop_directiveContext;
     153             :   class End_serial_directiveContext;
     154             :   class End_serial_loop_directiveContext;
     155             :   class Enter_data_directiveContext;
     156             :   class Enter_data_clause_listContext;
     157             :   class Enter_data_clausesContext;
     158             :   class Exit_data_directiveContext;
     159             :   class Exit_data_clause_listContext;
     160             :   class Exit_data_clausesContext;
     161             :   class Host_data_directiveContext;
     162             :   class Host_data_clause_listContext;
     163             :   class Host_data_clausesContext;
     164             :   class Init_directiveContext;
     165             :   class Init_clause_listContext;
     166             :   class Init_clausesContext;
     167             :   class Kernels_directiveContext;
     168             :   class Kernels_clause_listContext;
     169             :   class Kernels_clausesContext;
     170             :   class Kernels_loop_directiveContext;
     171             :   class Kernels_loop_clause_listContext;
     172             :   class Kernels_loop_clausesContext;
     173             :   class Loop_directiveContext;
     174             :   class Loop_clause_listContext;
     175             :   class Loop_clausesContext;
     176             :   class Parallel_directiveContext;
     177             :   class Parallel_clause_listContext;
     178             :   class Parallel_clausesContext;
     179             :   class Parallel_loop_directiveContext;
     180             :   class Parallel_loop_clause_listContext;
     181             :   class Parallel_loop_clausesContext;
     182             :   class Routine_directiveContext;
     183             :   class Routine_clause_listContext;
     184             :   class Routine_clausesContext;
     185             :   class NameContext;
     186             :   class Serial_directiveContext;
     187             :   class Serial_clause_listContext;
     188             :   class Serial_clausesContext;
     189             :   class Serial_loop_directiveContext;
     190             :   class Serial_loop_clause_listContext;
     191             :   class Serial_loop_clausesContext;
     192             :   class Set_directiveContext;
     193             :   class Set_clause_listContext;
     194             :   class Set_clausesContext;
     195             :   class Shutdown_directiveContext;
     196             :   class Shutdown_clause_listContext;
     197             :   class Shutdown_clausesContext;
     198             :   class Update_directiveContext;
     199             :   class Update_clause_listContext;
     200             :   class Update_clausesContext;
     201             :   class Wait_directiveContext;
     202             :   class Wait_clause_listContext;
     203             :   class Wait_clausesContext;
     204             :   class Async_clauseContext;
     205             :   class Attach_clauseContext;
     206             :   class Auto_clauseContext;
     207             :   class Bind_clauseContext;
     208             :   class Name_or_stringContext;
     209             :   class Capture_clauseContext;
     210             :   class Collapse_clauseContext;
     211             :   class Copy_clauseContext;
     212             :   class Copyin_clauseContext;
     213             :   class Copyin_clause_modifierContext;
     214             :   class Copyin_no_modifier_clauseContext;
     215             :   class Copyout_clauseContext;
     216             :   class Copyout_clause_modifierContext;
     217             :   class Copyout_no_modifier_clauseContext;
     218             :   class Create_clauseContext;
     219             :   class Create_clause_modifierContext;
     220             :   class Create_no_modifier_clauseContext;
     221             :   class Default_clauseContext;
     222             :   class Default_kindContext;
     223             :   class Default_async_clauseContext;
     224             :   class Delete_clauseContext;
     225             :   class Detach_clauseContext;
     226             :   class Device_clauseContext;
     227             :   class Device_num_clauseContext;
     228             :   class Device_resident_clauseContext;
     229             :   class Device_type_clauseContext;
     230             :   class Device_type_listContext;
     231             :   class Deviceptr_clauseContext;
     232             :   class Finalize_clauseContext;
     233             :   class Firstprivate_clauseContext;
     234             :   class Gang_clauseContext;
     235             :   class Gang_arg_listContext;
     236             :   class Gang_no_list_clauseContext;
     237             :   class Host_clauseContext;
     238             :   class If_clauseContext;
     239             :   class If_present_clauseContext;
     240             :   class Independent_clauseContext;
     241             :   class Link_clauseContext;
     242             :   class Nohost_clauseContext;
     243             :   class No_create_clauseContext;
     244             :   class Num_gangs_clauseContext;
     245             :   class Num_workers_clauseContext;
     246             :   class Present_clauseContext;
     247             :   class Private_clauseContext;
     248             :   class Read_clauseContext;
     249             :   class Reduction_clauseContext;
     250             :   class Reduction_operatorContext;
     251             :   class Self_clauseContext;
     252             :   class Self_list_clauseContext;
     253             :   class ConditionContext;
     254             :   class Seq_clauseContext;
     255             :   class Tile_clauseContext;
     256             :   class Update_clauseContext;
     257             :   class Size_expr_listContext;
     258             :   class Use_device_clauseContext;
     259             :   class Vector_clauseContext;
     260             :   class Vector_clause_argsContext;
     261             :   class Vector_clause_modifierContext;
     262             :   class Vector_no_modifier_clauseContext;
     263             :   class Vector_length_clauseContext;
     264             :   class Wait_clauseContext;
     265             :   class Wait_argument_clauseContext;
     266             :   class Wait_argumentContext;
     267             :   class Wait_int_expr_listContext;
     268             :   class Wait_int_exprContext;
     269             :   class Wait_argument_queuesContext;
     270             :   class Wait_argument_int_exprContext;
     271             :   class Worker_clauseContext;
     272             :   class Worker_clause_argsContext;
     273             :   class Worker_clause_modifierContext;
     274             :   class Worker_no_modifier_clauseContext;
     275             :   class Write_clauseContext;
     276             :   class Const_intContext;
     277             :   class Int_expr_listContext;
     278             :   class Int_exprContext;
     279             :   class Var_listContext;
     280             :   class VarContext; 
     281             : 
     282             :   class  AccContext : public antlr4::ParserRuleContext {
     283             :   public:
     284             :     AccContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     285             :     virtual size_t getRuleIndex() const override;
     286             :     PrefixContext *prefix();
     287             :     antlr4::tree::TerminalNode *ACC();
     288             :     Openacc_directiveContext *openacc_directive();
     289             :     antlr4::tree::TerminalNode *EOF();
     290             : 
     291             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     292             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     293             : 
     294             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     295             :    
     296             :   };
     297             : 
     298             :   AccContext* acc();
     299             : 
     300             :   class  PrefixContext : public antlr4::ParserRuleContext {
     301             :   public:
     302             :     PrefixContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     303             :     virtual size_t getRuleIndex() const override;
     304             :     C_prefixContext *c_prefix();
     305             :     Fortran_prefixContext *fortran_prefix();
     306             : 
     307             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     308             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     309             : 
     310             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     311             :    
     312             :   };
     313             : 
     314             :   PrefixContext* prefix();
     315             : 
     316             :   class  C_prefixContext : public antlr4::ParserRuleContext {
     317             :   public:
     318             :     C_prefixContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     319             :     virtual size_t getRuleIndex() const override;
     320             :     antlr4::tree::TerminalNode *C_PREFIX();
     321             : 
     322             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     323             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     324             : 
     325             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     326             :    
     327             :   };
     328             : 
     329             :   C_prefixContext* c_prefix();
     330             : 
     331             :   class  Fortran_prefixContext : public antlr4::ParserRuleContext {
     332             :   public:
     333             :     Fortran_prefixContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     334             :     virtual size_t getRuleIndex() const override;
     335             :     antlr4::tree::TerminalNode *FORTRAN_PREFIX();
     336             : 
     337             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     338             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     339             : 
     340             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     341             :    
     342             :   };
     343             : 
     344             :   Fortran_prefixContext* fortran_prefix();
     345             : 
     346             :   class  Openacc_directiveContext : public antlr4::ParserRuleContext {
     347             :   public:
     348             :     Openacc_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     349             :     virtual size_t getRuleIndex() const override;
     350             :     Atomic_directiveContext *atomic_directive();
     351             :     Cache_directiveContext *cache_directive();
     352             :     Data_directiveContext *data_directive();
     353             :     Declare_directiveContext *declare_directive();
     354             :     End_directiveContext *end_directive();
     355             :     Enter_data_directiveContext *enter_data_directive();
     356             :     Exit_data_directiveContext *exit_data_directive();
     357             :     Host_data_directiveContext *host_data_directive();
     358             :     Init_directiveContext *init_directive();
     359             :     Kernels_directiveContext *kernels_directive();
     360             :     Kernels_loop_directiveContext *kernels_loop_directive();
     361             :     Loop_directiveContext *loop_directive();
     362             :     Parallel_directiveContext *parallel_directive();
     363             :     Parallel_loop_directiveContext *parallel_loop_directive();
     364             :     Routine_directiveContext *routine_directive();
     365             :     Serial_directiveContext *serial_directive();
     366             :     Serial_loop_directiveContext *serial_loop_directive();
     367             :     Set_directiveContext *set_directive();
     368             :     Shutdown_directiveContext *shutdown_directive();
     369             :     Update_directiveContext *update_directive();
     370             :     Wait_directiveContext *wait_directive();
     371             : 
     372             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     373             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     374             : 
     375             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     376             :    
     377             :   };
     378             : 
     379             :   Openacc_directiveContext* openacc_directive();
     380             : 
     381             :   class  Atomic_directiveContext : public antlr4::ParserRuleContext {
     382             :   public:
     383             :     Atomic_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     384             :     virtual size_t getRuleIndex() const override;
     385             :     antlr4::tree::TerminalNode *ATOMIC();
     386             :     Atomic_clauseContext *atomic_clause();
     387             : 
     388             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     389             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     390             : 
     391             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     392             :    
     393             :   };
     394             : 
     395             :   Atomic_directiveContext* atomic_directive();
     396             : 
     397             :   class  Atomic_clauseContext : public antlr4::ParserRuleContext {
     398             :   public:
     399             :     Atomic_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     400             :     virtual size_t getRuleIndex() const override;
     401             :     Capture_clauseContext *capture_clause();
     402             :     Read_clauseContext *read_clause();
     403             :     Update_clauseContext *update_clause();
     404             :     Write_clauseContext *write_clause();
     405             : 
     406             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     407             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     408             : 
     409             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     410             :    
     411             :   };
     412             : 
     413             :   Atomic_clauseContext* atomic_clause();
     414             : 
     415             :   class  Cache_directiveContext : public antlr4::ParserRuleContext {
     416             :   public:
     417             :     Cache_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     418             :     virtual size_t getRuleIndex() const override;
     419             :     antlr4::tree::TerminalNode *CACHE();
     420             :     antlr4::tree::TerminalNode *LEFT_PAREN();
     421             :     Var_listContext *var_list();
     422             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
     423             :     Cache_directive_modifierContext *cache_directive_modifier();
     424             :     antlr4::tree::TerminalNode *COLON();
     425             : 
     426             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     427             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     428             : 
     429             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     430             :    
     431             :   };
     432             : 
     433             :   Cache_directiveContext* cache_directive();
     434             : 
     435             :   class  Cache_directive_modifierContext : public antlr4::ParserRuleContext {
     436             :   public:
     437             :     Cache_directive_modifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     438             :     virtual size_t getRuleIndex() const override;
     439             :     antlr4::tree::TerminalNode *READONLY();
     440             : 
     441             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     442             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     443             : 
     444             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     445             :    
     446             :   };
     447             : 
     448             :   Cache_directive_modifierContext* cache_directive_modifier();
     449             : 
     450             :   class  Data_directiveContext : public antlr4::ParserRuleContext {
     451             :   public:
     452             :     Data_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     453             :     virtual size_t getRuleIndex() const override;
     454             :     antlr4::tree::TerminalNode *DATA();
     455             :     Data_clause_listContext *data_clause_list();
     456             : 
     457             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     458             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     459             : 
     460             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     461             :    
     462             :   };
     463             : 
     464             :   Data_directiveContext* data_directive();
     465             : 
     466             :   class  Data_clause_listContext : public antlr4::ParserRuleContext {
     467             :   public:
     468             :     Data_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     469             :     virtual size_t getRuleIndex() const override;
     470             :     std::vector<Data_clausesContext *> data_clauses();
     471             :     Data_clausesContext* data_clauses(size_t i);
     472             : 
     473             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     474             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     475             : 
     476             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     477             :    
     478             :   };
     479             : 
     480             :   Data_clause_listContext* data_clause_list();
     481             : 
     482             :   class  Data_clausesContext : public antlr4::ParserRuleContext {
     483             :   public:
     484             :     Data_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     485             :     virtual size_t getRuleIndex() const override;
     486             :     Attach_clauseContext *attach_clause();
     487             :     Copy_clauseContext *copy_clause();
     488             :     Copyin_clauseContext *copyin_clause();
     489             :     Copyout_clauseContext *copyout_clause();
     490             :     Create_clauseContext *create_clause();
     491             :     Default_clauseContext *default_clause();
     492             :     Deviceptr_clauseContext *deviceptr_clause();
     493             :     If_clauseContext *if_clause();
     494             :     No_create_clauseContext *no_create_clause();
     495             :     Present_clauseContext *present_clause();
     496             : 
     497             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     498             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     499             : 
     500             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     501             :    
     502             :   };
     503             : 
     504             :   Data_clausesContext* data_clauses();
     505             : 
     506             :   class  Declare_directiveContext : public antlr4::ParserRuleContext {
     507             :   public:
     508             :     Declare_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     509             :     virtual size_t getRuleIndex() const override;
     510             :     antlr4::tree::TerminalNode *DECLARE();
     511             :     Declare_clause_listContext *declare_clause_list();
     512             : 
     513             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     514             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     515             : 
     516             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     517             :    
     518             :   };
     519             : 
     520             :   Declare_directiveContext* declare_directive();
     521             : 
     522             :   class  Declare_clause_listContext : public antlr4::ParserRuleContext {
     523             :   public:
     524             :     Declare_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     525             :     virtual size_t getRuleIndex() const override;
     526             :     std::vector<Declare_clausesContext *> declare_clauses();
     527             :     Declare_clausesContext* declare_clauses(size_t i);
     528             : 
     529             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     530             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     531             : 
     532             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     533             :    
     534             :   };
     535             : 
     536             :   Declare_clause_listContext* declare_clause_list();
     537             : 
     538             :   class  Declare_clausesContext : public antlr4::ParserRuleContext {
     539             :   public:
     540             :     Declare_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     541             :     virtual size_t getRuleIndex() const override;
     542             :     Copy_clauseContext *copy_clause();
     543             :     Copyin_clauseContext *copyin_clause();
     544             :     Copyout_no_modifier_clauseContext *copyout_no_modifier_clause();
     545             :     Create_no_modifier_clauseContext *create_no_modifier_clause();
     546             :     Device_resident_clauseContext *device_resident_clause();
     547             :     Deviceptr_clauseContext *deviceptr_clause();
     548             :     Link_clauseContext *link_clause();
     549             :     Present_clauseContext *present_clause();
     550             : 
     551             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     552             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     553             : 
     554             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     555             :    
     556             :   };
     557             : 
     558             :   Declare_clausesContext* declare_clauses();
     559             : 
     560             :   class  End_directiveContext : public antlr4::ParserRuleContext {
     561             :   public:
     562             :     End_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     563             :     virtual size_t getRuleIndex() const override;
     564             :     antlr4::tree::TerminalNode *END();
     565             :     End_clause_seqContext *end_clause_seq();
     566             : 
     567             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     568             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     569             : 
     570             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     571             :    
     572             :   };
     573             : 
     574             :   End_directiveContext* end_directive();
     575             : 
     576             :   class  End_clause_seqContext : public antlr4::ParserRuleContext {
     577             :   public:
     578             :     End_clause_seqContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     579             :     virtual size_t getRuleIndex() const override;
     580             :     Fortran_paired_directiveContext *fortran_paired_directive();
     581             : 
     582             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     583             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     584             : 
     585             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     586             :    
     587             :   };
     588             : 
     589             :   End_clause_seqContext* end_clause_seq();
     590             : 
     591             :   class  Fortran_paired_directiveContext : public antlr4::ParserRuleContext {
     592             :   public:
     593             :     Fortran_paired_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     594             :     virtual size_t getRuleIndex() const override;
     595             :     End_atomic_directiveContext *end_atomic_directive();
     596             :     End_data_directiveContext *end_data_directive();
     597             :     End_host_data_directiveContext *end_host_data_directive();
     598             :     End_kernels_directiveContext *end_kernels_directive();
     599             :     End_kernels_loop_directiveContext *end_kernels_loop_directive();
     600             :     End_parallel_directiveContext *end_parallel_directive();
     601             :     End_parallel_loop_directiveContext *end_parallel_loop_directive();
     602             :     End_serial_directiveContext *end_serial_directive();
     603             :     End_serial_loop_directiveContext *end_serial_loop_directive();
     604             : 
     605             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     606             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     607             : 
     608             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     609             :    
     610             :   };
     611             : 
     612             :   Fortran_paired_directiveContext* fortran_paired_directive();
     613             : 
     614             :   class  End_atomic_directiveContext : public antlr4::ParserRuleContext {
     615             :   public:
     616             :     End_atomic_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     617             :     virtual size_t getRuleIndex() const override;
     618             :     Atomic_directiveContext *atomic_directive();
     619             : 
     620             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     621             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     622             : 
     623             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     624             :    
     625             :   };
     626             : 
     627             :   End_atomic_directiveContext* end_atomic_directive();
     628             : 
     629             :   class  End_data_directiveContext : public antlr4::ParserRuleContext {
     630             :   public:
     631             :     End_data_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     632             :     virtual size_t getRuleIndex() const override;
     633             :     Data_directiveContext *data_directive();
     634             : 
     635             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     636             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     637             : 
     638             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     639             :    
     640             :   };
     641             : 
     642             :   End_data_directiveContext* end_data_directive();
     643             : 
     644             :   class  End_host_data_directiveContext : public antlr4::ParserRuleContext {
     645             :   public:
     646             :     End_host_data_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     647             :     virtual size_t getRuleIndex() const override;
     648             :     antlr4::tree::TerminalNode *HOST_DATA();
     649             : 
     650             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     651             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     652             : 
     653             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     654             :    
     655             :   };
     656             : 
     657             :   End_host_data_directiveContext* end_host_data_directive();
     658             : 
     659             :   class  End_kernels_directiveContext : public antlr4::ParserRuleContext {
     660             :   public:
     661             :     End_kernels_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     662             :     virtual size_t getRuleIndex() const override;
     663             :     Kernels_directiveContext *kernels_directive();
     664             : 
     665             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     666             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     667             : 
     668             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     669             :    
     670             :   };
     671             : 
     672             :   End_kernels_directiveContext* end_kernels_directive();
     673             : 
     674             :   class  End_kernels_loop_directiveContext : public antlr4::ParserRuleContext {
     675             :   public:
     676             :     End_kernels_loop_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     677             :     virtual size_t getRuleIndex() const override;
     678             :     Kernels_loop_directiveContext *kernels_loop_directive();
     679             : 
     680             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     681             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     682             : 
     683             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     684             :    
     685             :   };
     686             : 
     687             :   End_kernels_loop_directiveContext* end_kernels_loop_directive();
     688             : 
     689             :   class  End_parallel_directiveContext : public antlr4::ParserRuleContext {
     690             :   public:
     691             :     End_parallel_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     692             :     virtual size_t getRuleIndex() const override;
     693             :     Parallel_directiveContext *parallel_directive();
     694             : 
     695             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     696             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     697             : 
     698             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     699             :    
     700             :   };
     701             : 
     702             :   End_parallel_directiveContext* end_parallel_directive();
     703             : 
     704             :   class  End_parallel_loop_directiveContext : public antlr4::ParserRuleContext {
     705             :   public:
     706             :     End_parallel_loop_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     707             :     virtual size_t getRuleIndex() const override;
     708             :     Parallel_loop_directiveContext *parallel_loop_directive();
     709             : 
     710             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     711             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     712             : 
     713             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     714             :    
     715             :   };
     716             : 
     717             :   End_parallel_loop_directiveContext* end_parallel_loop_directive();
     718             : 
     719             :   class  End_serial_directiveContext : public antlr4::ParserRuleContext {
     720             :   public:
     721             :     End_serial_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     722             :     virtual size_t getRuleIndex() const override;
     723             :     Serial_directiveContext *serial_directive();
     724             : 
     725             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     726             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     727             : 
     728             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     729             :    
     730             :   };
     731             : 
     732             :   End_serial_directiveContext* end_serial_directive();
     733             : 
     734             :   class  End_serial_loop_directiveContext : public antlr4::ParserRuleContext {
     735             :   public:
     736             :     End_serial_loop_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     737             :     virtual size_t getRuleIndex() const override;
     738             :     Serial_loop_directiveContext *serial_loop_directive();
     739             : 
     740             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     741             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     742             : 
     743             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     744             :    
     745             :   };
     746             : 
     747             :   End_serial_loop_directiveContext* end_serial_loop_directive();
     748             : 
     749             :   class  Enter_data_directiveContext : public antlr4::ParserRuleContext {
     750             :   public:
     751             :     Enter_data_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     752             :     virtual size_t getRuleIndex() const override;
     753             :     antlr4::tree::TerminalNode *ENTER();
     754             :     antlr4::tree::TerminalNode *DATA();
     755             :     Enter_data_clause_listContext *enter_data_clause_list();
     756             : 
     757             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     758             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     759             : 
     760             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     761             :    
     762             :   };
     763             : 
     764             :   Enter_data_directiveContext* enter_data_directive();
     765             : 
     766             :   class  Enter_data_clause_listContext : public antlr4::ParserRuleContext {
     767             :   public:
     768             :     Enter_data_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     769             :     virtual size_t getRuleIndex() const override;
     770             :     std::vector<Enter_data_clausesContext *> enter_data_clauses();
     771             :     Enter_data_clausesContext* enter_data_clauses(size_t i);
     772             : 
     773             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     774             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     775             : 
     776             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     777             :    
     778             :   };
     779             : 
     780             :   Enter_data_clause_listContext* enter_data_clause_list();
     781             : 
     782             :   class  Enter_data_clausesContext : public antlr4::ParserRuleContext {
     783             :   public:
     784             :     Enter_data_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     785             :     virtual size_t getRuleIndex() const override;
     786             :     Async_clauseContext *async_clause();
     787             :     Attach_clauseContext *attach_clause();
     788             :     Copyin_no_modifier_clauseContext *copyin_no_modifier_clause();
     789             :     Create_clauseContext *create_clause();
     790             :     If_clauseContext *if_clause();
     791             :     Wait_argument_clauseContext *wait_argument_clause();
     792             : 
     793             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     794             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     795             : 
     796             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     797             :    
     798             :   };
     799             : 
     800             :   Enter_data_clausesContext* enter_data_clauses();
     801             : 
     802             :   class  Exit_data_directiveContext : public antlr4::ParserRuleContext {
     803             :   public:
     804             :     Exit_data_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     805             :     virtual size_t getRuleIndex() const override;
     806             :     antlr4::tree::TerminalNode *EXIT();
     807             :     antlr4::tree::TerminalNode *DATA();
     808             :     Exit_data_clause_listContext *exit_data_clause_list();
     809             : 
     810             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     811             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     812             : 
     813             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     814             :    
     815             :   };
     816             : 
     817             :   Exit_data_directiveContext* exit_data_directive();
     818             : 
     819             :   class  Exit_data_clause_listContext : public antlr4::ParserRuleContext {
     820             :   public:
     821             :     Exit_data_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     822             :     virtual size_t getRuleIndex() const override;
     823             :     std::vector<Exit_data_clausesContext *> exit_data_clauses();
     824             :     Exit_data_clausesContext* exit_data_clauses(size_t i);
     825             : 
     826             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     827             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     828             : 
     829             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     830             :    
     831             :   };
     832             : 
     833             :   Exit_data_clause_listContext* exit_data_clause_list();
     834             : 
     835             :   class  Exit_data_clausesContext : public antlr4::ParserRuleContext {
     836             :   public:
     837             :     Exit_data_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     838             :     virtual size_t getRuleIndex() const override;
     839             :     Async_clauseContext *async_clause();
     840             :     Copyout_no_modifier_clauseContext *copyout_no_modifier_clause();
     841             :     Delete_clauseContext *delete_clause();
     842             :     Detach_clauseContext *detach_clause();
     843             :     Finalize_clauseContext *finalize_clause();
     844             :     If_clauseContext *if_clause();
     845             :     Wait_argument_clauseContext *wait_argument_clause();
     846             : 
     847             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     848             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     849             : 
     850             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     851             :    
     852             :   };
     853             : 
     854             :   Exit_data_clausesContext* exit_data_clauses();
     855             : 
     856             :   class  Host_data_directiveContext : public antlr4::ParserRuleContext {
     857             :   public:
     858             :     Host_data_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     859             :     virtual size_t getRuleIndex() const override;
     860             :     antlr4::tree::TerminalNode *HOST_DATA();
     861             :     Host_data_clause_listContext *host_data_clause_list();
     862             : 
     863             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     864             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     865             : 
     866             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     867             :    
     868             :   };
     869             : 
     870             :   Host_data_directiveContext* host_data_directive();
     871             : 
     872             :   class  Host_data_clause_listContext : public antlr4::ParserRuleContext {
     873             :   public:
     874             :     Host_data_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     875             :     virtual size_t getRuleIndex() const override;
     876             :     std::vector<Host_data_clausesContext *> host_data_clauses();
     877             :     Host_data_clausesContext* host_data_clauses(size_t i);
     878             : 
     879             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     880             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     881             : 
     882             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     883             :    
     884             :   };
     885             : 
     886             :   Host_data_clause_listContext* host_data_clause_list();
     887             : 
     888             :   class  Host_data_clausesContext : public antlr4::ParserRuleContext {
     889             :   public:
     890             :     Host_data_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     891             :     virtual size_t getRuleIndex() const override;
     892             :     If_clauseContext *if_clause();
     893             :     If_present_clauseContext *if_present_clause();
     894             :     Use_device_clauseContext *use_device_clause();
     895             : 
     896             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     897             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     898             : 
     899             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     900             :    
     901             :   };
     902             : 
     903             :   Host_data_clausesContext* host_data_clauses();
     904             : 
     905             :   class  Init_directiveContext : public antlr4::ParserRuleContext {
     906             :   public:
     907             :     Init_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     908             :     virtual size_t getRuleIndex() const override;
     909             :     antlr4::tree::TerminalNode *INIT();
     910             :     Init_clause_listContext *init_clause_list();
     911             : 
     912             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     913             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     914             : 
     915             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     916             :    
     917             :   };
     918             : 
     919             :   Init_directiveContext* init_directive();
     920             : 
     921             :   class  Init_clause_listContext : public antlr4::ParserRuleContext {
     922             :   public:
     923             :     Init_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     924             :     virtual size_t getRuleIndex() const override;
     925             :     std::vector<Init_clausesContext *> init_clauses();
     926             :     Init_clausesContext* init_clauses(size_t i);
     927             : 
     928             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     929             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     930             : 
     931             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     932             :    
     933             :   };
     934             : 
     935             :   Init_clause_listContext* init_clause_list();
     936             : 
     937             :   class  Init_clausesContext : public antlr4::ParserRuleContext {
     938             :   public:
     939             :     Init_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     940             :     virtual size_t getRuleIndex() const override;
     941             :     Device_type_clauseContext *device_type_clause();
     942             :     Device_num_clauseContext *device_num_clause();
     943             :     If_clauseContext *if_clause();
     944             : 
     945             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     946             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     947             : 
     948             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     949             :    
     950             :   };
     951             : 
     952             :   Init_clausesContext* init_clauses();
     953             : 
     954             :   class  Kernels_directiveContext : public antlr4::ParserRuleContext {
     955             :   public:
     956             :     Kernels_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     957             :     virtual size_t getRuleIndex() const override;
     958             :     antlr4::tree::TerminalNode *KERNELS();
     959             :     Kernels_clause_listContext *kernels_clause_list();
     960             : 
     961             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     962             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     963             : 
     964             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     965             :    
     966             :   };
     967             : 
     968             :   Kernels_directiveContext* kernels_directive();
     969             : 
     970             :   class  Kernels_clause_listContext : public antlr4::ParserRuleContext {
     971             :   public:
     972             :     Kernels_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     973             :     virtual size_t getRuleIndex() const override;
     974             :     std::vector<Kernels_clausesContext *> kernels_clauses();
     975             :     Kernels_clausesContext* kernels_clauses(size_t i);
     976             : 
     977             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     978             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
     979             : 
     980             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
     981             :    
     982             :   };
     983             : 
     984             :   Kernels_clause_listContext* kernels_clause_list();
     985             : 
     986             :   class  Kernels_clausesContext : public antlr4::ParserRuleContext {
     987             :   public:
     988             :     Kernels_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     989             :     virtual size_t getRuleIndex() const override;
     990             :     Async_clauseContext *async_clause();
     991             :     Attach_clauseContext *attach_clause();
     992             :     Copy_clauseContext *copy_clause();
     993             :     Copyin_clauseContext *copyin_clause();
     994             :     Copyout_clauseContext *copyout_clause();
     995             :     Create_clauseContext *create_clause();
     996             :     Default_clauseContext *default_clause();
     997             :     Device_type_clauseContext *device_type_clause();
     998             :     Deviceptr_clauseContext *deviceptr_clause();
     999             :     If_clauseContext *if_clause();
    1000             :     No_create_clauseContext *no_create_clause();
    1001             :     Num_gangs_clauseContext *num_gangs_clause();
    1002             :     Num_workers_clauseContext *num_workers_clause();
    1003             :     Present_clauseContext *present_clause();
    1004             :     Self_clauseContext *self_clause();
    1005             :     Vector_length_clauseContext *vector_length_clause();
    1006             :     Wait_clauseContext *wait_clause();
    1007             : 
    1008             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1009             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1010             : 
    1011             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1012             :    
    1013             :   };
    1014             : 
    1015             :   Kernels_clausesContext* kernels_clauses();
    1016             : 
    1017             :   class  Kernels_loop_directiveContext : public antlr4::ParserRuleContext {
    1018             :   public:
    1019             :     Kernels_loop_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1020             :     virtual size_t getRuleIndex() const override;
    1021             :     antlr4::tree::TerminalNode *KERNELS();
    1022             :     antlr4::tree::TerminalNode *LOOP();
    1023             :     Kernels_loop_clause_listContext *kernels_loop_clause_list();
    1024             : 
    1025             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1026             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1027             : 
    1028             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1029             :    
    1030             :   };
    1031             : 
    1032             :   Kernels_loop_directiveContext* kernels_loop_directive();
    1033             : 
    1034             :   class  Kernels_loop_clause_listContext : public antlr4::ParserRuleContext {
    1035             :   public:
    1036             :     Kernels_loop_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1037             :     virtual size_t getRuleIndex() const override;
    1038             :     std::vector<Kernels_loop_clausesContext *> kernels_loop_clauses();
    1039             :     Kernels_loop_clausesContext* kernels_loop_clauses(size_t i);
    1040             : 
    1041             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1042             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1043             : 
    1044             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1045             :    
    1046             :   };
    1047             : 
    1048             :   Kernels_loop_clause_listContext* kernels_loop_clause_list();
    1049             : 
    1050             :   class  Kernels_loop_clausesContext : public antlr4::ParserRuleContext {
    1051             :   public:
    1052             :     Kernels_loop_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1053             :     virtual size_t getRuleIndex() const override;
    1054             :     Async_clauseContext *async_clause();
    1055             :     Attach_clauseContext *attach_clause();
    1056             :     Auto_clauseContext *auto_clause();
    1057             :     Collapse_clauseContext *collapse_clause();
    1058             :     Copy_clauseContext *copy_clause();
    1059             :     Copyin_clauseContext *copyin_clause();
    1060             :     Copyout_clauseContext *copyout_clause();
    1061             :     Create_clauseContext *create_clause();
    1062             :     Default_clauseContext *default_clause();
    1063             :     Device_type_clauseContext *device_type_clause();
    1064             :     Deviceptr_clauseContext *deviceptr_clause();
    1065             :     Gang_clauseContext *gang_clause();
    1066             :     If_clauseContext *if_clause();
    1067             :     Independent_clauseContext *independent_clause();
    1068             :     No_create_clauseContext *no_create_clause();
    1069             :     Num_gangs_clauseContext *num_gangs_clause();
    1070             :     Num_workers_clauseContext *num_workers_clause();
    1071             :     Present_clauseContext *present_clause();
    1072             :     Private_clauseContext *private_clause();
    1073             :     Reduction_clauseContext *reduction_clause();
    1074             :     Self_clauseContext *self_clause();
    1075             :     Seq_clauseContext *seq_clause();
    1076             :     Tile_clauseContext *tile_clause();
    1077             :     Vector_clauseContext *vector_clause();
    1078             :     Vector_length_clauseContext *vector_length_clause();
    1079             :     Wait_clauseContext *wait_clause();
    1080             :     Worker_clauseContext *worker_clause();
    1081             : 
    1082             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1083             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1084             : 
    1085             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1086             :    
    1087             :   };
    1088             : 
    1089             :   Kernels_loop_clausesContext* kernels_loop_clauses();
    1090             : 
    1091             :   class  Loop_directiveContext : public antlr4::ParserRuleContext {
    1092             :   public:
    1093             :     Loop_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1094             :     virtual size_t getRuleIndex() const override;
    1095             :     antlr4::tree::TerminalNode *LOOP();
    1096             :     Loop_clause_listContext *loop_clause_list();
    1097             : 
    1098             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1099             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1100             : 
    1101             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1102             :    
    1103             :   };
    1104             : 
    1105             :   Loop_directiveContext* loop_directive();
    1106             : 
    1107             :   class  Loop_clause_listContext : public antlr4::ParserRuleContext {
    1108             :   public:
    1109             :     Loop_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1110             :     virtual size_t getRuleIndex() const override;
    1111             :     std::vector<Loop_clausesContext *> loop_clauses();
    1112             :     Loop_clausesContext* loop_clauses(size_t i);
    1113             : 
    1114             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1115             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1116             : 
    1117             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1118             :    
    1119             :   };
    1120             : 
    1121             :   Loop_clause_listContext* loop_clause_list();
    1122             : 
    1123             :   class  Loop_clausesContext : public antlr4::ParserRuleContext {
    1124             :   public:
    1125             :     Loop_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1126             :     virtual size_t getRuleIndex() const override;
    1127             :     Auto_clauseContext *auto_clause();
    1128             :     Collapse_clauseContext *collapse_clause();
    1129             :     Device_type_clauseContext *device_type_clause();
    1130             :     Gang_clauseContext *gang_clause();
    1131             :     Independent_clauseContext *independent_clause();
    1132             :     Private_clauseContext *private_clause();
    1133             :     Reduction_clauseContext *reduction_clause();
    1134             :     Seq_clauseContext *seq_clause();
    1135             :     Tile_clauseContext *tile_clause();
    1136             :     Vector_clauseContext *vector_clause();
    1137             :     Worker_clauseContext *worker_clause();
    1138             : 
    1139             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1140             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1141             : 
    1142             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1143             :    
    1144             :   };
    1145             : 
    1146             :   Loop_clausesContext* loop_clauses();
    1147             : 
    1148             :   class  Parallel_directiveContext : public antlr4::ParserRuleContext {
    1149             :   public:
    1150             :     Parallel_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1151             :     virtual size_t getRuleIndex() const override;
    1152             :     antlr4::tree::TerminalNode *PARALLEL();
    1153             :     Parallel_clause_listContext *parallel_clause_list();
    1154             : 
    1155             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1156             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1157             : 
    1158             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1159             :    
    1160             :   };
    1161             : 
    1162             :   Parallel_directiveContext* parallel_directive();
    1163             : 
    1164             :   class  Parallel_clause_listContext : public antlr4::ParserRuleContext {
    1165             :   public:
    1166             :     Parallel_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1167             :     virtual size_t getRuleIndex() const override;
    1168             :     std::vector<Parallel_clausesContext *> parallel_clauses();
    1169             :     Parallel_clausesContext* parallel_clauses(size_t i);
    1170             : 
    1171             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1172             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1173             : 
    1174             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1175             :    
    1176             :   };
    1177             : 
    1178             :   Parallel_clause_listContext* parallel_clause_list();
    1179             : 
    1180             :   class  Parallel_clausesContext : public antlr4::ParserRuleContext {
    1181             :   public:
    1182             :     Parallel_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1183             :     virtual size_t getRuleIndex() const override;
    1184             :     Async_clauseContext *async_clause();
    1185             :     Attach_clauseContext *attach_clause();
    1186             :     Copy_clauseContext *copy_clause();
    1187             :     Copyin_clauseContext *copyin_clause();
    1188             :     Copyout_clauseContext *copyout_clause();
    1189             :     Create_clauseContext *create_clause();
    1190             :     Default_clauseContext *default_clause();
    1191             :     Device_type_clauseContext *device_type_clause();
    1192             :     Deviceptr_clauseContext *deviceptr_clause();
    1193             :     Firstprivate_clauseContext *firstprivate_clause();
    1194             :     If_clauseContext *if_clause();
    1195             :     No_create_clauseContext *no_create_clause();
    1196             :     Num_gangs_clauseContext *num_gangs_clause();
    1197             :     Num_workers_clauseContext *num_workers_clause();
    1198             :     Present_clauseContext *present_clause();
    1199             :     Private_clauseContext *private_clause();
    1200             :     Reduction_clauseContext *reduction_clause();
    1201             :     Self_clauseContext *self_clause();
    1202             :     Vector_length_clauseContext *vector_length_clause();
    1203             :     Wait_clauseContext *wait_clause();
    1204             : 
    1205             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1206             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1207             : 
    1208             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1209             :    
    1210             :   };
    1211             : 
    1212             :   Parallel_clausesContext* parallel_clauses();
    1213             : 
    1214             :   class  Parallel_loop_directiveContext : public antlr4::ParserRuleContext {
    1215             :   public:
    1216             :     Parallel_loop_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1217             :     virtual size_t getRuleIndex() const override;
    1218             :     antlr4::tree::TerminalNode *PARALLEL();
    1219             :     antlr4::tree::TerminalNode *LOOP();
    1220             :     Parallel_loop_clause_listContext *parallel_loop_clause_list();
    1221             : 
    1222             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1223             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1224             : 
    1225             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1226             :    
    1227             :   };
    1228             : 
    1229             :   Parallel_loop_directiveContext* parallel_loop_directive();
    1230             : 
    1231             :   class  Parallel_loop_clause_listContext : public antlr4::ParserRuleContext {
    1232             :   public:
    1233             :     Parallel_loop_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1234             :     virtual size_t getRuleIndex() const override;
    1235             :     std::vector<Parallel_loop_clausesContext *> parallel_loop_clauses();
    1236             :     Parallel_loop_clausesContext* parallel_loop_clauses(size_t i);
    1237             : 
    1238             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1239             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1240             : 
    1241             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1242             :    
    1243             :   };
    1244             : 
    1245             :   Parallel_loop_clause_listContext* parallel_loop_clause_list();
    1246             : 
    1247             :   class  Parallel_loop_clausesContext : public antlr4::ParserRuleContext {
    1248             :   public:
    1249             :     Parallel_loop_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1250             :     virtual size_t getRuleIndex() const override;
    1251             :     Async_clauseContext *async_clause();
    1252             :     Attach_clauseContext *attach_clause();
    1253             :     Auto_clauseContext *auto_clause();
    1254             :     Collapse_clauseContext *collapse_clause();
    1255             :     Copy_clauseContext *copy_clause();
    1256             :     Copyin_clauseContext *copyin_clause();
    1257             :     Copyout_clauseContext *copyout_clause();
    1258             :     Create_clauseContext *create_clause();
    1259             :     Default_clauseContext *default_clause();
    1260             :     Device_type_clauseContext *device_type_clause();
    1261             :     Deviceptr_clauseContext *deviceptr_clause();
    1262             :     Firstprivate_clauseContext *firstprivate_clause();
    1263             :     Gang_clauseContext *gang_clause();
    1264             :     If_clauseContext *if_clause();
    1265             :     Independent_clauseContext *independent_clause();
    1266             :     No_create_clauseContext *no_create_clause();
    1267             :     Num_gangs_clauseContext *num_gangs_clause();
    1268             :     Num_workers_clauseContext *num_workers_clause();
    1269             :     Present_clauseContext *present_clause();
    1270             :     Private_clauseContext *private_clause();
    1271             :     Reduction_clauseContext *reduction_clause();
    1272             :     Self_clauseContext *self_clause();
    1273             :     Seq_clauseContext *seq_clause();
    1274             :     Tile_clauseContext *tile_clause();
    1275             :     Vector_clauseContext *vector_clause();
    1276             :     Vector_length_clauseContext *vector_length_clause();
    1277             :     Wait_clauseContext *wait_clause();
    1278             :     Worker_clauseContext *worker_clause();
    1279             : 
    1280             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1281             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1282             : 
    1283             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1284             :    
    1285             :   };
    1286             : 
    1287             :   Parallel_loop_clausesContext* parallel_loop_clauses();
    1288             : 
    1289             :   class  Routine_directiveContext : public antlr4::ParserRuleContext {
    1290             :   public:
    1291             :     Routine_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1292             :     virtual size_t getRuleIndex() const override;
    1293             :     antlr4::tree::TerminalNode *ROUTINE();
    1294             :     Routine_clause_listContext *routine_clause_list();
    1295             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1296             :     NameContext *name();
    1297             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1298             : 
    1299             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1300             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1301             : 
    1302             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1303             :    
    1304             :   };
    1305             : 
    1306             :   Routine_directiveContext* routine_directive();
    1307             : 
    1308             :   class  Routine_clause_listContext : public antlr4::ParserRuleContext {
    1309             :   public:
    1310             :     Routine_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1311             :     virtual size_t getRuleIndex() const override;
    1312             :     std::vector<Routine_clausesContext *> routine_clauses();
    1313             :     Routine_clausesContext* routine_clauses(size_t i);
    1314             : 
    1315             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1316             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1317             : 
    1318             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1319             :    
    1320             :   };
    1321             : 
    1322             :   Routine_clause_listContext* routine_clause_list();
    1323             : 
    1324             :   class  Routine_clausesContext : public antlr4::ParserRuleContext {
    1325             :   public:
    1326             :     Routine_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1327             :     virtual size_t getRuleIndex() const override;
    1328             :     Bind_clauseContext *bind_clause();
    1329             :     Device_type_clauseContext *device_type_clause();
    1330             :     Gang_no_list_clauseContext *gang_no_list_clause();
    1331             :     Nohost_clauseContext *nohost_clause();
    1332             :     Seq_clauseContext *seq_clause();
    1333             :     Vector_no_modifier_clauseContext *vector_no_modifier_clause();
    1334             :     Worker_no_modifier_clauseContext *worker_no_modifier_clause();
    1335             : 
    1336             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1337             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1338             : 
    1339             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1340             :    
    1341             :   };
    1342             : 
    1343             :   Routine_clausesContext* routine_clauses();
    1344             : 
    1345             :   class  NameContext : public antlr4::ParserRuleContext {
    1346             :   public:
    1347             :     NameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1348             :     virtual size_t getRuleIndex() const override;
    1349             :     antlr4::tree::TerminalNode *EXPR();
    1350             : 
    1351             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1352             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1353             : 
    1354             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1355             :    
    1356             :   };
    1357             : 
    1358             :   NameContext* name();
    1359             : 
    1360             :   class  Serial_directiveContext : public antlr4::ParserRuleContext {
    1361             :   public:
    1362             :     Serial_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1363             :     virtual size_t getRuleIndex() const override;
    1364             :     antlr4::tree::TerminalNode *SERIAL();
    1365             :     Serial_clause_listContext *serial_clause_list();
    1366             : 
    1367             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1368             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1369             : 
    1370             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1371             :    
    1372             :   };
    1373             : 
    1374             :   Serial_directiveContext* serial_directive();
    1375             : 
    1376             :   class  Serial_clause_listContext : public antlr4::ParserRuleContext {
    1377             :   public:
    1378             :     Serial_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1379             :     virtual size_t getRuleIndex() const override;
    1380             :     std::vector<Serial_clausesContext *> serial_clauses();
    1381             :     Serial_clausesContext* serial_clauses(size_t i);
    1382             : 
    1383             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1384             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1385             : 
    1386             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1387             :    
    1388             :   };
    1389             : 
    1390             :   Serial_clause_listContext* serial_clause_list();
    1391             : 
    1392             :   class  Serial_clausesContext : public antlr4::ParserRuleContext {
    1393             :   public:
    1394             :     Serial_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1395             :     virtual size_t getRuleIndex() const override;
    1396             :     Async_clauseContext *async_clause();
    1397             :     Attach_clauseContext *attach_clause();
    1398             :     Copy_clauseContext *copy_clause();
    1399             :     Copyin_clauseContext *copyin_clause();
    1400             :     Copyout_clauseContext *copyout_clause();
    1401             :     Create_clauseContext *create_clause();
    1402             :     Default_clauseContext *default_clause();
    1403             :     Device_type_clauseContext *device_type_clause();
    1404             :     Deviceptr_clauseContext *deviceptr_clause();
    1405             :     Firstprivate_clauseContext *firstprivate_clause();
    1406             :     If_clauseContext *if_clause();
    1407             :     No_create_clauseContext *no_create_clause();
    1408             :     Present_clauseContext *present_clause();
    1409             :     Private_clauseContext *private_clause();
    1410             :     Reduction_clauseContext *reduction_clause();
    1411             :     Self_clauseContext *self_clause();
    1412             :     Wait_clauseContext *wait_clause();
    1413             : 
    1414             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1415             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1416             : 
    1417             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1418             :    
    1419             :   };
    1420             : 
    1421             :   Serial_clausesContext* serial_clauses();
    1422             : 
    1423             :   class  Serial_loop_directiveContext : public antlr4::ParserRuleContext {
    1424             :   public:
    1425             :     Serial_loop_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1426             :     virtual size_t getRuleIndex() const override;
    1427             :     antlr4::tree::TerminalNode *SERIAL();
    1428             :     antlr4::tree::TerminalNode *LOOP();
    1429             :     Serial_loop_clause_listContext *serial_loop_clause_list();
    1430             : 
    1431             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1432             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1433             : 
    1434             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1435             :    
    1436             :   };
    1437             : 
    1438             :   Serial_loop_directiveContext* serial_loop_directive();
    1439             : 
    1440             :   class  Serial_loop_clause_listContext : public antlr4::ParserRuleContext {
    1441             :   public:
    1442             :     Serial_loop_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1443             :     virtual size_t getRuleIndex() const override;
    1444             :     std::vector<Serial_loop_clausesContext *> serial_loop_clauses();
    1445             :     Serial_loop_clausesContext* serial_loop_clauses(size_t i);
    1446             : 
    1447             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1448             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1449             : 
    1450             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1451             :    
    1452             :   };
    1453             : 
    1454             :   Serial_loop_clause_listContext* serial_loop_clause_list();
    1455             : 
    1456             :   class  Serial_loop_clausesContext : public antlr4::ParserRuleContext {
    1457             :   public:
    1458             :     Serial_loop_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1459             :     virtual size_t getRuleIndex() const override;
    1460             :     Async_clauseContext *async_clause();
    1461             :     Attach_clauseContext *attach_clause();
    1462             :     Auto_clauseContext *auto_clause();
    1463             :     Collapse_clauseContext *collapse_clause();
    1464             :     Copy_clauseContext *copy_clause();
    1465             :     Copyin_clauseContext *copyin_clause();
    1466             :     Copyout_clauseContext *copyout_clause();
    1467             :     Create_clauseContext *create_clause();
    1468             :     Default_clauseContext *default_clause();
    1469             :     Device_type_clauseContext *device_type_clause();
    1470             :     Deviceptr_clauseContext *deviceptr_clause();
    1471             :     Firstprivate_clauseContext *firstprivate_clause();
    1472             :     Gang_clauseContext *gang_clause();
    1473             :     If_clauseContext *if_clause();
    1474             :     Independent_clauseContext *independent_clause();
    1475             :     No_create_clauseContext *no_create_clause();
    1476             :     Present_clauseContext *present_clause();
    1477             :     Private_clauseContext *private_clause();
    1478             :     Reduction_clauseContext *reduction_clause();
    1479             :     Self_clauseContext *self_clause();
    1480             :     Seq_clauseContext *seq_clause();
    1481             :     Tile_clauseContext *tile_clause();
    1482             :     Vector_clauseContext *vector_clause();
    1483             :     Wait_clauseContext *wait_clause();
    1484             :     Worker_clauseContext *worker_clause();
    1485             : 
    1486             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1487             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1488             : 
    1489             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1490             :    
    1491             :   };
    1492             : 
    1493             :   Serial_loop_clausesContext* serial_loop_clauses();
    1494             : 
    1495             :   class  Set_directiveContext : public antlr4::ParserRuleContext {
    1496             :   public:
    1497             :     Set_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1498             :     virtual size_t getRuleIndex() const override;
    1499             :     antlr4::tree::TerminalNode *SET();
    1500             :     Set_clause_listContext *set_clause_list();
    1501             : 
    1502             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1503             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1504             : 
    1505             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1506             :    
    1507             :   };
    1508             : 
    1509             :   Set_directiveContext* set_directive();
    1510             : 
    1511             :   class  Set_clause_listContext : public antlr4::ParserRuleContext {
    1512             :   public:
    1513             :     Set_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1514             :     virtual size_t getRuleIndex() const override;
    1515             :     std::vector<Set_clausesContext *> set_clauses();
    1516             :     Set_clausesContext* set_clauses(size_t i);
    1517             : 
    1518             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1519             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1520             : 
    1521             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1522             :    
    1523             :   };
    1524             : 
    1525             :   Set_clause_listContext* set_clause_list();
    1526             : 
    1527             :   class  Set_clausesContext : public antlr4::ParserRuleContext {
    1528             :   public:
    1529             :     Set_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1530             :     virtual size_t getRuleIndex() const override;
    1531             :     Default_async_clauseContext *default_async_clause();
    1532             :     Device_type_clauseContext *device_type_clause();
    1533             :     Device_num_clauseContext *device_num_clause();
    1534             :     If_clauseContext *if_clause();
    1535             : 
    1536             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1537             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1538             : 
    1539             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1540             :    
    1541             :   };
    1542             : 
    1543             :   Set_clausesContext* set_clauses();
    1544             : 
    1545             :   class  Shutdown_directiveContext : public antlr4::ParserRuleContext {
    1546             :   public:
    1547             :     Shutdown_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1548             :     virtual size_t getRuleIndex() const override;
    1549             :     antlr4::tree::TerminalNode *SHUTDOWN();
    1550             :     Shutdown_clause_listContext *shutdown_clause_list();
    1551             : 
    1552             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1553             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1554             : 
    1555             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1556             :    
    1557             :   };
    1558             : 
    1559             :   Shutdown_directiveContext* shutdown_directive();
    1560             : 
    1561             :   class  Shutdown_clause_listContext : public antlr4::ParserRuleContext {
    1562             :   public:
    1563             :     Shutdown_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1564             :     virtual size_t getRuleIndex() const override;
    1565             :     std::vector<Shutdown_clausesContext *> shutdown_clauses();
    1566             :     Shutdown_clausesContext* shutdown_clauses(size_t i);
    1567             : 
    1568             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1569             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1570             : 
    1571             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1572             :    
    1573             :   };
    1574             : 
    1575             :   Shutdown_clause_listContext* shutdown_clause_list();
    1576             : 
    1577             :   class  Shutdown_clausesContext : public antlr4::ParserRuleContext {
    1578             :   public:
    1579             :     Shutdown_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1580             :     virtual size_t getRuleIndex() const override;
    1581             :     Device_type_clauseContext *device_type_clause();
    1582             :     Device_num_clauseContext *device_num_clause();
    1583             :     If_clauseContext *if_clause();
    1584             : 
    1585             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1586             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1587             : 
    1588             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1589             :    
    1590             :   };
    1591             : 
    1592             :   Shutdown_clausesContext* shutdown_clauses();
    1593             : 
    1594             :   class  Update_directiveContext : public antlr4::ParserRuleContext {
    1595             :   public:
    1596             :     Update_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1597             :     virtual size_t getRuleIndex() const override;
    1598             :     antlr4::tree::TerminalNode *UPDATE();
    1599             :     Update_clause_listContext *update_clause_list();
    1600             : 
    1601             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1602             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1603             : 
    1604             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1605             :    
    1606             :   };
    1607             : 
    1608             :   Update_directiveContext* update_directive();
    1609             : 
    1610             :   class  Update_clause_listContext : public antlr4::ParserRuleContext {
    1611             :   public:
    1612             :     Update_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1613             :     virtual size_t getRuleIndex() const override;
    1614             :     std::vector<Update_clausesContext *> update_clauses();
    1615             :     Update_clausesContext* update_clauses(size_t i);
    1616             : 
    1617             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1618             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1619             : 
    1620             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1621             :    
    1622             :   };
    1623             : 
    1624             :   Update_clause_listContext* update_clause_list();
    1625             : 
    1626             :   class  Update_clausesContext : public antlr4::ParserRuleContext {
    1627             :   public:
    1628             :     Update_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1629             :     virtual size_t getRuleIndex() const override;
    1630             :     Async_clauseContext *async_clause();
    1631             :     Device_clauseContext *device_clause();
    1632             :     Device_type_clauseContext *device_type_clause();
    1633             :     Host_clauseContext *host_clause();
    1634             :     If_clauseContext *if_clause();
    1635             :     If_present_clauseContext *if_present_clause();
    1636             :     Self_list_clauseContext *self_list_clause();
    1637             :     Wait_argument_clauseContext *wait_argument_clause();
    1638             : 
    1639             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1640             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1641             : 
    1642             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1643             :    
    1644             :   };
    1645             : 
    1646             :   Update_clausesContext* update_clauses();
    1647             : 
    1648             :   class  Wait_directiveContext : public antlr4::ParserRuleContext {
    1649             :   public:
    1650             :     Wait_directiveContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1651             :     virtual size_t getRuleIndex() const override;
    1652             :     antlr4::tree::TerminalNode *WAIT();
    1653             :     Wait_clause_listContext *wait_clause_list();
    1654             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1655             :     Wait_argumentContext *wait_argument();
    1656             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1657             : 
    1658             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1659             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1660             : 
    1661             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1662             :    
    1663             :   };
    1664             : 
    1665             :   Wait_directiveContext* wait_directive();
    1666             : 
    1667             :   class  Wait_clause_listContext : public antlr4::ParserRuleContext {
    1668             :   public:
    1669             :     Wait_clause_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1670             :     virtual size_t getRuleIndex() const override;
    1671             :     std::vector<Wait_clausesContext *> wait_clauses();
    1672             :     Wait_clausesContext* wait_clauses(size_t i);
    1673             : 
    1674             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1675             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1676             : 
    1677             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1678             :    
    1679             :   };
    1680             : 
    1681             :   Wait_clause_listContext* wait_clause_list();
    1682             : 
    1683             :   class  Wait_clausesContext : public antlr4::ParserRuleContext {
    1684             :   public:
    1685             :     Wait_clausesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1686             :     virtual size_t getRuleIndex() const override;
    1687             :     Async_clauseContext *async_clause();
    1688             :     If_clauseContext *if_clause();
    1689             : 
    1690             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1691             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1692             : 
    1693             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1694             :    
    1695             :   };
    1696             : 
    1697             :   Wait_clausesContext* wait_clauses();
    1698             : 
    1699             :   class  Async_clauseContext : public antlr4::ParserRuleContext {
    1700             :   public:
    1701             :     Async_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1702             :     virtual size_t getRuleIndex() const override;
    1703             :     antlr4::tree::TerminalNode *ASYNC();
    1704             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1705             :     Int_exprContext *int_expr();
    1706             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1707             : 
    1708             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1709             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1710             : 
    1711             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1712             :    
    1713             :   };
    1714             : 
    1715             :   Async_clauseContext* async_clause();
    1716             : 
    1717             :   class  Attach_clauseContext : public antlr4::ParserRuleContext {
    1718             :   public:
    1719             :     Attach_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1720             :     virtual size_t getRuleIndex() const override;
    1721             :     antlr4::tree::TerminalNode *ATTACH();
    1722             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1723             :     Var_listContext *var_list();
    1724             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1725             : 
    1726             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1727             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1728             : 
    1729             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1730             :    
    1731             :   };
    1732             : 
    1733             :   Attach_clauseContext* attach_clause();
    1734             : 
    1735             :   class  Auto_clauseContext : public antlr4::ParserRuleContext {
    1736             :   public:
    1737             :     Auto_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1738             :     virtual size_t getRuleIndex() const override;
    1739             :     antlr4::tree::TerminalNode *AUTO();
    1740             : 
    1741             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1742             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1743             : 
    1744             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1745             :    
    1746             :   };
    1747             : 
    1748             :   Auto_clauseContext* auto_clause();
    1749             : 
    1750             :   class  Bind_clauseContext : public antlr4::ParserRuleContext {
    1751             :   public:
    1752             :     Bind_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1753             :     virtual size_t getRuleIndex() const override;
    1754             :     antlr4::tree::TerminalNode *BIND();
    1755             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1756             :     Name_or_stringContext *name_or_string();
    1757             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1758             : 
    1759             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1760             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1761             : 
    1762             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1763             :    
    1764             :   };
    1765             : 
    1766             :   Bind_clauseContext* bind_clause();
    1767             : 
    1768             :   class  Name_or_stringContext : public antlr4::ParserRuleContext {
    1769             :   public:
    1770             :     Name_or_stringContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1771             :     virtual size_t getRuleIndex() const override;
    1772             :     antlr4::tree::TerminalNode *EXPR();
    1773             : 
    1774             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1775             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1776             : 
    1777             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1778             :    
    1779             :   };
    1780             : 
    1781             :   Name_or_stringContext* name_or_string();
    1782             : 
    1783             :   class  Capture_clauseContext : public antlr4::ParserRuleContext {
    1784             :   public:
    1785             :     Capture_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1786             :     virtual size_t getRuleIndex() const override;
    1787             :     antlr4::tree::TerminalNode *CAPTURE();
    1788             : 
    1789             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1790             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1791             : 
    1792             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1793             :    
    1794             :   };
    1795             : 
    1796             :   Capture_clauseContext* capture_clause();
    1797             : 
    1798             :   class  Collapse_clauseContext : public antlr4::ParserRuleContext {
    1799             :   public:
    1800             :     Collapse_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1801             :     virtual size_t getRuleIndex() const override;
    1802             :     antlr4::tree::TerminalNode *COLLAPSE();
    1803             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1804             :     Const_intContext *const_int();
    1805             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1806             : 
    1807             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1808             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1809             : 
    1810             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1811             :    
    1812             :   };
    1813             : 
    1814             :   Collapse_clauseContext* collapse_clause();
    1815             : 
    1816             :   class  Copy_clauseContext : public antlr4::ParserRuleContext {
    1817             :   public:
    1818             :     Copy_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1819             :     virtual size_t getRuleIndex() const override;
    1820             :     antlr4::tree::TerminalNode *COPY();
    1821             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1822             :     Var_listContext *var_list();
    1823             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1824             : 
    1825             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1826             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1827             : 
    1828             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1829             :    
    1830             :   };
    1831             : 
    1832             :   Copy_clauseContext* copy_clause();
    1833             : 
    1834             :   class  Copyin_clauseContext : public antlr4::ParserRuleContext {
    1835             :   public:
    1836             :     Copyin_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1837             :     virtual size_t getRuleIndex() const override;
    1838             :     antlr4::tree::TerminalNode *COPYIN();
    1839             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1840             :     Var_listContext *var_list();
    1841             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1842             :     Copyin_clause_modifierContext *copyin_clause_modifier();
    1843             :     antlr4::tree::TerminalNode *COLON();
    1844             : 
    1845             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1846             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1847             : 
    1848             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1849             :    
    1850             :   };
    1851             : 
    1852             :   Copyin_clauseContext* copyin_clause();
    1853             : 
    1854             :   class  Copyin_clause_modifierContext : public antlr4::ParserRuleContext {
    1855             :   public:
    1856             :     Copyin_clause_modifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1857             :     virtual size_t getRuleIndex() const override;
    1858             :     antlr4::tree::TerminalNode *READONLY();
    1859             : 
    1860             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1861             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1862             : 
    1863             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1864             :    
    1865             :   };
    1866             : 
    1867             :   Copyin_clause_modifierContext* copyin_clause_modifier();
    1868             : 
    1869             :   class  Copyin_no_modifier_clauseContext : public antlr4::ParserRuleContext {
    1870             :   public:
    1871             :     Copyin_no_modifier_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1872             :     virtual size_t getRuleIndex() const override;
    1873             :     antlr4::tree::TerminalNode *COPYIN();
    1874             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1875             :     Var_listContext *var_list();
    1876             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1877             : 
    1878             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1879             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1880             : 
    1881             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1882             :    
    1883             :   };
    1884             : 
    1885             :   Copyin_no_modifier_clauseContext* copyin_no_modifier_clause();
    1886             : 
    1887             :   class  Copyout_clauseContext : public antlr4::ParserRuleContext {
    1888             :   public:
    1889             :     Copyout_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1890             :     virtual size_t getRuleIndex() const override;
    1891             :     antlr4::tree::TerminalNode *COPYOUT();
    1892             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1893             :     Var_listContext *var_list();
    1894             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1895             :     Copyout_clause_modifierContext *copyout_clause_modifier();
    1896             :     antlr4::tree::TerminalNode *COLON();
    1897             : 
    1898             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1899             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1900             : 
    1901             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1902             :    
    1903             :   };
    1904             : 
    1905             :   Copyout_clauseContext* copyout_clause();
    1906             : 
    1907             :   class  Copyout_clause_modifierContext : public antlr4::ParserRuleContext {
    1908             :   public:
    1909             :     Copyout_clause_modifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1910             :     virtual size_t getRuleIndex() const override;
    1911             :     antlr4::tree::TerminalNode *ZERO();
    1912             : 
    1913             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1914             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1915             : 
    1916             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1917             :    
    1918             :   };
    1919             : 
    1920             :   Copyout_clause_modifierContext* copyout_clause_modifier();
    1921             : 
    1922             :   class  Copyout_no_modifier_clauseContext : public antlr4::ParserRuleContext {
    1923             :   public:
    1924             :     Copyout_no_modifier_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1925             :     virtual size_t getRuleIndex() const override;
    1926             :     antlr4::tree::TerminalNode *COPYOUT();
    1927             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1928             :     Var_listContext *var_list();
    1929             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1930             : 
    1931             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1932             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1933             : 
    1934             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1935             :    
    1936             :   };
    1937             : 
    1938             :   Copyout_no_modifier_clauseContext* copyout_no_modifier_clause();
    1939             : 
    1940             :   class  Create_clauseContext : public antlr4::ParserRuleContext {
    1941             :   public:
    1942             :     Create_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1943             :     virtual size_t getRuleIndex() const override;
    1944             :     antlr4::tree::TerminalNode *CREATE();
    1945             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1946             :     Var_listContext *var_list();
    1947             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1948             :     Create_clause_modifierContext *create_clause_modifier();
    1949             :     antlr4::tree::TerminalNode *COLON();
    1950             : 
    1951             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1952             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1953             : 
    1954             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1955             :    
    1956             :   };
    1957             : 
    1958             :   Create_clauseContext* create_clause();
    1959             : 
    1960             :   class  Create_clause_modifierContext : public antlr4::ParserRuleContext {
    1961             :   public:
    1962             :     Create_clause_modifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1963             :     virtual size_t getRuleIndex() const override;
    1964             :     antlr4::tree::TerminalNode *ZERO();
    1965             : 
    1966             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1967             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1968             : 
    1969             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1970             :    
    1971             :   };
    1972             : 
    1973             :   Create_clause_modifierContext* create_clause_modifier();
    1974             : 
    1975             :   class  Create_no_modifier_clauseContext : public antlr4::ParserRuleContext {
    1976             :   public:
    1977             :     Create_no_modifier_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1978             :     virtual size_t getRuleIndex() const override;
    1979             :     antlr4::tree::TerminalNode *CREATE();
    1980             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1981             :     Var_listContext *var_list();
    1982             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    1983             : 
    1984             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    1985             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    1986             : 
    1987             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    1988             :    
    1989             :   };
    1990             : 
    1991             :   Create_no_modifier_clauseContext* create_no_modifier_clause();
    1992             : 
    1993             :   class  Default_clauseContext : public antlr4::ParserRuleContext {
    1994             :   public:
    1995             :     Default_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    1996             :     virtual size_t getRuleIndex() const override;
    1997             :     antlr4::tree::TerminalNode *DEFAULT();
    1998             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    1999             :     Default_kindContext *default_kind();
    2000             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2001             : 
    2002             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2003             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2004             : 
    2005             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2006             :    
    2007             :   };
    2008             : 
    2009             :   Default_clauseContext* default_clause();
    2010             : 
    2011             :   class  Default_kindContext : public antlr4::ParserRuleContext {
    2012             :   public:
    2013             :     Default_kindContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2014             :     virtual size_t getRuleIndex() const override;
    2015             :     antlr4::tree::TerminalNode *NONE();
    2016             :     antlr4::tree::TerminalNode *PRESENT();
    2017             : 
    2018             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2019             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2020             : 
    2021             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2022             :    
    2023             :   };
    2024             : 
    2025             :   Default_kindContext* default_kind();
    2026             : 
    2027             :   class  Default_async_clauseContext : public antlr4::ParserRuleContext {
    2028             :   public:
    2029             :     Default_async_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2030             :     virtual size_t getRuleIndex() const override;
    2031             :     antlr4::tree::TerminalNode *DEFAULT_ASYNC();
    2032             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2033             :     Int_exprContext *int_expr();
    2034             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2035             : 
    2036             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2037             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2038             : 
    2039             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2040             :    
    2041             :   };
    2042             : 
    2043             :   Default_async_clauseContext* default_async_clause();
    2044             : 
    2045             :   class  Delete_clauseContext : public antlr4::ParserRuleContext {
    2046             :   public:
    2047             :     Delete_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2048             :     virtual size_t getRuleIndex() const override;
    2049             :     antlr4::tree::TerminalNode *DELETE();
    2050             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2051             :     Var_listContext *var_list();
    2052             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2053             : 
    2054             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2055             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2056             : 
    2057             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2058             :    
    2059             :   };
    2060             : 
    2061             :   Delete_clauseContext* delete_clause();
    2062             : 
    2063             :   class  Detach_clauseContext : public antlr4::ParserRuleContext {
    2064             :   public:
    2065             :     Detach_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2066             :     virtual size_t getRuleIndex() const override;
    2067             :     antlr4::tree::TerminalNode *DETACH();
    2068             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2069             :     Var_listContext *var_list();
    2070             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2071             : 
    2072             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2073             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2074             : 
    2075             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2076             :    
    2077             :   };
    2078             : 
    2079             :   Detach_clauseContext* detach_clause();
    2080             : 
    2081             :   class  Device_clauseContext : public antlr4::ParserRuleContext {
    2082             :   public:
    2083             :     Device_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2084             :     virtual size_t getRuleIndex() const override;
    2085             :     antlr4::tree::TerminalNode *DEVICE();
    2086             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2087             :     Var_listContext *var_list();
    2088             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2089             : 
    2090             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2091             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2092             : 
    2093             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2094             :    
    2095             :   };
    2096             : 
    2097             :   Device_clauseContext* device_clause();
    2098             : 
    2099             :   class  Device_num_clauseContext : public antlr4::ParserRuleContext {
    2100             :   public:
    2101             :     Device_num_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2102             :     virtual size_t getRuleIndex() const override;
    2103             :     antlr4::tree::TerminalNode *DEVICE_NUM();
    2104             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2105             :     Int_exprContext *int_expr();
    2106             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2107             : 
    2108             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2109             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2110             : 
    2111             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2112             :    
    2113             :   };
    2114             : 
    2115             :   Device_num_clauseContext* device_num_clause();
    2116             : 
    2117             :   class  Device_resident_clauseContext : public antlr4::ParserRuleContext {
    2118             :   public:
    2119             :     Device_resident_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2120             :     virtual size_t getRuleIndex() const override;
    2121             :     antlr4::tree::TerminalNode *DEVICE_RESIDENT();
    2122             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2123             :     Var_listContext *var_list();
    2124             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2125             : 
    2126             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2127             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2128             : 
    2129             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2130             :    
    2131             :   };
    2132             : 
    2133             :   Device_resident_clauseContext* device_resident_clause();
    2134             : 
    2135             :   class  Device_type_clauseContext : public antlr4::ParserRuleContext {
    2136             :   public:
    2137             :     Device_type_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2138             :     virtual size_t getRuleIndex() const override;
    2139             :     antlr4::tree::TerminalNode *DEVICE_TYPE();
    2140             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2141             :     Device_type_listContext *device_type_list();
    2142             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2143             : 
    2144             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2145             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2146             : 
    2147             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2148             :    
    2149             :   };
    2150             : 
    2151             :   Device_type_clauseContext* device_type_clause();
    2152             : 
    2153             :   class  Device_type_listContext : public antlr4::ParserRuleContext {
    2154             :   public:
    2155             :     Device_type_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2156             :     virtual size_t getRuleIndex() const override;
    2157             :     std::vector<VarContext *> var();
    2158             :     VarContext* var(size_t i);
    2159             :     std::vector<antlr4::tree::TerminalNode *> COMMA();
    2160             :     antlr4::tree::TerminalNode* COMMA(size_t i);
    2161             : 
    2162             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2163             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2164             : 
    2165             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2166             :    
    2167             :   };
    2168             : 
    2169             :   Device_type_listContext* device_type_list();
    2170             : 
    2171             :   class  Deviceptr_clauseContext : public antlr4::ParserRuleContext {
    2172             :   public:
    2173             :     Deviceptr_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2174             :     virtual size_t getRuleIndex() const override;
    2175             :     antlr4::tree::TerminalNode *DEVICEPTR();
    2176             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2177             :     Var_listContext *var_list();
    2178             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2179             : 
    2180             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2181             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2182             : 
    2183             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2184             :    
    2185             :   };
    2186             : 
    2187             :   Deviceptr_clauseContext* deviceptr_clause();
    2188             : 
    2189             :   class  Finalize_clauseContext : public antlr4::ParserRuleContext {
    2190             :   public:
    2191             :     Finalize_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2192             :     virtual size_t getRuleIndex() const override;
    2193             :     antlr4::tree::TerminalNode *FINALIZE();
    2194             : 
    2195             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2196             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2197             : 
    2198             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2199             :    
    2200             :   };
    2201             : 
    2202             :   Finalize_clauseContext* finalize_clause();
    2203             : 
    2204             :   class  Firstprivate_clauseContext : public antlr4::ParserRuleContext {
    2205             :   public:
    2206             :     Firstprivate_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2207             :     virtual size_t getRuleIndex() const override;
    2208             :     antlr4::tree::TerminalNode *FIRSTPRIVATE();
    2209             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2210             :     Var_listContext *var_list();
    2211             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2212             : 
    2213             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2214             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2215             : 
    2216             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2217             :    
    2218             :   };
    2219             : 
    2220             :   Firstprivate_clauseContext* firstprivate_clause();
    2221             : 
    2222             :   class  Gang_clauseContext : public antlr4::ParserRuleContext {
    2223             :   public:
    2224             :     Gang_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2225             :     virtual size_t getRuleIndex() const override;
    2226             :     antlr4::tree::TerminalNode *GANG();
    2227             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2228             :     Gang_arg_listContext *gang_arg_list();
    2229             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2230             : 
    2231             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2232             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2233             : 
    2234             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2235             :    
    2236             :   };
    2237             : 
    2238             :   Gang_clauseContext* gang_clause();
    2239             : 
    2240             :   class  Gang_arg_listContext : public antlr4::ParserRuleContext {
    2241             :   public:
    2242             :     Gang_arg_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2243             :     virtual size_t getRuleIndex() const override;
    2244             :     std::vector<VarContext *> var();
    2245             :     VarContext* var(size_t i);
    2246             :     std::vector<antlr4::tree::TerminalNode *> COMMA();
    2247             :     antlr4::tree::TerminalNode* COMMA(size_t i);
    2248             : 
    2249             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2250             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2251             : 
    2252             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2253             :    
    2254             :   };
    2255             : 
    2256             :   Gang_arg_listContext* gang_arg_list();
    2257             : 
    2258             :   class  Gang_no_list_clauseContext : public antlr4::ParserRuleContext {
    2259             :   public:
    2260             :     Gang_no_list_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2261             :     virtual size_t getRuleIndex() const override;
    2262             :     antlr4::tree::TerminalNode *GANG();
    2263             : 
    2264             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2265             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2266             : 
    2267             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2268             :    
    2269             :   };
    2270             : 
    2271             :   Gang_no_list_clauseContext* gang_no_list_clause();
    2272             : 
    2273             :   class  Host_clauseContext : public antlr4::ParserRuleContext {
    2274             :   public:
    2275             :     Host_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2276             :     virtual size_t getRuleIndex() const override;
    2277             :     antlr4::tree::TerminalNode *HOST();
    2278             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2279             :     Var_listContext *var_list();
    2280             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2281             : 
    2282             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2283             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2284             : 
    2285             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2286             :    
    2287             :   };
    2288             : 
    2289             :   Host_clauseContext* host_clause();
    2290             : 
    2291             :   class  If_clauseContext : public antlr4::ParserRuleContext {
    2292             :   public:
    2293             :     If_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2294             :     virtual size_t getRuleIndex() const override;
    2295             :     antlr4::tree::TerminalNode *IF();
    2296             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2297             :     ConditionContext *condition();
    2298             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2299             : 
    2300             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2301             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2302             : 
    2303             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2304             :    
    2305             :   };
    2306             : 
    2307             :   If_clauseContext* if_clause();
    2308             : 
    2309             :   class  If_present_clauseContext : public antlr4::ParserRuleContext {
    2310             :   public:
    2311             :     If_present_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2312             :     virtual size_t getRuleIndex() const override;
    2313             :     antlr4::tree::TerminalNode *IF_PRESENT();
    2314             : 
    2315             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2316             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2317             : 
    2318             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2319             :    
    2320             :   };
    2321             : 
    2322             :   If_present_clauseContext* if_present_clause();
    2323             : 
    2324             :   class  Independent_clauseContext : public antlr4::ParserRuleContext {
    2325             :   public:
    2326             :     Independent_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2327             :     virtual size_t getRuleIndex() const override;
    2328             :     antlr4::tree::TerminalNode *INDEPENDENT();
    2329             : 
    2330             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2331             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2332             : 
    2333             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2334             :    
    2335             :   };
    2336             : 
    2337             :   Independent_clauseContext* independent_clause();
    2338             : 
    2339             :   class  Link_clauseContext : public antlr4::ParserRuleContext {
    2340             :   public:
    2341             :     Link_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2342             :     virtual size_t getRuleIndex() const override;
    2343             :     antlr4::tree::TerminalNode *LINK();
    2344             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2345             :     Var_listContext *var_list();
    2346             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2347             : 
    2348             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2349             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2350             : 
    2351             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2352             :    
    2353             :   };
    2354             : 
    2355             :   Link_clauseContext* link_clause();
    2356             : 
    2357             :   class  Nohost_clauseContext : public antlr4::ParserRuleContext {
    2358             :   public:
    2359             :     Nohost_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2360             :     virtual size_t getRuleIndex() const override;
    2361             :     antlr4::tree::TerminalNode *NOHOST();
    2362             : 
    2363             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2364             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2365             : 
    2366             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2367             :    
    2368             :   };
    2369             : 
    2370             :   Nohost_clauseContext* nohost_clause();
    2371             : 
    2372             :   class  No_create_clauseContext : public antlr4::ParserRuleContext {
    2373             :   public:
    2374             :     No_create_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2375             :     virtual size_t getRuleIndex() const override;
    2376             :     antlr4::tree::TerminalNode *NO_CREATE();
    2377             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2378             :     Var_listContext *var_list();
    2379             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2380             : 
    2381             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2382             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2383             : 
    2384             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2385             :    
    2386             :   };
    2387             : 
    2388             :   No_create_clauseContext* no_create_clause();
    2389             : 
    2390             :   class  Num_gangs_clauseContext : public antlr4::ParserRuleContext {
    2391             :   public:
    2392             :     Num_gangs_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2393             :     virtual size_t getRuleIndex() const override;
    2394             :     antlr4::tree::TerminalNode *NUM_GANGS();
    2395             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2396             :     Int_exprContext *int_expr();
    2397             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2398             : 
    2399             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2400             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2401             : 
    2402             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2403             :    
    2404             :   };
    2405             : 
    2406             :   Num_gangs_clauseContext* num_gangs_clause();
    2407             : 
    2408             :   class  Num_workers_clauseContext : public antlr4::ParserRuleContext {
    2409             :   public:
    2410             :     Num_workers_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2411             :     virtual size_t getRuleIndex() const override;
    2412             :     antlr4::tree::TerminalNode *NUM_WORKERS();
    2413             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2414             :     Int_exprContext *int_expr();
    2415             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2416             : 
    2417             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2418             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2419             : 
    2420             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2421             :    
    2422             :   };
    2423             : 
    2424             :   Num_workers_clauseContext* num_workers_clause();
    2425             : 
    2426             :   class  Present_clauseContext : public antlr4::ParserRuleContext {
    2427             :   public:
    2428             :     Present_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2429             :     virtual size_t getRuleIndex() const override;
    2430             :     antlr4::tree::TerminalNode *PRESENT();
    2431             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2432             :     Var_listContext *var_list();
    2433             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2434             : 
    2435             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2436             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2437             : 
    2438             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2439             :    
    2440             :   };
    2441             : 
    2442             :   Present_clauseContext* present_clause();
    2443             : 
    2444             :   class  Private_clauseContext : public antlr4::ParserRuleContext {
    2445             :   public:
    2446             :     Private_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2447             :     virtual size_t getRuleIndex() const override;
    2448             :     antlr4::tree::TerminalNode *PRIVATE();
    2449             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2450             :     Var_listContext *var_list();
    2451             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2452             : 
    2453             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2454             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2455             : 
    2456             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2457             :    
    2458             :   };
    2459             : 
    2460             :   Private_clauseContext* private_clause();
    2461             : 
    2462             :   class  Read_clauseContext : public antlr4::ParserRuleContext {
    2463             :   public:
    2464             :     Read_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2465             :     virtual size_t getRuleIndex() const override;
    2466             :     antlr4::tree::TerminalNode *READ();
    2467             : 
    2468             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2469             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2470             : 
    2471             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2472             :    
    2473             :   };
    2474             : 
    2475             :   Read_clauseContext* read_clause();
    2476             : 
    2477             :   class  Reduction_clauseContext : public antlr4::ParserRuleContext {
    2478             :   public:
    2479             :     Reduction_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2480             :     virtual size_t getRuleIndex() const override;
    2481             :     antlr4::tree::TerminalNode *REDUCTION();
    2482             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2483             :     Reduction_operatorContext *reduction_operator();
    2484             :     antlr4::tree::TerminalNode *COLON();
    2485             :     Var_listContext *var_list();
    2486             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2487             : 
    2488             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2489             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2490             : 
    2491             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2492             :    
    2493             :   };
    2494             : 
    2495             :   Reduction_clauseContext* reduction_clause();
    2496             : 
    2497             :   class  Reduction_operatorContext : public antlr4::ParserRuleContext {
    2498             :   public:
    2499             :     Reduction_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2500             :     virtual size_t getRuleIndex() const override;
    2501             :     antlr4::tree::TerminalNode *ADD();
    2502             :     antlr4::tree::TerminalNode *MUL();
    2503             :     antlr4::tree::TerminalNode *MAX();
    2504             :     antlr4::tree::TerminalNode *MIN();
    2505             :     antlr4::tree::TerminalNode *BITAND();
    2506             :     antlr4::tree::TerminalNode *BITOR();
    2507             :     antlr4::tree::TerminalNode *BITXOR();
    2508             :     antlr4::tree::TerminalNode *LOGAND();
    2509             :     antlr4::tree::TerminalNode *LOGOR();
    2510             : 
    2511             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2512             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2513             : 
    2514             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2515             :    
    2516             :   };
    2517             : 
    2518             :   Reduction_operatorContext* reduction_operator();
    2519             : 
    2520             :   class  Self_clauseContext : public antlr4::ParserRuleContext {
    2521             :   public:
    2522             :     Self_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2523             :     virtual size_t getRuleIndex() const override;
    2524             :     antlr4::tree::TerminalNode *SELF();
    2525             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2526             :     ConditionContext *condition();
    2527             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2528             : 
    2529             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2530             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2531             : 
    2532             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2533             :    
    2534             :   };
    2535             : 
    2536             :   Self_clauseContext* self_clause();
    2537             : 
    2538             :   class  Self_list_clauseContext : public antlr4::ParserRuleContext {
    2539             :   public:
    2540             :     Self_list_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2541             :     virtual size_t getRuleIndex() const override;
    2542             :     antlr4::tree::TerminalNode *SELF();
    2543             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2544             :     Var_listContext *var_list();
    2545             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2546             : 
    2547             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2548             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2549             : 
    2550             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2551             :    
    2552             :   };
    2553             : 
    2554             :   Self_list_clauseContext* self_list_clause();
    2555             : 
    2556             :   class  ConditionContext : public antlr4::ParserRuleContext {
    2557             :   public:
    2558             :     ConditionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2559             :     virtual size_t getRuleIndex() const override;
    2560             :     antlr4::tree::TerminalNode *EXPR();
    2561             : 
    2562             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2563             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2564             : 
    2565             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2566             :    
    2567             :   };
    2568             : 
    2569             :   ConditionContext* condition();
    2570             : 
    2571             :   class  Seq_clauseContext : public antlr4::ParserRuleContext {
    2572             :   public:
    2573             :     Seq_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2574             :     virtual size_t getRuleIndex() const override;
    2575             :     antlr4::tree::TerminalNode *SEQ();
    2576             : 
    2577             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2578             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2579             : 
    2580             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2581             :    
    2582             :   };
    2583             : 
    2584             :   Seq_clauseContext* seq_clause();
    2585             : 
    2586             :   class  Tile_clauseContext : public antlr4::ParserRuleContext {
    2587             :   public:
    2588             :     Tile_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2589             :     virtual size_t getRuleIndex() const override;
    2590             :     antlr4::tree::TerminalNode *TILE();
    2591             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2592             :     Size_expr_listContext *size_expr_list();
    2593             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2594             : 
    2595             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2596             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2597             : 
    2598             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2599             :    
    2600             :   };
    2601             : 
    2602             :   Tile_clauseContext* tile_clause();
    2603             : 
    2604             :   class  Update_clauseContext : public antlr4::ParserRuleContext {
    2605             :   public:
    2606             :     Update_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2607             :     virtual size_t getRuleIndex() const override;
    2608             :     antlr4::tree::TerminalNode *UPDATE();
    2609             : 
    2610             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2611             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2612             : 
    2613             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2614             :    
    2615             :   };
    2616             : 
    2617             :   Update_clauseContext* update_clause();
    2618             : 
    2619             :   class  Size_expr_listContext : public antlr4::ParserRuleContext {
    2620             :   public:
    2621             :     Size_expr_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2622             :     virtual size_t getRuleIndex() const override;
    2623             :     std::vector<VarContext *> var();
    2624             :     VarContext* var(size_t i);
    2625             :     std::vector<antlr4::tree::TerminalNode *> COMMA();
    2626             :     antlr4::tree::TerminalNode* COMMA(size_t i);
    2627             : 
    2628             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2629             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2630             : 
    2631             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2632             :    
    2633             :   };
    2634             : 
    2635             :   Size_expr_listContext* size_expr_list();
    2636             : 
    2637             :   class  Use_device_clauseContext : public antlr4::ParserRuleContext {
    2638             :   public:
    2639             :     Use_device_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2640             :     virtual size_t getRuleIndex() const override;
    2641             :     antlr4::tree::TerminalNode *USE_DEVICE();
    2642             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2643             :     Var_listContext *var_list();
    2644             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2645             : 
    2646             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2647             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2648             : 
    2649             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2650             :    
    2651             :   };
    2652             : 
    2653             :   Use_device_clauseContext* use_device_clause();
    2654             : 
    2655             :   class  Vector_clauseContext : public antlr4::ParserRuleContext {
    2656             :   public:
    2657             :     Vector_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2658             :     virtual size_t getRuleIndex() const override;
    2659             :     antlr4::tree::TerminalNode *VECTOR();
    2660             :     Vector_clause_argsContext *vector_clause_args();
    2661             : 
    2662             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2663             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2664             : 
    2665             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2666             :    
    2667             :   };
    2668             : 
    2669             :   Vector_clauseContext* vector_clause();
    2670             : 
    2671             :   class  Vector_clause_argsContext : public antlr4::ParserRuleContext {
    2672             :   public:
    2673             :     Vector_clause_argsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2674             :     virtual size_t getRuleIndex() const override;
    2675             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2676             :     Vector_clause_modifierContext *vector_clause_modifier();
    2677             :     antlr4::tree::TerminalNode *COLON();
    2678             :     Int_exprContext *int_expr();
    2679             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2680             : 
    2681             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2682             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2683             : 
    2684             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2685             :    
    2686             :   };
    2687             : 
    2688             :   Vector_clause_argsContext* vector_clause_args();
    2689             : 
    2690             :   class  Vector_clause_modifierContext : public antlr4::ParserRuleContext {
    2691             :   public:
    2692             :     Vector_clause_modifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2693             :     virtual size_t getRuleIndex() const override;
    2694             :     antlr4::tree::TerminalNode *LENGTH();
    2695             : 
    2696             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2697             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2698             : 
    2699             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2700             :    
    2701             :   };
    2702             : 
    2703             :   Vector_clause_modifierContext* vector_clause_modifier();
    2704             : 
    2705             :   class  Vector_no_modifier_clauseContext : public antlr4::ParserRuleContext {
    2706             :   public:
    2707             :     Vector_no_modifier_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2708             :     virtual size_t getRuleIndex() const override;
    2709             :     antlr4::tree::TerminalNode *VECTOR();
    2710             : 
    2711             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2712             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2713             : 
    2714             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2715             :    
    2716             :   };
    2717             : 
    2718             :   Vector_no_modifier_clauseContext* vector_no_modifier_clause();
    2719             : 
    2720             :   class  Vector_length_clauseContext : public antlr4::ParserRuleContext {
    2721             :   public:
    2722             :     Vector_length_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2723             :     virtual size_t getRuleIndex() const override;
    2724             :     antlr4::tree::TerminalNode *VECTOR_LENGTH();
    2725             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2726             :     Int_exprContext *int_expr();
    2727             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2728             : 
    2729             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2730             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2731             : 
    2732             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2733             :    
    2734             :   };
    2735             : 
    2736             :   Vector_length_clauseContext* vector_length_clause();
    2737             : 
    2738             :   class  Wait_clauseContext : public antlr4::ParserRuleContext {
    2739             :   public:
    2740             :     Wait_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2741             :     virtual size_t getRuleIndex() const override;
    2742             :     antlr4::tree::TerminalNode *WAIT();
    2743             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2744             :     Int_expr_listContext *int_expr_list();
    2745             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2746             : 
    2747             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2748             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2749             : 
    2750             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2751             :    
    2752             :   };
    2753             : 
    2754             :   Wait_clauseContext* wait_clause();
    2755             : 
    2756             :   class  Wait_argument_clauseContext : public antlr4::ParserRuleContext {
    2757             :   public:
    2758             :     Wait_argument_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2759             :     virtual size_t getRuleIndex() const override;
    2760             :     antlr4::tree::TerminalNode *WAIT();
    2761             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2762             :     Wait_argumentContext *wait_argument();
    2763             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2764             : 
    2765             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2766             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2767             : 
    2768             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2769             :    
    2770             :   };
    2771             : 
    2772             :   Wait_argument_clauseContext* wait_argument_clause();
    2773             : 
    2774             :   class  Wait_argumentContext : public antlr4::ParserRuleContext {
    2775             :   public:
    2776             :     Wait_argumentContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2777             :     virtual size_t getRuleIndex() const override;
    2778             :     antlr4::tree::TerminalNode *DEVNUM();
    2779             :     std::vector<antlr4::tree::TerminalNode *> COLON();
    2780             :     antlr4::tree::TerminalNode* COLON(size_t i);
    2781             :     Wait_argument_int_exprContext *wait_argument_int_expr();
    2782             :     Wait_argument_queuesContext *wait_argument_queues();
    2783             :     Wait_int_expr_listContext *wait_int_expr_list();
    2784             : 
    2785             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2786             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2787             : 
    2788             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2789             :    
    2790             :   };
    2791             : 
    2792             :   Wait_argumentContext* wait_argument();
    2793             : 
    2794             :   class  Wait_int_expr_listContext : public antlr4::ParserRuleContext {
    2795             :   public:
    2796             :     Wait_int_expr_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2797             :     virtual size_t getRuleIndex() const override;
    2798             :     std::vector<Wait_int_exprContext *> wait_int_expr();
    2799             :     Wait_int_exprContext* wait_int_expr(size_t i);
    2800             :     std::vector<antlr4::tree::TerminalNode *> COMMA();
    2801             :     antlr4::tree::TerminalNode* COMMA(size_t i);
    2802             : 
    2803             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2804             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2805             : 
    2806             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2807             :    
    2808             :   };
    2809             : 
    2810             :   Wait_int_expr_listContext* wait_int_expr_list();
    2811             : 
    2812             :   class  Wait_int_exprContext : public antlr4::ParserRuleContext {
    2813             :   public:
    2814             :     Wait_int_exprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2815             :     virtual size_t getRuleIndex() const override;
    2816             :     antlr4::tree::TerminalNode *EXPR();
    2817             : 
    2818             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2819             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2820             : 
    2821             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2822             :    
    2823             :   };
    2824             : 
    2825             :   Wait_int_exprContext* wait_int_expr();
    2826             : 
    2827             :   class  Wait_argument_queuesContext : public antlr4::ParserRuleContext {
    2828             :   public:
    2829             :     Wait_argument_queuesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2830             :     virtual size_t getRuleIndex() const override;
    2831             :     antlr4::tree::TerminalNode *QUEUES();
    2832             : 
    2833             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2834             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2835             : 
    2836             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2837             :    
    2838             :   };
    2839             : 
    2840             :   Wait_argument_queuesContext* wait_argument_queues();
    2841             : 
    2842             :   class  Wait_argument_int_exprContext : public antlr4::ParserRuleContext {
    2843             :   public:
    2844             :     Wait_argument_int_exprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2845             :     virtual size_t getRuleIndex() const override;
    2846             :     antlr4::tree::TerminalNode *EXPR();
    2847             : 
    2848             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2849             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2850             : 
    2851             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2852             :    
    2853             :   };
    2854             : 
    2855             :   Wait_argument_int_exprContext* wait_argument_int_expr();
    2856             : 
    2857             :   class  Worker_clauseContext : public antlr4::ParserRuleContext {
    2858             :   public:
    2859             :     Worker_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2860             :     virtual size_t getRuleIndex() const override;
    2861             :     antlr4::tree::TerminalNode *WORKER();
    2862             :     Worker_clause_argsContext *worker_clause_args();
    2863             : 
    2864             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2865             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2866             : 
    2867             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2868             :    
    2869             :   };
    2870             : 
    2871             :   Worker_clauseContext* worker_clause();
    2872             : 
    2873             :   class  Worker_clause_argsContext : public antlr4::ParserRuleContext {
    2874             :   public:
    2875             :     Worker_clause_argsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2876             :     virtual size_t getRuleIndex() const override;
    2877             :     antlr4::tree::TerminalNode *LEFT_PAREN();
    2878             :     Worker_clause_modifierContext *worker_clause_modifier();
    2879             :     antlr4::tree::TerminalNode *COLON();
    2880             :     Int_exprContext *int_expr();
    2881             :     antlr4::tree::TerminalNode *RIGHT_PAREN();
    2882             : 
    2883             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2884             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2885             : 
    2886             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2887             :    
    2888             :   };
    2889             : 
    2890             :   Worker_clause_argsContext* worker_clause_args();
    2891             : 
    2892             :   class  Worker_clause_modifierContext : public antlr4::ParserRuleContext {
    2893             :   public:
    2894             :     Worker_clause_modifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2895             :     virtual size_t getRuleIndex() const override;
    2896             :     antlr4::tree::TerminalNode *NUM();
    2897             : 
    2898             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2899             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2900             : 
    2901             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2902             :    
    2903             :   };
    2904             : 
    2905             :   Worker_clause_modifierContext* worker_clause_modifier();
    2906             : 
    2907             :   class  Worker_no_modifier_clauseContext : public antlr4::ParserRuleContext {
    2908             :   public:
    2909             :     Worker_no_modifier_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2910             :     virtual size_t getRuleIndex() const override;
    2911             :     antlr4::tree::TerminalNode *WORKER();
    2912             : 
    2913             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2914             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2915             : 
    2916             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2917             :    
    2918             :   };
    2919             : 
    2920             :   Worker_no_modifier_clauseContext* worker_no_modifier_clause();
    2921             : 
    2922             :   class  Write_clauseContext : public antlr4::ParserRuleContext {
    2923             :   public:
    2924             :     Write_clauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2925             :     virtual size_t getRuleIndex() const override;
    2926             :     antlr4::tree::TerminalNode *WRITE();
    2927             : 
    2928             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2929             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2930             : 
    2931             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2932             :    
    2933             :   };
    2934             : 
    2935             :   Write_clauseContext* write_clause();
    2936             : 
    2937             :   class  Const_intContext : public antlr4::ParserRuleContext {
    2938             :   public:
    2939             :     Const_intContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2940             :     virtual size_t getRuleIndex() const override;
    2941             :     antlr4::tree::TerminalNode *EXPR();
    2942             : 
    2943             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2944             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2945             : 
    2946             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2947             :    
    2948             :   };
    2949             : 
    2950             :   Const_intContext* const_int();
    2951             : 
    2952             :   class  Int_expr_listContext : public antlr4::ParserRuleContext {
    2953             :   public:
    2954             :     Int_expr_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2955             :     virtual size_t getRuleIndex() const override;
    2956             :     std::vector<Int_exprContext *> int_expr();
    2957             :     Int_exprContext* int_expr(size_t i);
    2958             :     std::vector<antlr4::tree::TerminalNode *> COMMA();
    2959             :     antlr4::tree::TerminalNode* COMMA(size_t i);
    2960             : 
    2961             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2962             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2963             : 
    2964             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2965             :    
    2966             :   };
    2967             : 
    2968             :   Int_expr_listContext* int_expr_list();
    2969             : 
    2970             :   class  Int_exprContext : public antlr4::ParserRuleContext {
    2971             :   public:
    2972             :     Int_exprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2973             :     virtual size_t getRuleIndex() const override;
    2974             :     antlr4::tree::TerminalNode *EXPR();
    2975             : 
    2976             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2977             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2978             : 
    2979             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2980             :    
    2981             :   };
    2982             : 
    2983             :   Int_exprContext* int_expr();
    2984             : 
    2985             :   class  Var_listContext : public antlr4::ParserRuleContext {
    2986             :   public:
    2987             :     Var_listContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    2988             :     virtual size_t getRuleIndex() const override;
    2989             :     std::vector<VarContext *> var();
    2990             :     VarContext* var(size_t i);
    2991             :     std::vector<antlr4::tree::TerminalNode *> COMMA();
    2992             :     antlr4::tree::TerminalNode* COMMA(size_t i);
    2993             : 
    2994             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    2995             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    2996             : 
    2997             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    2998             :    
    2999             :   };
    3000             : 
    3001             :   Var_listContext* var_list();
    3002             : 
    3003             :   class  VarContext : public antlr4::ParserRuleContext {
    3004             :   public:
    3005             :     VarContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    3006             :     virtual size_t getRuleIndex() const override;
    3007             :     antlr4::tree::TerminalNode *EXPR();
    3008             : 
    3009             :     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    3010             :     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
    3011             : 
    3012             :     virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    3013             :    
    3014             :   };
    3015             : 
    3016             :   VarContext* var();
    3017             : 
    3018             : 
    3019             : private:
    3020             :   static std::vector<antlr4::dfa::DFA> _decisionToDFA;
    3021             :   static antlr4::atn::PredictionContextCache _sharedContextCache;
    3022             :   static std::vector<std::string> _ruleNames;
    3023             :   static std::vector<std::string> _tokenNames;
    3024             : 
    3025             :   static std::vector<std::string> _literalNames;
    3026             :   static std::vector<std::string> _symbolicNames;
    3027             :   static antlr4::dfa::Vocabulary _vocabulary;
    3028             :   static antlr4::atn::ATN _atn;
    3029             :   static std::vector<uint16_t> _serializedATN;
    3030             : 
    3031             :   /* private parser declarations section */
    3032             : 
    3033             :   struct Initializer {
    3034             :     Initializer();
    3035             :   };
    3036             :   static Initializer _init;
    3037             : };
    3038             : 

Generated by: LCOV version 1.14