亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? conscomp.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*             CLIPS Version 6.24  06/04/06            */   /*                                                     */   /*              CONSTRUCT COMPILER MODULE              */   /*******************************************************//*************************************************************//* Purpose: Provides core routines for the constructs-to-c   *//*   command.                                                *//*                                                           *//* Principal Programmer(s):                                  *//*      Gary D. Riley                                        *//*      Brian L. Donnell                                     *//*      Barry Cameron                                        *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*      6.23: Modifications to use the system constant       *//*            FILENAME_MAX to check file name lengths.       *//*            DR0856                                         *//*                                                           *//*            Corrected compilation errors for files         *//*            generated by constructs-to-c. DR0861           *//*                                                           *//*      6.24: Used EnvClear rather than Clear in             *//*            InitCImage initialization code.                *//*                                                           *//*            Added environment parameter to GenClose.       *//*            Added environment parameter to GenOpen.        *//*                                                           *//*            Removed SHORT_LINK_NAMES code as this option   *//*            is no longer supported.                        *//*                                                           *//*            Support for run-time programs directly passing *//*            the hash tables for initialization.            *//*                                                           *//*************************************************************/#define _CONSCOMP_SOURCE_#include "setup.h"#if CONSTRUCT_COMPILER && (! RUN_TIME)#include <stdio.h>#define _STDIO_INCLUDED_#include <stdlib.h>#include <string.h>#include "symbol.h"#include "memalloc.h"#include "constant.h"#include "exprnpsr.h"#include "cstrccom.h"#include "constrct.h"#include "argacces.h"#include "cstrncmp.h"#include "router.h"#include "sysdep.h"#include "utility.h"#include "modulcmp.h"#include "envrnmnt.h"#if DEFRULE_CONSTRUCT#include "network.h"#endif#if DEFFUNCTION_CONSTRUCT#include "dffnxcmp.h"#endif#if DEFTEMPLATE_CONSTRUCT#include "tmpltcmp.h"#endif#if DEFGLOBAL_CONSTRUCT#include "globlcmp.h"#endif#if DEFGENERIC_CONSTRUCT#include "genrccmp.h"#endif#if OBJECT_SYSTEM#include "objcmp.h"#endif#include "conscomp.h"/***************//* DEFINITIONS *//***************/#define FSIZE 80/**********************************************//* CONSTRUCT CODES DEFINITIONS: The codes F,  *//*   I, B, S, E, P, L, and C are not included *//*   because those are already taken.         *//*                                            *//*   B: BitMap hash nodes                     *//*   C: Constraint hash nodes                 *//*   E: Expression hash nodes                 *//*   F: Float hash nodes                      *//*   I: Integer hash nodes                    *//*   L: Bitmaps                               *//*   P: Functions                             *//*   S: Symbol hash nodes                     *//**********************************************/#define PRIMARY_CODES   "ADGHJKMNOQRTUVWXYZ"#define PRIMARY_LEN     18#define SECONDARY_CODES "ABCDEFGHIJKLMNOPQRSTUVWXYZ"#define SECONDARY_LEN   26/***************************************//* LOCAL INTERNAL FUNCTION DEFINITIONS *//***************************************/   void                               ConstructsToCCommand(void *);   static int                         ConstructsToC(void *,char *,long long,long long);   static void                        WriteFunctionExternDeclarations(void *,FILE *);   static int                         FunctionsToCode(void *theEnv,char *);   static int                         WriteInitializationFunction(void *,char *);   static void                        DumpExpression(void *,struct expr *);   static void                        MarkConstruct(void *,struct constructHeader *,void *);   static void                        HashedExpressionsToCode(void *);   static void                        DeallocateConstructCompilerData(void *);/**********************************************************//* InitializeConstructCompilerData: Allocates environment *//*    data for the constructs-to-c command.               *//**********************************************************/globle void InitializeConstructCompilerData(  void *theEnv)  {   AllocateEnvironmentData(theEnv,CONSTRUCT_COMPILER_DATA,sizeof(struct constructCompilerData),DeallocateConstructCompilerData);      ConstructCompilerData(theEnv)->MaxIndices = 2000;   ConstructCompilerData(theEnv)->CodeGeneratorCount = 0;  }  /************************************************************//* DeallocateConstructCompilerData: Deallocates environment *//*    data for the constructs-to-c command.                 *//************************************************************/static void DeallocateConstructCompilerData(  void *theEnv)  {   struct CodeGeneratorItem *tmpPtr, *nextPtr;   int i;      tmpPtr = ConstructCompilerData(theEnv)->ListOfCodeGeneratorItems;   while (tmpPtr != NULL)     {      nextPtr = tmpPtr->next;      for (i = 0; i < tmpPtr->arrayCount ; i++)        { rm(theEnv,tmpPtr->arrayNames[i],strlen(tmpPtr->arrayNames[i]) + 1); }              if (tmpPtr->arrayCount != 0)        { rm(theEnv,tmpPtr->arrayNames,sizeof(char *) * tmpPtr->arrayCount); }            rtn_struct(theEnv,CodeGeneratorItem,tmpPtr);      tmpPtr = nextPtr;     }  }/**********************************************//* ConstructsToCCommand: H/L access routine   *//*   for the constructs-to-c command.         *//**********************************************/globle void ConstructsToCCommand(  void *theEnv)  {   char *fileName;   DATA_OBJECT theArg;   int argCount;   long long id, max;    int nameLength;#if VAX_VMS || IBM_MSC || IBM_TBC   int i;#endif   /*============================================*/   /* Check for appropriate number of arguments. */   /*============================================*/   if ((argCount = EnvArgRangeCheck(theEnv,"constructs-to-c",2,3)) == -1) return;   /*====================================================*/   /* Get the name of the file in which to place C code. */   /*====================================================*/   if (EnvArgTypeCheck(theEnv,"constructs-to-c",1,SYMBOL_OR_STRING,&theArg) == FALSE)     { return; }   fileName = DOToString(theArg);   nameLength = (int) strlen(fileName);   /*================================*/   /* File names for the VAX and IBM */   /* PCs can't contain a period.    */   /*================================*/#if VAX_VMS || IBM_MSC || IBM_TBC   for (i = 0 ; *(fileName+i) ; i++)     {      if (*(fileName+i) == '.')        {         PrintErrorID(theEnv,"CONSCOMP",1,FALSE);         EnvPrintRouter(theEnv,WERROR,"Invalid file name ");         EnvPrintRouter(theEnv,WERROR,fileName);         EnvPrintRouter(theEnv,WERROR," contains \'.\'\n");         return;        }      }#endif   /*==========================================================*/   /* The maximum file name size that can be passed into fopen */   /* is specified by FILENAME_MAX. Assume that the most       */   /* characters that will be appended to the file prefix will */   /* be 20 and check that the prefix plus the additional      */   /* characters is less than the supported maximum.           */   /*==========================================================*/   if ((nameLength + 20) > FILENAME_MAX)     {      PrintErrorID(theEnv,"CONSCOMP",1,FALSE);      EnvPrintRouter(theEnv,WERROR,"Aborting because the base file name may cause the fopen maximum of ");      PrintLongInteger(theEnv,WERROR,FILENAME_MAX);      EnvPrintRouter(theEnv,WERROR," to be violated when file names are generated.\n");      return;     }   /*===========================================*/   /* If the base file name is greater than 3   */   /* characters, issue a warning that the file */   /* name lengths may exceed what is allowed   */   /* under some operating systems.             */   /*===========================================*/   if (nameLength > 3)     {      PrintWarningID(theEnv,"CONSCOMP",1,FALSE);      EnvPrintRouter(theEnv,WWARNING,"Base file name exceeds 3 characters.\n");      EnvPrintRouter(theEnv,WWARNING,"  This may cause files to be overwritten if file name length\n");      EnvPrintRouter(theEnv,WWARNING,"  is limited on your platform.\n");     }   /*====================================*/   /* Get the runtime image ID argument. */   /*====================================*/   if (EnvArgTypeCheck(theEnv,"constructs-to-c",2,INTEGER,&theArg) == FALSE)     { return; }   id = DOToLong(theArg);   if (id < 0)     {      ExpectedTypeError1(theEnv,"constructs-to-c",2,"positive integer");      return;     }   /*===========================================*/   /* Get the maximum number of data structures */   /* to store per file argument (if supplied). */   /*===========================================*/   if (argCount == 3)     {      if (EnvArgTypeCheck(theEnv,"constructs-to-c",3,INTEGER,&theArg) == FALSE)        { return; }      max = DOToLong(theArg);      if (max < 0)        {         ExpectedTypeError1(theEnv,"constructs-to-c",3,"positive integer");         return;        }     }   else     { max = 10000; }   /*============================*/   /* Call the driver routine to */   /* generate the C code.       */   /*============================*/   ConstructsToC(theEnv,fileName,id,max);  }/***************************************//* ConstructsToC: C access routine for *//*   the constructs-to-c command.      *//***************************************/static int ConstructsToC(  void *theEnv,  char *fileName,  long long theImageID,  long long max)  {   char fname[FILENAME_MAX+1];   int fileVersion;   struct CodeGeneratorItem *cgPtr;   /*===============================================*/   /* Set the global MaxIndices variable indicating */   /* the maximum number of data structures to save */   /* in each file.                                 */   /*===============================================*/   ConstructCompilerData(theEnv)->MaxIndices = (int) max; /* TBD */   /*==================================*/   /* Call the list of functions to be */   /* executed before generating code. */   /*==================================*/   for (cgPtr = ConstructCompilerData(theEnv)->ListOfCodeGeneratorItems;        cgPtr != NULL;        cgPtr = cgPtr->next)     { if (cgPtr->beforeFunction != NULL) (*cgPtr->beforeFunction)(theEnv); }   /*=================================================*/   /* Do a periodic cleanup without using heuristics  */   /* to get rid of as much garbage as possible so    */   /* that it isn't written out as C data structures. */   /*=================================================*/   PeriodicCleanup(theEnv,FALSE,FALSE);   /*=====================================*/   /* Initialize some global information. */   /*=====================================*/   ConstructCompilerData(theEnv)->FilePrefix = fileName;   ConstructCompilerData(theEnv)->ImageID = (int) theImageID; /* TBD */   ConstructCompilerData(theEnv)->ExpressionFP = NULL;   ConstructCompilerData(theEnv)->ExpressionVersion = 1;   ConstructCompilerData(theEnv)->ExpressionHeader = TRUE;   ConstructCompilerData(theEnv)->ExpressionCount = 0;   /*=====================================================*/   /* Open a header file for dumping general information. */   /*=====================================================*/   gensprintf(fname,"%s.h",fileName);   if ((ConstructCompilerData(theEnv)->HeaderFP = GenOpen(theEnv,fname,"w")) == NULL)     {      OpenErrorMessage(theEnv,"constructs-to-c",fname);      return(0);     }   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"#ifndef _CONSTRUCT_COMPILER_HEADER_\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"#define _CONSTRUCT_COMPILER_HEADER_\n\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"#include <stdio.h>\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"#include \"setup.h\"\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"#include \"expressn.h\"\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"#include \"extnfunc.h\"\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"#include \"%s\"\n",API_HEADER);   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"\n#define VS (void *)\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"\n");   /*=========================================================*/   /* Give extern declarations for user and system functions. */   /*=========================================================*/   WriteFunctionExternDeclarations(theEnv,ConstructCompilerData(theEnv)->HeaderFP);   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"\n#endif\n\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"/****************************/\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"/* EXTERN ARRAY DEFINITIONS */\n");   fprintf(ConstructCompilerData(theEnv)->HeaderFP,"/****************************/\n\n");   /*============================================*/   /* Open a file for dumping fixup information. */   /*============================================*/   gensprintf(fname,"%s_init.c",fileName);   if ((ConstructCompilerData(theEnv)->FixupFP = GenOpen(theEnv,fname,"w")) == NULL)     {      OpenErrorMessage(theEnv,"constructs-to-c",fname);      return(0);     }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区不卡| 欧美日韩国产成人在线免费| 青青国产91久久久久久 | 亚洲电影一级黄| 亚洲欧洲av另类| 尤物在线观看一区| 天堂精品中文字幕在线| 日韩精品亚洲一区二区三区免费| 136国产福利精品导航| 亚洲欧美偷拍卡通变态| 亚洲观看高清完整版在线观看| 亚洲黄色小说网站| 亚洲成人tv网| 国产精品伊人色| 色老汉av一区二区三区| 69成人精品免费视频| 久久色成人在线| 亚洲国产精品久久人人爱蜜臀| 舔着乳尖日韩一区| 成人午夜视频在线| 在线观看日韩电影| 久久精品亚洲精品国产欧美| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日韩精品中文字幕一区| 国产精品色在线观看| 日韩高清不卡一区二区| av在线一区二区三区| 欧美欧美午夜aⅴ在线观看| 国产精品天美传媒| 日本亚洲三级在线| 欧美性受xxxx| 亚洲精品中文字幕在线观看| 国产凹凸在线观看一区二区| 日韩一区二区三区免费看| 亚洲一区自拍偷拍| 99久久精品国产观看| 久久久蜜桃精品| 免费人成网站在线观看欧美高清| 欧美在线一区二区| 亚洲精品日韩专区silk | 久久久三级国产网站| 精品一区二区三区久久久| 欧美一区二区三区免费视频| 午夜不卡av免费| 91精品国产综合久久婷婷香蕉| 亚洲午夜精品网| 欧美福利电影网| 蜜臀久久99精品久久久久宅男| 欧美日韩在线观看一区二区| 欧美成人性战久久| 亚洲成av人片在线观看无码| 国产精品资源网站| 中文字幕av一区二区三区高| 国产91精品一区二区麻豆网站| 久久久久久影视| 成人精品视频一区二区三区尤物| 日韩欧美精品在线视频| 国产真实乱子伦精品视频| 中文字幕乱码一区二区免费| 91丨九色porny丨蝌蚪| 亚洲一区二区在线免费看| 欧美午夜精品久久久久久孕妇 | 国产麻豆精品一区二区| 国产欧美一区二区精品秋霞影院 | 欧美激情一区二区三区全黄| 91色.com| 国产美女主播视频一区| 一区二区久久久久| 国产亚洲综合色| 91麻豆精品久久久久蜜臀| 国产不卡一区视频| 日韩国产高清在线| 亚洲欧洲日产国产综合网| 欧美成人一区二区三区| 在线一区二区视频| gogogo免费视频观看亚洲一| 日本欧美一区二区| 日日夜夜精品视频免费 | 91在线观看视频| 国产精品一区二区久激情瑜伽 | 亚洲国产视频一区| 国产精品无圣光一区二区| 欧美日韩免费不卡视频一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 午夜电影网亚洲视频| 亚洲成人一二三| 天堂一区二区在线免费观看| 亚洲欧美一区二区久久| 一区二区三区免费| 一区二区三区.www| 性欧美疯狂xxxxbbbb| 婷婷国产v国产偷v亚洲高清| 国产麻豆精品久久一二三| 国产精品久久久久三级| 欧美电视剧在线看免费| 日韩一区二区三区电影| 欧美精品乱人伦久久久久久| 欧美美女网站色| 日韩精品一区二区三区视频在线观看 | 一二三四社区欧美黄| 亚洲国产人成综合网站| 亚洲成人综合在线| 久久66热偷产精品| 国产91精品一区二区麻豆亚洲| 岛国一区二区三区| 欧美色爱综合网| 欧美最新大片在线看| 日本欧美加勒比视频| 久久精品亚洲精品国产欧美| 日本一区二区三区在线不卡| 国产精品毛片a∨一区二区三区| 亚洲精品高清在线| 麻豆91精品91久久久的内涵| 成人网页在线观看| 欧美精品第一页| 亚洲视频在线观看一区| 秋霞午夜av一区二区三区| 91论坛在线播放| 国产欧美精品在线观看| 亚洲成人免费在线| 91亚洲资源网| 国产欧美一区二区精品婷婷| 天天综合日日夜夜精品| 一本色道综合亚洲| 国产精品久久久久久一区二区三区| 日韩黄色片在线观看| 97精品视频在线观看自产线路二 | 亚洲毛片av在线| 99视频精品全部免费在线| 久久久亚洲午夜电影| 黄页视频在线91| 欧美成人a∨高清免费观看| 亚洲一区二区三区影院| 91麻豆免费看| 亚洲国产视频在线| 欧美电影影音先锋| 舔着乳尖日韩一区| 日韩一区二区免费在线电影| 亚洲一区在线观看免费观看电影高清| 成人av电影在线| 国产精品家庭影院| 欧美系列一区二区| 亚洲动漫第一页| 日韩欧美一区在线观看| 国产最新精品精品你懂的| 国产亚洲欧美中文| 在线中文字幕不卡| 蜜桃一区二区三区在线观看| 国产欧美在线观看一区| 本田岬高潮一区二区三区| 亚洲三级在线播放| 欧美一区二区三区色| 成人黄色大片在线观看| 亚洲综合无码一区二区| 欧美日韩成人综合| 国产精品1区2区| 一区二区三区四区国产精品| 91精品国产丝袜白色高跟鞋| 国产99久久精品| 日本不卡在线视频| 中文字幕欧美国产| 日韩美女在线视频 | 国产欧美一区二区精品性| 欧美日韩免费观看一区二区三区| 精品亚洲免费视频| 亚洲第一成人在线| 亚洲嫩草精品久久| 久久精品免费在线观看| 欧美tk—视频vk| 在线电影院国产精品| 在线观看日韩av先锋影音电影院| 粉嫩绯色av一区二区在线观看| 日韩成人免费电影| 亚洲午夜精品在线| 成人午夜视频免费看| 国产最新精品免费| 国产自产2019最新不卡| 美女尤物国产一区| 日韩av电影免费观看高清完整版 | 日韩黄色片在线观看| 精品国产亚洲在线| 不卡欧美aaaaa| 成人午夜碰碰视频| a级精品国产片在线观看| 粉嫩av一区二区三区在线播放 | 欧美三级乱人伦电影| 91搞黄在线观看| 日韩欧美你懂的| 久久影院午夜片一区| 国产欧美日韩在线观看| 国产精品久久久久久久久免费樱桃| 国产肉丝袜一区二区| 中文字幕日本不卡| 亚洲成av人片| 国产精品一二二区| 91行情网站电视在线观看高清版| 欧美人妖巨大在线| 久久久久久97三级| 亚洲人成网站影音先锋播放| 天堂精品中文字幕在线|