资源简介
flex的linux包是一种词法分析程序生成器
代码片段和文件信息
/* ccl - routines for character classes */
/*-
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Vern Paxson.
*
* The United States Government has rights in this work pursuant
* to contract no. DE-AC03-76SF00098 between the United States
* Department of Energy and the University of California.
*
* Redistribution and use in source and binary forms are permitted provided
* that: (1) source distributions retain this entire copyright notice and
* comment and (2) distributions including binaries display the following
* acknowledgement: ‘‘This product includes software developed by the
* University of California Berkeley and its contributors‘‘ in the
* documentation or other materials provided with the distribution and in
* all advertising materials mentioning features or use of this software.
* Neither the name of the University nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
* THIS SOFTWARE IS PROVIDED ‘‘AS IS‘‘ AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
/* $Header: /home/daffy/u0/vern/flex/RCS/ccl.cv 2.9 93/09/16 20:32:14 vern Exp $ */
#include “flexdef.h“
/* ccladd - add a single character to a ccl */
void ccladd( cclp ch )
int cclp;
int ch;
{
int ind len newpos i;
check_char( ch );
len = ccllen[cclp];
ind = cclmap[cclp];
/* check to see if the character is already in the ccl */
for ( i = 0; i < len; ++i )
if ( ccltbl[ind + i] == ch )
return;
newpos = ind + len;
if ( newpos >= current_max_ccl_tbl_size )
{
current_max_ccl_tbl_size += MAX_CCL_TBL_SIZE_INCREMENT;
++num_reallocs;
ccltbl = reallocate_Character_array( ccltbl
current_max_ccl_tbl_size );
}
ccllen[cclp] = len + 1;
ccltbl[newpos] = ch;
}
/* cclinit - return an empty ccl */
int cclinit()
{
if ( ++lastccl >= current_maxccls )
{
current_maxccls += MAX_CCLS_INCREMENT;
++num_reallocs;
cclmap = reallocate_integer_array( cclmap current_maxccls );
ccllen = reallocate_integer_array( ccllen current_maxccls );
cclng = reallocate_integer_array( cclng current_maxccls );
}
if ( lastccl == 1 )
/* we‘re making the first ccl */
cclmap[lastccl] = 0;
else
/* The new pointer is just past the end of the last ccl.
* Since the cclmap points to the \first/ character of a
* ccl adding the length of the ccl to the cclmap pointer
* will produce a cursor to the first free space.
*/
cclmap[lastccl] = cclmap[lastccl - 1] + ccllen[lastccl - 1];
ccllen[lastccl] = 0;
cclng[lastccl] = 0; /* ccl‘s start out life un-negated */
return lastccl;
}
/* cclnegate - negate the given ccl */
void cclnegate( cclp )
int cclp;
{
cclng[cclp] = 1;
}
/* list_character_set -
相关资源
- 物流中心flexsim建模
- MSFlexGrid.ocx
- FlexCAN详解
- 编译原理实验MiniPascal编译器设计 Fl
- Flex And Bison For Windows
- 科学计算器flex和bison
- 算术表达式翻译成对应的后缀表达式
- vsflexgrid官方 帮助文档chm
- flex bison 简单c结构体解析
- 百度文库 flexpaper_flash.js
- Flexnet_Licesing_Service 服务修复安装文件
- asdoc.zip
- FlexAnalysis软件,可打开MALDI-TOF-MS基质
- flex导入excel2007版本以上并支持日期格
- flexsim排队系统仿真模型
- wincc flexible用户登录、注销及显示
- wincc_flexible创建脚本的技巧
- 分拣传送带
- flex 注册机 flex注册机
- flex破解教程
- AMF抓取flex页面数据
- flexitimer2库
- flexsim仿真模型
- Flexsim快餐店仿真案列
- 在VS2010上用FluorineFX和Flex4开发项目(
- Flex 写的一个combox多选控件
- flexgrid最新版+
- 自动化立体仓库仿真
- Flex利用as3xls导入excel数据表
- flex与Bison小手册包含一个编译器的实
评论
共有 条评论