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

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

資源簡介

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

資源截圖

代碼片段和文件信息

/****************************************************************************
*?????????????????????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?//每一個樹結點所擁有的孩子結點的最大個數

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

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


//定義符號表元素的數據結構
struct?entry
{
char?*lexptr; //該指針指向符號名字的存儲位置

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

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

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

extern?char??lexemes[LETNUMMAX];//定義變量名字的實際存儲區域

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

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




//定義結點種類枚舉類型
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(標示浮)
kind_const_value //常量(單字符常量:COUNTCHAR布爾型常量:truefalse整型常量:COUNTINTNUM浮點常量:COUNTFLOATNUM)
}???NodeKind?;



//定義樹結點結構
typedef?struct?treeNode
{???
????treeNode?*?child[MAXCHILDREN];?//指向其孩子結點的指針

treeNode?*?sibling; ??//保存指向其右兄弟結點的指針


int?Currnode_number; ???//保存該結點的編號

int?lineno; ???//保存某些結點對應用戶程序的行號


NodeKind?nodekind;??//結點類型取值范圍為NodeKind中的值

int?nodekind_kind; //保存一個NodeKind類中所屬子類的類型,即編號(當nodekind取kind_type具體值時
????????????????????//當保存的nodekind_kind為1時,表示對應的結點為char型nodekind_kind為2時表示對應的節點為bool型.....)

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

float?node_value; //當結點為葉結點且其為kind_node_value時用來保存常量的值.

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

............此處省略1個文件信息

評論

共有 條評論