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

📄 bwb_par.c

📁 这是一个简易的basic语言解释器, 可供我们学习和改进.
💻 C
字号:
/***************************************************************        bwb_par.c       Parallel Action (Multitasking) Routines                        for Bywater BASIC Interpreter			Currently UNDER CONSTRUCTION                        Copyright (c) 1993, Ted A. Campbell                        Bywater Software                        email: tcamp@delphi.com        Copyright and Permissions Information:        All U.S. and international rights are claimed by the author,        Ted A. Campbell.	This software is released under the terms of the GNU General	Public License (GPL), which is distributed with this software	in the file "COPYING".  The GPL specifies the terms under	which users may copy and use the software in this distribution.	A separate license is available for commercial distribution,	for information on which you should contact the author.***************************************************************//*---------------------------------------------------------------*//* NOTE: Modifications marked "JBV" were made by Jon B. Volkoff, *//* 11/1995 (eidetics@cerf.net).                                  *//*---------------------------------------------------------------*/#include <stdio.h>#include "bwbasic.h"#include "bwb_mes.h"#if PARACT			/* this whole file ignored if FALSE *//***************************************************************        FUNCTION:       bwb_newtask()        DESCRIPTION:    This C function allocates and initializes        		memory for a new task.***************************************************************/#if ANSI_Cintbwb_newtask( int task_requested )#elseintbwb_newtask( task_requested )   int task_requested;#endif   {   static char start_buf[] = "\0";   static char end_buf[] = "\0";   register int c;   /* find if requested task slot is available */    if ( bwb_tasks[ task_requested ] != NULL )      {#if PROG_ERRORS      sprintf( bwb_ebuf, "in bwb_newtask(): Slot requested is already in use" );      bwb_error( bwb_ebuf );#else      bwb_error( err_overflow );      return -1;#endif      }   /* get memory for task structure */   /* Revised to CALLOC pass-thru call by JBV */   if ( ( bwb_tasks[ task_requested ] = CALLOC( 1, sizeof( struct bwb_task ), "bwb_newtask" ) )      == NULL )      {#if PROG_ERRORS      bwb_error( "in bwb_newtask(): failed to find memory for task structure" );#else      bwb_error( err_getmem );#endif      }   /* set some initial variables */   bwb_tasks[ task_requested ]->bwb_start.number = 0;   bwb_tasks[ task_requested ]->bwb_start.next = &bwb_tasks[ task_requested ]->bwb_end;   bwb_tasks[ task_requested ]->bwb_end.number = MAXLINENO + 1;   bwb_tasks[ task_requested ]->bwb_end.next = &bwb_tasks[ task_requested ]->bwb_end;   bwb_tasks[ task_requested ]->bwb_start.buffer = start_buf;   bwb_tasks[ task_requested ]->bwb_end.buffer = end_buf;   bwb_tasks[ task_requested ]->data_line = &bwb_tasks[ task_requested ]->bwb_start;   bwb_tasks[ task_requested ]->data_pos = 0;   bwb_tasks[ task_requested ]->rescan = TRUE;   bwb_tasks[ task_requested ]->exsc = -1;   bwb_tasks[ task_requested ]->expsc = 0;   bwb_tasks[ task_requested ]->xtxtsc = 0;   /* Variable and function table initializations */   var_init( task_requested );             /* initialize variable chain */   fnc_init( task_requested );             /* initialize function chain */   fslt_init( task_requested );		/* initialize funtion-sub  chain */   return task_requested;   }#endif

⌨️ 快捷键说明

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