xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 1.08MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-08-20
  • 語言: 其他
  • 標(biāo)簽: C編譯器??

資源簡介

快要過去的一個(gè)學(xué)期里,學(xué)了編譯原理,課程大作業(yè)寫簡易C編譯器。能實(shí)現(xiàn)加減乘除四則運(yùn)算,取模賦值運(yùn)算,邏輯表達(dá)式運(yùn)算,復(fù)合語句,if,while,for語句~支持輸入輸出,最終生成匯編語言代碼。移位運(yùn)算沒寫。 調(diào)試過了,如有好建議請大家賜教。

資源截圖

代碼片段和文件信息

/****************************************************************************
*?????????????????????U?N?R?E?G?I?S?T?E?R?E?D???C?O?P?Y
*?
*?You?are?on?day?84?of?your?30?day?trial?period.
*?
*?This?file?was?produced?by?an?UNREGISTERED?COPY?of?Parser?Generator.?It?is
*?for?evaluation?purposes?only.?If?you?continue?to?use?Parser?Generator?30
*?days?after?installation?then?you?are?required?to?purchase?a?license.?For
*?more?information?see?the?online?help?or?go?to?the?Bumble-Bee?Software
*?homepage?at:
*?
*?http://www.bumblebeesoftware.com
*?
*?This?notice?must?remain?present?in?the?file.?It?cannot?be?removed.
****************************************************************************/

/****************************************************************************
*?mylexer.cpp
*?C++?source?file?generated?from?mylexer.l.
*?
*?Date:?12/15/08
*?Time:?08:20:04
*?
*?ALex?Version:?2.06
****************************************************************************/

#include?

//?namespaces
#ifdef?YYSTDCPPLIB
using?namespace?std;
#endif
#ifdef?YYNAMESPACE
using?namespace?yl;
#endif

#line?1?“.\\mylexer.l“

/****************************************************************************
mylexer.l
ParserWizard?generated?Lex?file.

Date:?2008年12月14日
****************************************************************************/

#include?“myparser.h“

#define?MAXCHILDREN?4?//每一個(gè)樹結(jié)點(diǎn)所擁有的孩子結(jié)點(diǎn)的最大個(gè)數(shù)

#define?IDNUMMAX??100??//可存儲變量的最大數(shù)目

#define?LETNUMMAX?999??//存儲變量名字的區(qū)域大小


//定義符號表元素的數(shù)據(jù)結(jié)構(gòu)
struct?entry
{
char?*lexptr; //該指針指向符號名字的存儲位置

int??type; //該變量保存該符號的類型(char型bool型int型或float型)(1:char2:bool3:int4:float)

float???token; //改變量保存該符號的值(都為float型,依靠type來做區(qū)分)
};

extern?entry?symtable[IDNUMMAX];//定義符號表

extern?char??lexemes[LETNUMMAX];//定義變量名字的實(shí)際存儲區(qū)域

extern?int?lastentry;????//symtable中最后引用的位置

int???lastchar?=?-1; ?//lexemes中最后引用的位置




//定義結(jié)點(diǎn)種類枚舉類型
typedef?enum?nodeKind?
{
kind_prog //prog
kind_lines?????????????//lines
kind_expr //expr
kind_stmt //stmt
kind_rela_stmt //rela_stmt
kind_type //type
kind_const //const
kind_ID //ID(標(biāo)示浮)
kind_const_value //常量(單字符常量:COUNTCHAR布爾型常量:truefalse整型常量:COUNTINTNUM浮點(diǎn)常量:COUNTFLOATNUM)
}???NodeKind?;



