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

📄 optimize.h

📁 类PASCAL语言的编译器,LINUX环境的,我没试过是否正确.
💻 H
字号:
/****************************************************************************** *		           FREXX PROGRAMMING LANGUAGE    		      * ****************************************************************************** optimize.h Definitions for the expression optimizer.  *****************************************************************************//************************************************************************ *                                                                      * * fpl.library - A shared library interpreting script langauge.         * * Copyright (C) 1992-1994 FrexxWare                                    * * Author: Daniel Stenberg                                              * *                                                                      * * This program is free software; you may redistribute for non          * * commercial purposes only. Commercial programs must have a written    * * permission from the author to use FPL. FPL is *NOT* public domain!   * * Any provided source code is only for reference and for assurance     * * that users should be able to compile FPL on any operating system     * * he/she wants to use it in!                                           * *                                                                      * * You may not change, resource, patch files or in any way reverse      * * engineer anything in the FPL package.                                * *                                                                      * * This program 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.                 * *                                                                      * * Daniel Stenberg                                                      * * Ankdammsgatan 36, 4tr                                                * * S-171 43 Solna                                                       * * Sweden                                                               * *                                                                      * * FidoNet 2:201/328    email:dast@sth.frontec.se                       * *                                                                      * ************************************************************************//*********************************************************** Optimization types****************************/typedef enum{   OPT_IMPOSSIBLE = 0,   OPT_TWO_CONSTANTS,		/* Two constants can be combined */   OPT_AND_IS_FALSE,		/* The left operand of '&&' is FALSE */   OPT_OR_IS_TRUE,		/* The left operand of '||' is TRUE */   OPT_MULTIPLY_WITH_1,		/* A multiplication with 1 */   OPT_DIVISION_WITH_1		/* A division with 1 */} OptType;/*********************************************************** Return codes from OptimizeTree()**************************/typedef enum{   OPT_OK = 0,   OPT_DIVISION_BY_ZERO} OptErr;   /*********************************************************** This is the operand/operator information structure**************************/struct Oper{   Pass1 type;		/* The data type (COMP_NOTHING if an operand */   long num;		/* The constant numerical value if an operand */   void *data;		/* Reference to the actual data structure */   BOOL constant;	/* TRUE if the operand is a constant */};/*********************************************************** This is the tree node structure**************************/struct PNode{   struct PNode *left;	/* Link to the left operand */   struct PNode *right;	/* Link to the right operand */   struct Oper data;	/* Contains the data structure (see above) */};/*********************************************************** The exported functions**************************/OptErr OptimizeExpression(void *user);/*********************************************************** The imported functions**************************/BOOL GetOper(void *user, struct Oper *oper, char index);void PutOper(void *user, struct Oper *oper, char step);

⌨️ 快捷键说明

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