1.[文件] scanner.cpp ~ 29KB 下载(47)
2.[文件] resource.h ~ 387B 下载(29)
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by bianyiqi.rc
// 新对象的下一组默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
3.[文件] globals.h ~ 2KB 下载(27)
/*编译器的全局类型和变量,应在其他包含文件之前*/
/* 如已经联入头文件globals.h则不再联入 */
#ifndef _GLOBALS_H_
#define _GLOBALS_H_
/****** globals.h所包含头文件 ******/
#include "stdio.h"
#include "stdlib.h"
/* 定义常量FALSE为0 */
#ifndef FALSE
#define FALSE 0
#endif
/* 定义常量TRUE为1 */
#ifndef TRUE
#define TRUE 1
#endif
/* 定义保留字数量常量MAXRESERVED为21 */
#define MAXRESERVED 9
/* MAXTOKENLEN为单词最大长度定义为40 */
#define MAXTOKENLEN 40
/*初始化符号表中变量的偏移*/
#define INITOFF 7
/* SCOPESIZE为符号表scope栈的大小*/
#define SCOPESIZE 1000
/*定义token的长度*/
#define TOKENLEN sizeof (TokenType)
/*定义链表节点的长度*/
#define CHAINNODELEN sizeof (ChainNodeType)
/********************** 单词的词法类型 ********************/
typedef enum
{
/* 保留字 */
INT, ELSE, RETURN, VOID, IF, WHILE, READ, WRITE, MAIN,
/* 特殊符号 */
ID, NUM,EEOF, ERROR, NONE,
/*简单运算符*/
ASSIGN/* = */, PLUS/* + */, MINUS/* - */, TIMES/* * */, DIV/* @ */,
MOD/* % */, LT/* < */, GT/* > */,
/*复杂运算符*/
EQ/* == */, NEQ/* != */,NGT/* <= */, NLT/* >= */,
/*标点符号*/
LPARAN, RPARAN/* ( ) */, LBRACE, RBRACE/* { } */, LSQUARE, RSQUARE/* [ ] */,
COMMA/* , */, SEMI/* ; */,ZHUSHI /* / */,
} LexType;
/*********** 单词的类型,包括词法信息和语义信息 ************/
typedef struct tokenType
{
int lineshow;
LexType Lex;
char Sem[MAXTOKENLEN+1];
} TokenType;
/***********链表的结点类型,包括Token部分和指针部分**********/
typedef struct node
{
TokenType Token; //单词
struct node *nextToken; //指向下一个单词的指针
} ChainNodeType;
/********************************************************************/
/* 源代码文本文件指针source */
extern FILE *source;
/* 列表输出文件指针listing */
extern FILE* listing;
/*词法分析结果Token序列的存储文件指针fp*/
extern FILE* fp;
/*Token序列中的token数目*/
extern int Tokennum;
/*清单的行号*/
extern int lineno;
/********************************************************************/
/* 源程序追踪标志,如果该标志为TRUE *
* 语法分析时将源程序行号写入列表文件listing */
extern int EchoSource;
/* 错误追踪标志,如果该标志为TRUE *
* 防止错误产生时进一步传递错误 */
extern int Error;
#endif
4.[文件] util.h ~ 386B 下载(26)
/* 如已经联入该头文件util.h则不再联入 */
#ifndef _UTIL_H_
#define _UTIL_H_
void printTokenlist( ); //显示词法分析结果函数
void ChainToFile (ChainNodeType *p);//显示一个单词
//void ReadNextToken(TokenType *p);//将文件tokenlist中的信息作为返回值进行输出
//char * copyString(char * s);/* 字符串复制函数 该函数为已存在的字串分配内存单元,并将其复制*/
#endif
5.[文件] 1.txt ~ 405B 下载(24)
/我的测试用例/
/仅用于一般测试/
void main(){
int num[9] = {3,5,5,7,6,8,90,6,54};
int dem = 9;/kj/
int i = 0;
while(i<9){
if(num[i]<= dem)
num[i]= dem;
else if(num[i] >= dem)
num[i]= dem-1;
else if(num[i]!= dem)
num[i]= dem*2;
else if(num[i]== dem)
num[i] = dem@3;
i++;
}
i = i%3;
read(i);
write(i);
return 0;
}