91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

pl0中增加bool類型處理支持,解壓以后就可以運行,獻給為編譯奮斗的人們

資源截圖

代碼片段和文件信息

//?pl0?compiler?source?code

#include?
#include?
#include?
#include?
#include?“set.h“
#include?“pl0.h“

//////////////////////////////////////////////////////////////////////
//?print?error?message.
void?error(n)//出錯處理程序,指明錯誤類型
{
int?i;

printf(“??????“);
for?(i?=?1;?i?<=?cc?-?1;?i++)??????????//cc表示已識別字符個數
printf(“?“);
fprintf(outfile?“?“);
fprintf(outfile?“^\n“);?????//fprintf函數是將字符串寫入文件,這里是將換行符寫入文件
printf(“^\n“);???????????????//printf函數是在屏幕上輸出
fprintf(outfile?“Error?%3d:?%s\n“?n?err_msg[n]);
printf(“Error?%3d:?%s\n“?n?err_msg[n]);//輸出錯誤類型,err_msg[]在前面已定義
err++;//err表示的是錯誤數,這里將錯誤數加一
}?//?error

//////////////////////////////////////////////////////////////////////
/*這個函數的作用是獲取一個字符,即讀入下一個字符,比如一行代碼如下所示:
const?a:=1b:=3;
當它已讀入const中的n后,調用這個函數,獲取下一個字符就是s,這個函數是為
下一個函數getsym()做鋪墊的,getsym()要頻繁的調用這個函數*/
void?getch(void)
{
if?(cc?==?ll)//字符個數等于長度其中cc表示已識別字符個數,ll表示整行字符串的長度
{ ?????//這個函數使用了緩沖區技術,它先將一行代碼讀入緩沖區,根據cc和ll來判斷緩沖區
?????????????//的字符是否已識別完即ll==cc表明斷緩沖區的字符已識別完,需要再讀入一行代碼
if?(feof(infile))??//代碼是以文件的形式提供的,這個函數判斷是否到了文件末尾
{
printf(“\nPROGRAM?INCOMPLETE\n“);
exit(1);
}
ll?=?cc?=?0;
fprintf(outfile?“%5d??“?cx);
printf(“%5d??“?cx);
while?(?(!feof(infile))?//?added?&?modified?by?alex?01-02-09
????&&?((ch?=?getc(infile))?!=?‘\n‘))
{
fprintf(outfile?“%c“?ch);
printf(“%c“?ch);
line[++ll]?=?ch;
}?//?while
fprintf(outfile?“\n“);
printf(“\n“);
line[++ll]?=?‘?‘;?????//緩沖區數組
}
ch?=?line[++cc];//如果cc!=ll,繼續從緩沖區中獲取字符
}?//?getch//ch跳到下一個字符上
//////////////////////////////////////////////////////////////////////
int?boolroint()//判斷是否是bool類型或者int類型
{
int?i=0;
for(i=0;i {
if?(line[i]==‘:‘)
{
break;
}
}
if?(line[i]==‘:‘)
{
if?(line[i+1]==‘b‘)//bool
{
return?1;
}
if(line[i+1]==‘i‘)//intager
{
return?0;
}
}
}
//////////////////////////////////////////////////////////////////////
//?gets?a?symbol?from?input?stream.
/*這個函數的作用是識別關鍵字、標識符、數字,比如一行代碼如下所示:
const?a:=1b:=3;
調用這個函數后它就識別出const這個關鍵字,并將它記入符號表,再調用的話就會識別出‘,’
然后識別出a這個標識符?*/
void?getsym(void)
{
int?i?k;
char?a[MAXIDLEN?+?1];?????//?MAXIDLEN??標識符的長度??設為?10

while?(ch?==?‘?‘||?ch?==?‘\t‘) //跳過空格
//?modified.修改?by?yzhang?02-03-12add?some?white?space
getch();

if?(isalpha(ch))//識別出關鍵字或標識符
{?//?symbol?is?a?reserved?word?or?an?identifier.
k?=?0;
do
{
if?(k? a[k++]?=?ch;
getch();
}
while?(isalpha(ch)?||?isdigit(ch));//識別出關鍵字或標識符數字
a[k]?=?0;
strcpy(id?a);????
word[0]?=?id;//word關鍵字集合
i?=?NRW;????????//?NRW???關鍵字的長度??設為?11
while?(strcmp(id?word[i--]));
if?(++i)
{
sym?=?wsym[i];?//?symbol?is?a?reserved?word
if?(sym?==?SYM_TRUE)
{
num?=?1;
}
if?(sym?==?SYM_FALSE)
{
num?=?0;
}
}
else
sym?=?SYM_IDENTIFIER;???//?symbol?is?an?identifier
}
else?if?(isdigit(ch))//識別出數字
{?//?symbol?is?a?number.
k?=?num?=?0;
sym?=?SYM_NUMBER;
do
{
num?=?num?*

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-07-16?22:41??添加BOOL\
?????目錄???????????0??2012-07-16?22:41??添加BOOL\Debug\
?????文件??????????44??2002-02-28?10:28??添加BOOL\Debug\e1
?????文件??????196669??2012-07-16?16:23??添加BOOL\Debug\pl0.exe
?????文件??????320796??2012-07-16?16:23??添加BOOL\Debug\pl0.ilk
?????文件???????54859??2012-07-16?16:23??添加BOOL\Debug\pl0.obj
?????文件??????221984??2012-07-16?15:29??添加BOOL\Debug\pl0.pch
?????文件??????517120??2012-07-16?16:35??添加BOOL\Debug\pl0.pdb
?????文件????????6099??2009-06-15?22:47??添加BOOL\Debug\set.obj
?????文件???????58368??2012-07-16?16:27??添加BOOL\Debug\vc60.idb
?????文件???????53248??2012-07-16?16:23??添加BOOL\Debug\vc60.pdb
?????文件????????1504??2012-07-16?16:27??添加BOOL\example.out
?????文件?????????182??2012-07-16?16:25??添加BOOL\example.txt
?????文件???????28134??2012-07-16?16:21??添加BOOL\pl0.c
?????文件????????3537??2009-06-21?00:05??添加BOOL\pl0.dsp
?????文件?????????514??2009-06-15?22:18??添加BOOL\pl0.dsw
?????文件????????5180??2012-07-16?14:52??添加BOOL\pl0.h
?????文件??????132096??2012-07-16?16:27??添加BOOL\pl0.ncb
?????文件???????49664??2012-07-16?16:27??添加BOOL\pl0.opt
?????文件?????????750??2012-07-16?16:23??添加BOOL\pl0.plg
?????文件????????2177??2009-06-15?20:29??添加BOOL\set.c
?????文件?????????377??2012-07-16?15:29??添加BOOL\set.h

評論

共有 條評論