⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fortran.c

📁 linux 下的源代码分析阅读器 red hat公司新版
💻 C
📖 第 1 页 / 共 5 页
字号:
/*  A Bison parser, made from ../../../../new_src/src/snavigator/parsers/fortran/fortran.y    by GNU Bison version 1.28  */#define YYBISON 1  /* Identify Bison output.  */#define	tok_identifier	257#define	tok_array_identifier	258#define	tok_label	259#define	tok_integer_const	260#define	tok_real_const	261#define	tok_dp_const	262#define	tok_complex_const	263#define	tok_dcomplex_const	264#define	tok_logical_const	265#define	tok_string	266#define	tok_hollerith	267#define	tok_edit_descriptor	268#define	tok_letter	269#define	tok_relop	270#define	tok_AND	271#define	tok_OR	272#define	tok_EQV	273#define	tok_NEQV	274#define	tok_NOT	275#define	tok_power	276#define	tok_concat	277#define	tok_ACCEPT	278#define	tok_ASSIGN	279#define	tok_BACKSPACE	280#define	tok_BLOCK	281#define	tok_BLOCKDATA	282#define	tok_BYTE	283#define	tok_CALL	284#define	tok_CHARACTER	285#define	tok_CLOSE	286#define	tok_COMMON	287#define	tok_COMPLEX	288#define	tok_CONTINUE	289#define	tok_DATA	290#define	tok_DIMENSION	291#define	tok_DO	292#define	tok_DOUBLE	293#define	tok_DOUBLECOMPLEX	294#define	tok_DOUBLEPRECISION	295#define	tok_DOWHILE	296#define	tok_ELSE	297#define	tok_ELSEIF	298#define	tok_END	299#define	tok_ENDDO	300#define	tok_ENDFILE	301#define	tok_ENDIF	302#define	tok_ENDMAP	303#define	tok_ENDSTRUCTURE	304#define	tok_ENDUNION	305#define	tok_ENTRY	306#define	tok_EQUIVALENCE	307#define	tok_EXTERNAL	308#define	tok_FILE	309#define	tok_FORMAT	310#define	tok_FUNCTION	311#define	tok_GO	312#define	tok_GOTO	313#define	tok_IF	314#define	tok_IMPLICIT	315#define	tok_INCLUDE	316#define	tok_INQUIRE	317#define	tok_INTEGER	318#define	tok_INTRINSIC	319#define	tok_LOGICAL	320#define	tok_MAP	321#define	tok_NAMELIST	322#define	tok_NONE	323#define	tok_OPEN	324#define	tok_PARAMETER	325#define	tok_PAUSE	326#define	tok_POINTER	327#define	tok_PRECISION	328#define	tok_PRINT	329#define	tok_PROGRAM	330#define	tok_READ	331#define	tok_REAL	332#define	tok_RECORD	333#define	tok_RETURN	334#define	tok_REWIND	335#define	tok_SAVE	336#define	tok_STOP	337#define	tok_STRUCTURE	338#define	tok_SUBROUTINE	339#define	tok_UNION	340#define	tok_THEN	341#define	tok_TO	342#define	tok_TYPE	343#define	tok_WHILE	344#define	tok_WRITE	345#define	tok_illegal	346#define	EOS	127#define	REDUCE	347#line 26 "../../../../new_src/src/snavigator/parsers/fortran/fortran.y"/*    fortran.y    Copyright (C) 1992 by Robert K. Moniot.    This program is free software.  Permission is granted to    modify it and/or redistribute it.  There is no warranty    for this program.	    This grammar is ANSI standard-conforming, except for:		-- complex constant and a few other ambiguities needing		   significant lookahead cannot be split across lines.	    Extensions supported:	        -- Case insensitive.	 	-- Hollerith constants.		-- Variable names may be longer than 6 characters.  Also		   allows underscores and dollar signs in names.		-- DO ... ENDDO and DO WHILE loop forms allowed.		-- NAMELIST supported.		-- TYPE and ACCEPT I/O statements allowed.		-- Tabs are permitted in input, and (except in character data)		   expand into blanks up to the next column equal to 1 mod 8.		-- Type declarations INTEGER*2, REAL*8, etc. are allowed.		-- IMPLICIT NONE allowed.*/#include <stdio.h>#include <string.h>#include <ctype.h>#include "ftnchek.h"#include "symtab.h"#include <tcl.h>#include "sn.h"	/* The following section is for use with bison-derived	   parser.  Define alloca to be ckalloc for those cases	   not covered by the cases covered there.  The ifdefs	   are those in the skeleton parser with includes removed */#ifdef AIXC	/* IBM RS/6000 xlc compiler does it this way */#pragma alloca#endif#ifndef alloca#ifdef __GNUC__#else /* Not GNU C.  */#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)#else /* Not sparc */#ifdef MSDOS#endif /* MSDOS */#endif /* Not sparc.  */#endif /* Not GNU C.  */#define alloca ckalloc#endif /* alloca now defined.  */extern	int	highlight;void exit();#ifndef YYDEBUG	/* If not declared otherwise... */int yydebug;	/* declare yydebug to satisfy extern in ftnchek.c */#ifdef DEVELOPMENT#define YYDEBUG 1		/* For development it is handy */#else#define YYDEBUG 0#endif#endif#ifdef DEVELOPMENT#define DEBUG_PARSER#endifint current_datatype,	/* set when parse type_name or type_stmt */    stmt_sequence_no,   /* set when parsing, reset to 0 at end_stmt */    control_item_count;	/* count of items in control_info_list */long current_typesize;	/* for type*len declarations */extern unsigned prev_stmt_line_num; /* shared with advance */unsigned true_prev_stmt_line_num;	/* shared with symtab.c */int current_struct_hash = -1;int current_common_hash = -1;int current_record_hash = -1;int current_module_hash = -1,	/* hashtable index of current module name */    current_module_type,    executable_stmt=FALSE,    prev_stmt_class=0,		 /* flags for lexer */    complex_const_allowed=FALSE, /* for help in lookahead for these */    in_assignment_stmt=FALSE,    inside_format=FALSE,	/* when inside parens of FORMAT  */    integer_context=FALSE;	/* says integers-only are to follow */long exec_stmt_count=0;	/* count of executable stmts in program */int	cross_scope_type = PAF_SUBR_DEF;#ifdef DEBUG_PARSERPRIVATE voidprint_comlist(), print_exprlist();#endifPRIVATE void	END_processing();PRIVATE Token *  append_token();#if 0PRIVATE Token *  append_dot_token();#endifPRIVATE int  do_bounds_type();static Token *token_dup( Token *t );		/* Uses of Token fields for nonterminals: *//*  1. dim_bound_lists: dimensioning info for arrays:       token.class = no. of dimensions,       token.subclass = no. of elements  2. expressions       token.value.integer = hash index (of identifier)       token.class = type_byte = storage_class << 4 + datatype       token.subclass = flags: CONST_EXPR, LVALUE_EXPR, etc.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -