资源简介
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 -
相关资源
- 怎样在flex的datagrid中运用checkbox
- IBM Flex System –超越刀片
- IBM Flex System产品介绍
- IBM Flex System企业级机箱
- .NET程序编辑器(Reflexil) v1.6
- SIWAREX CS程序WinCC flexible.zip
- flex4.0实现翻书效果,并动态 使用Fl
- 张正友相机标定--A Flexible New Techniqu
- AprilTag: A robust and flexible visual fiducia
- 词法分析器自动生成器 FLEX
- HP VC FlexFabric应用于VMware vSphere环境的
- FlexRay总线资料
- WINCC FLEXIBLE培训教程 很完美的
- flex和yacc(bison)for windows
- FLEX网页模板
- flex-2.6.4.tar.gz
- flex与bison安装包
- flex3做的网页在线试衣间项目源码
- Windows下Lex与Yacc配置必备工具
- docflex-doclet-1.6.1
- 3维空间电场线绘制演示
- flex中调用dll,测试可用
- Windows和Linux下bison和flex的安装包
- 群友分享的FLEX工作流设计器(含源码
- Flexsim仿真案例集合
- 西门子触摸屏编程WinCC_flexible经典教程
- SafeFLEXlmInstaller.msi
- FlexGraphics_Full_1.8.zip
- 利用FLEX设计一个small c的词法分析器文
- 顺丰快递物流设计(基于flexsim技术的
评论
共有 条评论