//定義樹結(jié)點(diǎn)結(jié)構(gòu)
typedef?struct?treeNode
{???
????treeNode?*?child[MAXCHILDREN];?//指向其孩子結(jié)點(diǎn)的指針

treeNode?*?sibling; ??//保存指向其右兄弟結(jié)點(diǎn)的指針


int?Currnode_number; ???//保存該結(jié)點(diǎn)的編號

int?lineno; ???//保存某些結(jié)點(diǎn)對應(yīng)用戶程序的行號


NodeKind?nodekind;??//結(jié)點(diǎn)類型取值范圍為NodeKind中的值

int?nodekind_kind; //保存一個(gè)NodeKind類中所屬子類的類型,即編號(當(dāng)nodekind取kind_type具體值時(shí)
????????????????????//當(dāng)保存的nodekind_kind為1時(shí),表示對應(yīng)的結(jié)點(diǎn)為char型nodekind_kind為2時(shí)表示對應(yīng)的節(jié)點(diǎn)為bool型.....)

int?stmt_type; //當(dāng)nodekind為kind_stmt時(shí)表達(dá)式取值,該變量的值有效.保存stmt表達(dá)式的類型
????????????????????//(stmt_type為1時(shí),表示對應(yīng)的stmt表達(dá)式為char型;為2時(shí),表示其為bool型;為3時(shí),其為int型;為4時(shí),表示其為float型)

float?node_value; //當(dāng)結(jié)點(diǎn)為葉結(jié)點(diǎn)且其為kind_node_value時(shí)用來保存常量的值.

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件????????540??2008-12-14?19:10??ToAsm_第五次作業(yè)\ToAsm_第五次作業(yè).dsw

?????文件??????58368??2008-12-15?08:21??ToAsm_第五次作業(yè)\ToAsm_第五次作業(yè).ncb

?????文件?????115712??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\vc60.idb

?????文件?????143360??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\vc60.pdb

?????文件?????725089??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\ToAsm_第五次作業(yè).exe

?????文件????1295360??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\ToAsm_第五次作業(yè).pdb

?????文件??????54368??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\mylexer.obj

?????文件????2030468??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\ToAsm_第五次作業(yè).pch

?????文件?????482941??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\myparser.obj

?????文件?????910572??2008-12-15?08:20??ToAsm_第五次作業(yè)\Debug\ToAsm_第五次作業(yè).ilk

?????文件??????14859??2008-12-15?08:20??ToAsm_第五次作業(yè)\mylexer.v

?????文件??????24905??2008-12-15?08:20??ToAsm_第五次作業(yè)\myparser.v

?????文件????????751??2008-12-14?19:06??ToAsm_第五次作業(yè)\ToAsm.pgp

?????文件???????2941??2008-12-15?08:20??ToAsm_第五次作業(yè)\output.asm

?????文件????????433??2008-12-15?08:07??ToAsm_第五次作業(yè)\yyinn.txt

?????文件????????266??2008-12-15?08:20??ToAsm_第五次作業(yè)\ToAsm_第五次作業(yè).plg

?????文件???????1787??2008-12-15?08:20??ToAsm_第五次作業(yè)\mylexer.h

?????文件??????20652??2008-12-15?08:20??ToAsm_第五次作業(yè)\mylexer.cpp

?????文件???????2915??2008-12-15?08:20??ToAsm_第五次作業(yè)\myparser.h

?????文件?????101121??2008-12-15?08:20??ToAsm_第五次作業(yè)\myparser.cpp

?????文件????????201??2008-12-15?08:20??ToAsm_第五次作業(yè)\output.txt

?????文件??????48640??2008-12-15?08:21??ToAsm_第五次作業(yè)\ToAsm_第五次作業(yè).opt

?????文件???????4663??2008-12-15?08:21??ToAsm_第五次作業(yè)\ToAsm_第五次作業(yè).dsp

?????文件????????574??2008-12-15?08:21??ToAsm_第五次作業(yè)\ToAsm.pgw

?????文件??????71977??2008-12-15?14:04??ToAsm_第五次作業(yè)\myparser.y

?????文件???????8690??2008-12-15?14:05??ToAsm_第五次作業(yè)\mylexer.l

?????目錄??????????0??2008-12-14?19:10??ToAsm_第五次作業(yè)\Debug

?????目錄??????????0??2008-12-14?19:10??ToAsm_第五次作業(yè)

-----------?---------??----------?-----??----

??????????????6122153????????????????????28

............此處省略1個(gè)文件信息

評論

共有 條評論

相關(guān)資源