(root)/
gcc-13.2.0/
gcc/
m2/
gm2-gcc/
m2statement.h
       1  /* m2statement.h header file for m2statement.cc.
       2  
       3  Copyright (C) 2012-2023 Free Software Foundation, Inc.
       4  Contributed by Gaius Mulley <gaius@glam.ac.uk>.
       5  
       6  This file is part of GNU Modula-2.
       7  
       8  GNU Modula-2 is free software; you can redistribute it and/or modify
       9  it under the terms of the GNU General Public License as published by
      10  the Free Software Foundation; either version 3, or (at your option)
      11  any later version.
      12  
      13  GNU Modula-2 is distributed in the hope that it will be useful, but
      14  WITHOUT ANY WARRANTY; without even the implied warranty of
      15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      16  General Public License for more details.
      17  
      18  You should have received a copy of the GNU General Public License
      19  along with GNU Modula-2; see the file COPYING3.  If not see
      20  <http://www.gnu.org/licenses/>.  */
      21  
      22  #if !defined(m2statement_h)
      23  #define m2statement_h
      24  #if defined(m2statement_c)
      25  #if defined(__GNUG__)
      26  #define EXTERN extern "C"
      27  #else /* !__GNUG__.  */
      28  #define EXTERN
      29  #endif /* !__GNUG__.  */
      30  #else /* !m2statement_c.  */
      31  #if defined(__GNUG__)
      32  #define EXTERN extern "C"
      33  #else /* !__GNUG__.  */
      34  #define EXTERN extern
      35  #endif /* !__GNUG__.  */
      36  #endif /* !m2statement_c.  */
      37  
      38  EXTERN void m2statement_BuildCallInner (location_t location, tree fndecl);
      39  EXTERN void m2statement_BuildEnd (location_t location, tree fndecl,
      40                                    int nested);
      41  EXTERN tree m2statement_BuildStart (location_t location, char *name,
      42                                      int inner_module);
      43  EXTERN void m2statement_BuildIncludeVarVar (location_t location, tree type,
      44                                              tree varset, tree varel,
      45                                              bool is_lvalue, tree low);
      46  EXTERN void m2statement_BuildIncludeVarConst (location_t location, tree type,
      47                                                tree op1, tree op2,
      48                                                bool is_lvalue, int fieldno);
      49  EXTERN void m2statement_BuildExcludeVarVar (location_t location, tree type,
      50                                              tree varset, tree varel,
      51                                              bool is_lvalue, tree low);
      52  EXTERN void m2statement_BuildExcludeVarConst (location_t location, tree type,
      53                                                tree op1, tree op2,
      54                                                bool is_lvalue, int fieldno);
      55  EXTERN void m2statement_BuildUnaryForeachWordDo (
      56      location_t location, tree type, tree op1, tree op2,
      57      tree (*unop) (location_t, tree, bool), bool is_op1lvalue, bool is_op2lvalue,
      58      bool is_op1const, bool is_op2const);
      59  EXTERN void m2statement_BuildAsm (location_t location, tree instr,
      60                                    bool isVolatile, bool isSimple, tree inputs,
      61                                    tree outputs, tree trash, tree labels);
      62  EXTERN tree m2statement_BuildFunctValue (location_t location, tree value);
      63  EXTERN tree m2statement_BuildIndirectProcedureCallTree (location_t location,
      64                                                          tree procedure,
      65                                                          tree rettype);
      66  EXTERN tree m2statement_BuildProcedureCallTree (location_t location,
      67                                                  tree procedure, tree rettype);
      68  EXTERN void m2statement_BuildFunctionCallTree (location_t location,
      69  					       tree procedure, tree rettype);
      70  EXTERN void m2statement_BuildParam (location_t location, tree param);
      71  
      72  EXTERN tree m2statement_BuildIfThenElseEnd (tree condition, tree then_block,
      73                                              tree else_block);
      74  EXTERN tree m2statement_BuildIfThenDoEnd (tree condition, tree then_block);
      75  
      76  EXTERN void m2statement_DeclareLabel (location_t location, char *name);
      77  EXTERN void m2statement_BuildGoto (location_t location, char *name);
      78  EXTERN tree m2statement_BuildAssignmentTree (location_t location, tree des,
      79                                               tree expr);
      80  EXTERN void m2statement_BuildAssignmentStatement (location_t location, tree des,
      81  						  tree expr);
      82  EXTERN void m2statement_BuildPopFunctionContext (void);
      83  EXTERN void m2statement_BuildPushFunctionContext (void);
      84  EXTERN void m2statement_BuildReturnValueCode (location_t location, tree fndecl,
      85                                                tree value);
      86  EXTERN void m2statement_BuildEndFunctionCode (location_t location, tree fndecl,
      87                                                bool nested);
      88  EXTERN void m2statement_BuildStartFunctionCode (location_t location,
      89                                                  tree fndecl, bool isexported,
      90                                                  bool isinline);
      91  EXTERN void m2statement_DoJump (location_t location, tree exp,
      92                                  char *falselabel, char *truelabel);
      93  EXTERN tree m2statement_BuildCall2 (location_t location, tree function,
      94                                      tree rettype, tree arg1, tree arg2);
      95  EXTERN tree m2statement_BuildCall3 (location_t location, tree function,
      96                                      tree rettype, tree arg1, tree arg2,
      97                                      tree arg3);
      98  EXTERN void m2statement_SetLastFunction (tree t);
      99  EXTERN tree m2statement_GetLastFunction (void);
     100  EXTERN void m2statement_SetParamList (tree t);
     101  EXTERN tree m2statement_GetParamList (void);
     102  EXTERN tree m2statement_GetCurrentFunction (void);
     103  EXTERN void m2statement_SetBeginLocation (location_t location);
     104  EXTERN void m2statement_SetEndLocation (location_t location);
     105  EXTERN tree m2statement_GetParamTree (tree call, unsigned int i);
     106  EXTERN tree m2statement_BuildTryFinally (location_t location, tree call,
     107                                           tree cleanups);
     108  EXTERN tree m2statement_BuildCleanUp (tree param);
     109  
     110  #undef EXTERN
     111  #endif /* m2statement_h.  */