一、 实验内容 S语言的编译程序的词法分析部分实现 从左到右扫描每行S语言源程序的符号,拼成单词,换成内部表示(token) 二、 实验要求 要求实现编译器的以下功能: 组织源程序的输入 按规则拼写单词,并转换成二元形式 删除空格及无用符号(如回车符,字符常数的引号符等) 发现并定位错误 建立单词表、符号表、常数表等文件 三、 实现方法 数据结构 1、 输入 S语言源程序,为文本文件 2、 输出 词法分析程序的运行结果是:产生一个单词序列文件(token文件)和一个常数表、一个符号表文件,并输出错误信息。 (1) token文件结构 token文件用于存放从S语言源程序中扫描出来的一个个单词符号的机内表示,其文件结构如下: typedef struct token { nt label CHAR name[30] int code int addr }token 说明: label:单词序号; name[30]:单词本身; code:单词的编辑; addr:地址,单词本身保留字时值为-1,为标识符成常数时为大于0常数,即该标识符成常数在符号表中的入口地址。
上传时间: 2015-04-29
上传用户:refent
UART I/O and Memory Allocation Example for GNU The project GNU_IODemo shows how to use memory allocation routines (malloc) and CHAR I/O (printf, scanf) via a serial interface with the GNU toolchain. The I/O functions are adapted for the Analog Devices ADuC7000 series using the SERIAL.C module. The example also shows the efficiency of the Keil CA ARM Compiler run-time library which is tuned for single chip systems.
标签: Allocation GNU_IODemo Example project
上传时间: 2015-05-04
上传用户:Amygdala
SPI接口EEPROM驱动 EEPROMWRITE(绝对地址,数组指针,数据长度) //多字节写 EEPROMREAD(绝对地址,数组指针,数据长度) //多字节读 EEPROMWRITE(绝对地址,数据) //单字节写 (CHAR)数据=EEPROMREAD(绝对地址) //单字节读
标签: EEPROMWRITE EEPROM SPI 接口
上传时间: 2013-12-11
上传用户:fnhhs
/*** *5510单片机测试程序 基本测试成功 2005-8-25 write By CW *** *** *** *** *** ****/ #include <reg52.h> #include <absacc.h> #define uint unsigned int #define uCHAR unsigned CHAR
上传时间: 2013-11-25
上传用户:q123321
* * Input * bin_data : binary data * bin_size : binary data length * Mode : operation mode * BASE64_NeedCRLF ---- Need a CRLF every 64 base64-CHARacter * BASE64_NotCRLF ---- Need not CRLF between 64 base64-CHARacter * * Output * CHAR data * CHAR data length * * Return * 0: success -1: error
标签: binary data operation bin_data
上传时间: 2015-06-04
上传用户:ZJX5201314
此软件包包含了模拟I2C C51程序软件包和ZLG7290的C51程序然后包。 软件包的接口界面: (1) bit ISendByte(uCHAR sla,uCHAR c) (无子地址)写单字节数据 (现行地址写) (2) bit IRcvByte(uCHAR sla,uCHAR *c) (无子地址)读单字节数据 (现行地址读) (3) bit ISendStr(uCHAR sla,uCHAR suba,uCHAR *s,uCHAR no)(有子地址)读N字节数据 (4) bit IRcvStr(uCHAR sla,uCHAR suba,uCHAR *s,uCHAR no) (有子地址)写N字节数据 (5) bit ISendStr(uCHAR sla,uCHAR *s,uCHAR no) (无子地址)写多字节数据 (6) bit IRcvStr(uCHAR sla,uCHAR *s,uCHAR no) (无子地址)读单字节数据 (7) unsigned CHAR ZLG7290_SendData(unsigned CHAR SubAdd,unsigned CHAR Data) (8) void ZLG7290_SendBuf(unsigned CHAR * disp_buf,unsigned CHAR num) (9) unsigned CHAR ZLG7290_SendCmd(unsigned CHAR Data1,unsigned CHAR Data2) (10)unsigned CHAR ZLG7290_GetKey()
上传时间: 2013-12-05
上传用户:hongmo
c8051f020 实时时钟模块程序 内含IIC模块程序/********************** SYSTEM CLOCK 8M********************************/ extern unsigned CHAR xdata currenttime[16]={0} extern unsigned CHAR xdata settime[16]={ 0x00, // control regesiter 1 0x00, // control regesiter 2 0x01, //current second 0x19, //current minute 0x20, //current hour 0x29, //current data 0x04, //current week 0x07, //current month 0x05, //current year 0x00, // alarm value reset 0x00, // alarm value reset 0x00, // alarm value reset 0x00, // alarm value reset 0x00, // clk out disable 0x00, // close timer 0x00, } /*********************************************************************/ extern void Current_Time ( void ) extern void Set_Time ( void )
标签: c8051f020 SYSTEM CLOCK IIC
上传时间: 2015-06-30
上传用户:edisonfather
C51的一些误区和注意事项(ZT) 1)C忌讳绝对定位。 常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量 的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个 变量。怎么取得这个变量的地址?要用指针。比如unsigned CHAR data x 后,x的地址就是...
上传时间: 2014-12-05
上传用户:xiaoxiang
函数模板T max(T a, T b, T c),使之实现对任何类型数,能从三个数中求出最大数返回。设计各种类型数据(CHAR,short,long,float,double)调用此函数模板。
上传时间: 2015-07-07
上传用户:时代电子小智
#include "define.h" #include <stdio.h> #include <string.h> #include <ctype.h> #include <malloc.h> FILE *fp /*////////////////////////////////////////////////////////////////////////////// This is a pretreatment. /////////////////////////////////////////////////////////////////////////////*/ void readIntoBuffer(CHAR buffer[256]) { CHAR ch1 CHAR temp int i for(i=0 i<256&&!feof(fp) i++) { ch1=fgetc(fp) if(ch1== )
上传时间: 2015-07-16
上传用户:ynsnjs