summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/f/stw.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/f/stw.c')
-rw-r--r--contrib/gcc/f/stw.c428
1 files changed, 0 insertions, 428 deletions
diff --git a/contrib/gcc/f/stw.c b/contrib/gcc/f/stw.c
deleted file mode 100644
index 57658de..0000000
--- a/contrib/gcc/f/stw.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/* stw.c -- Implementation File (module.c template V1.0)
- Copyright (C) 1995, 2003 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Fortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
-
- Related Modules:
- None (despite the name, it doesn't really depend on ffest*)
-
- Description:
- Provides abstraction and stack mechanism to track the block structure
- of a Fortran program.
-
- Modifications:
-*/
-
-/* Include files. */
-
-#include "proj.h"
-#include "stw.h"
-#include "bld.h"
-#include "com.h"
-#include "info.h"
-#include "lab.h"
-#include "lex.h"
-#include "malloc.h"
-#include "sta.h"
-#include "stv.h"
-#include "symbol.h"
-#include "where.h"
-
-/* Externals defined here. */
-
-ffestw ffestw_stack_top_ = NULL;
-
-/* Simple definitions and enumerations. */
-
-
-/* Internal typedefs. */
-
-
-/* Private include files. */
-
-
-/* Internal structure definitions. */
-
-
-/* Static objects accessed by functions in this module. */
-
-
-/* Static functions (internal). */
-
-
-/* Internal macros. */
-
-
-/* ffestw_display_state -- DEBUGGING; display current block state
-
- ffestw_display_state(); */
-
-void
-ffestw_display_state (void)
-{
- assert (ffestw_stack_top_ != NULL);
-
- if (!ffe_is_ffedebug ())
- return;
-
- fprintf (dmpout, "; block %lu, state ", ffestw_stack_top_->blocknum_);
- switch (ffestw_stack_top_->state_)
- {
- case FFESTV_stateNIL:
- fputs ("NIL", dmpout);
- break;
-
- case FFESTV_statePROGRAM0:
- fputs ("PROGRAM0", dmpout);
- break;
-
- case FFESTV_statePROGRAM1:
- fputs ("PROGRAM1", dmpout);
- break;
-
- case FFESTV_statePROGRAM2:
- fputs ("PROGRAM2", dmpout);
- break;
-
- case FFESTV_statePROGRAM3:
- fputs ("PROGRAM3", dmpout);
- break;
-
- case FFESTV_statePROGRAM4:
- fputs ("PROGRAM4", dmpout);
- break;
-
- case FFESTV_statePROGRAM5:
- fputs ("PROGRAM5", dmpout);
- break;
-
- case FFESTV_stateSUBROUTINE0:
- fputs ("SUBROUTINE0", dmpout);
- break;
-
- case FFESTV_stateSUBROUTINE1:
- fputs ("SUBROUTINE1", dmpout);
- break;
-
- case FFESTV_stateSUBROUTINE2:
- fputs ("SUBROUTINE2", dmpout);
- break;
-
- case FFESTV_stateSUBROUTINE3:
- fputs ("SUBROUTINE3", dmpout);
- break;
-
- case FFESTV_stateSUBROUTINE4:
- fputs ("SUBROUTINE4", dmpout);
- break;
-
- case FFESTV_stateSUBROUTINE5:
- fputs ("SUBROUTINE5", dmpout);
- break;
-
- case FFESTV_stateFUNCTION0:
- fputs ("FUNCTION0", dmpout);
- break;
-
- case FFESTV_stateFUNCTION1:
- fputs ("FUNCTION1", dmpout);
- break;
-
- case FFESTV_stateFUNCTION2:
- fputs ("FUNCTION2", dmpout);
- break;
-
- case FFESTV_stateFUNCTION3:
- fputs ("FUNCTION3", dmpout);
- break;
-
- case FFESTV_stateFUNCTION4:
- fputs ("FUNCTION4", dmpout);
- break;
-
- case FFESTV_stateFUNCTION5:
- fputs ("FUNCTION5", dmpout);
- break;
-
- case FFESTV_stateMODULE0:
- fputs ("MODULE0", dmpout);
- break;
-
- case FFESTV_stateMODULE1:
- fputs ("MODULE1", dmpout);
- break;
-
- case FFESTV_stateMODULE2:
- fputs ("MODULE2", dmpout);
- break;
-
- case FFESTV_stateMODULE3:
- fputs ("MODULE3", dmpout);
- break;
-
- case FFESTV_stateMODULE4:
- fputs ("MODULE4", dmpout);
- break;
-
- case FFESTV_stateMODULE5:
- fputs ("MODULE5", dmpout);
- break;
-
- case FFESTV_stateBLOCKDATA0:
- fputs ("BLOCKDATA0", dmpout);
- break;
-
- case FFESTV_stateBLOCKDATA1:
- fputs ("BLOCKDATA1", dmpout);
- break;
-
- case FFESTV_stateBLOCKDATA2:
- fputs ("BLOCKDATA2", dmpout);
- break;
-
- case FFESTV_stateBLOCKDATA3:
- fputs ("BLOCKDATA3", dmpout);
- break;
-
- case FFESTV_stateBLOCKDATA4:
- fputs ("BLOCKDATA4", dmpout);
- break;
-
- case FFESTV_stateBLOCKDATA5:
- fputs ("BLOCKDATA5", dmpout);
- break;
-
- case FFESTV_stateUSE:
- fputs ("USE", dmpout);
- break;
-
- case FFESTV_stateTYPE:
- fputs ("TYPE", dmpout);
- break;
-
- case FFESTV_stateINTERFACE0:
- fputs ("INTERFACE0", dmpout);
- break;
-
- case FFESTV_stateINTERFACE1:
- fputs ("INTERFACE1", dmpout);
- break;
-
- case FFESTV_stateSTRUCTURE:
- fputs ("STRUCTURE", dmpout);
- break;
-
- case FFESTV_stateUNION:
- fputs ("UNION", dmpout);
- break;
-
- case FFESTV_stateMAP:
- fputs ("MAP", dmpout);
- break;
-
- case FFESTV_stateWHERETHEN:
- fputs ("WHERETHEN", dmpout);
- break;
-
- case FFESTV_stateWHERE:
- fputs ("WHERE", dmpout);
- break;
-
- case FFESTV_stateIFTHEN:
- fputs ("IFTHEN", dmpout);
- break;
-
- case FFESTV_stateIF:
- fputs ("IF", dmpout);
- break;
-
- case FFESTV_stateDO:
- fputs ("DO", dmpout);
- break;
-
- case FFESTV_stateSELECT0:
- fputs ("SELECT0", dmpout);
- break;
-
- case FFESTV_stateSELECT1:
- fputs ("SELECT1", dmpout);
- break;
-
- default:
- assert ("bad state" == NULL);
- break;
- }
- if (ffestw_stack_top_->top_do_ != NULL)
- fputs (" (within DO)", dmpout);
- fputc ('\n', dmpout);
-}
-
-/* ffestw_init_0 -- Initialize ffestw structures
-
- ffestw_init_0(); */
-
-void
-ffestw_init_0 (void)
-{
- ffestw b;
-
- ffestw_stack_top_ = b = malloc_new_kp (malloc_pool_image (),
- "FFESTW stack base", sizeof (*b));
- b->uses_ = 0; /* catch if anyone uses, kills, &c this
- block. */
- b->next_ = NULL;
- b->previous_ = NULL;
- b->top_do_ = NULL;
- b->blocknum_ = 0;
- b->shriek_ = NULL;
- b->state_ = FFESTV_stateNIL;
- b->line_ = ffewhere_line_unknown ();
- b->col_ = ffewhere_column_unknown ();
-}
-
-/* ffestw_kill -- Kill block
-
- ffestw b;
- ffestw_kill(b); */
-
-void
-ffestw_kill (ffestw b)
-{
- assert (b != NULL);
- assert (b->uses_ > 0);
-
- if (--b->uses_ != 0)
- return;
-
- ffewhere_line_kill (b->line_);
- ffewhere_column_kill (b->col_);
-}
-
-/* ffestw_new -- Create block
-
- ffestw b;
- b = ffestw_new(); */
-
-ffestw
-ffestw_new (void)
-{
- ffestw b;
-
- b = malloc_new_kp (malloc_pool_image (), "FFESTW", sizeof (*b));
- b->uses_ = 1;
-
- return b;
-}
-
-/* ffestw_pop -- Pop block off stack
-
- ffestw_pop(); */
-
-ffestw
-ffestw_pop (void)
-{
- ffestw b;
- ffestw oldb = ffestw_stack_top_;
-
- assert (oldb != NULL);
- ffestw_stack_top_ = b = ffestw_stack_top_->previous_;
- assert (b != NULL);
- if ((ffewhere_line_is_unknown (b->line_) || ffewhere_column_is_unknown (b->col_))
- && (ffesta_tokens[0] != NULL))
- {
- assert (b->state_ == FFESTV_stateNIL);
- if (ffewhere_line_is_unknown (b->line_))
- b->line_
- = ffewhere_line_use (ffelex_token_where_line (ffesta_tokens[0]));
- if (ffewhere_column_is_unknown (b->col_))
- b->col_
- = ffewhere_column_use (ffelex_token_where_column (ffesta_tokens[0]));
- }
-
- return oldb;
-}
-
-/* ffestw_push -- Push block onto stack, return its address
-
- ffestw b; // NULL if new block to be obtained first.
- ffestw_push(b);
-
- Returns address of block if desired, also updates ffestw_stack_top_
- to point to it.
-
- 30-Oct-91 JCB 2.0
- Takes block as arg, or NULL if new block needed. */
-
-ffestw
-ffestw_push (ffestw b)
-{
- if (b == NULL)
- b = ffestw_new ();
-
- b->next_ = NULL;
- b->previous_ = ffestw_stack_top_;
- b->line_ = ffewhere_line_unknown ();
- b->col_ = ffewhere_column_unknown ();
- ffestw_stack_top_ = b;
- return b;
-}
-
-/* ffestw_update -- Update current block line/col info
-
- ffestw_update();
-
- Updates block to point to current statement. */
-
-ffestw
-ffestw_update (ffestw b)
-{
- if (b == NULL)
- {
- b = ffestw_stack_top_;
- assert (b != NULL);
- }
-
- if (ffesta_tokens[0] == NULL)
- return b;
-
- ffewhere_line_kill (b->line_);
- ffewhere_column_kill (b->col_);
- b->line_ = ffewhere_line_use (ffelex_token_where_line (ffesta_tokens[0]));
- b->col_ = ffewhere_column_use (ffelex_token_where_column (ffesta_tokens[0]));
-
- return b;
-}
-
-/* ffestw_use -- Mark extra use of block
-
- ffestw b;
- b = ffestw_use(b); // will always return original copy of b
-
- Increments use counter for b. */
-
-ffestw
-ffestw_use (ffestw b)
-{
- assert (b != NULL);
- assert (b->uses_ != 0);
-
- ++b->uses_;
-
- return b;
-}
OpenPOWER on IntegriCloud