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

  • 大小: 23KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-08-24
  • 語言: 其他
  • 標(biāo)簽: 編譯原理??編譯器??

資源簡(jiǎn)介

這是一個(gè)基于某個(gè)自定義的文法(將在下面給出)所編寫的部分功能的編譯器。已經(jīng)實(shí)現(xiàn)了詞法分析(Lexer.h/cpp),語法分析(Parser.h/cpp)并建立語法分析樹,語法分析樹數(shù)據(jù)結(jié)構(gòu)(SyntaxTreeNode.h/cpp和SyntaxTree.h/cpp)。

資源截圖

代碼片段和文件信息

/**************************************************
*?file:?calc.cpp
*?date:?2006-06-30
*?author:?ideawu
*?describe:?a?really?small?and?simple?caculator.
* with?known?bugs.
**************************************************/

#include?
#include?
#include?

#include?“Parser.h“

float?calc(SyntaxTree?*tree);

int?main(int?argc?char*?argv[]){
char?buf[1024]?=?“a=“;
SyntaxTree?*tree?=?NULL;
Lexer?*lexer?=?new?Lexer();
Parser?*parser?=?new?Parser();

lexer->setSrc(buf?1024);
parser->setLexer(lexer);

printf(“>>“);
scanf(“%s“?&buf[2]);
while(strcmp(buf?“a=quit“)?!=?0){
tree?=?parser->parse();

if(tree!=NULL){
//tree->display();
printf(“%g\n“?calc(tree->getRight()));
}else{
parser->printError();
}
printf(“>>“);
scanf(“%s“?&buf[2]);
parser->reset();
}

printf(“\n“);

return?0;
}

float?calc(SyntaxTree?*tree){
float?a=0?b=0?val=0;

if(tree?!=?NULL){
if(tree->getRootNode()->getType()?==?NUM){
return?tree->getRootNode()->getValue();
}
a?=?calc(tree->getLeft());
b?=?calc(tree->getRight());

switch(tree->getRootNode()->getType()){
case?PLUS:
val?=?a?+?b;
break;
case?MINUS:
val?=?a?-?b;
break;
case?MUL:
val?=?a?*?b;
break;
case?DIV:
if(b?!=?0){
val?=?a?/?b;
}
break;
default:
break;
}
}

return?val;

}



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

?????文件???????1368??2006-06-30?10:27??簡(jiǎn)易編譯器??源代碼\calc.cpp

?????文件????????807??2006-04-15?19:34??簡(jiǎn)易編譯器??源代碼\common.h

?????文件???????5186??2006-06-30?08:10??簡(jiǎn)易編譯器??源代碼\Lexer.cpp

?????文件????????515??2006-06-30?07:56??簡(jiǎn)易編譯器??源代碼\Lexer.h

?????文件????????716??2006-04-20?14:59??簡(jiǎn)易編譯器??源代碼\main.cpp

?????文件????????668??2008-06-02?16:29??簡(jiǎn)易編譯器??源代碼\Makefile

?????文件???????7728??2006-06-30?08:48??簡(jiǎn)易編譯器??源代碼\Parser.cpp

?????文件????????810??2006-06-30?07:31??簡(jiǎn)易編譯器??源代碼\Parser.h

?????文件???????3899??2006-06-30?08:28??簡(jiǎn)易編譯器??源代碼\SyntaxTree.cpp

?????文件???????1201??2006-04-15?07:56??簡(jiǎn)易編譯器??源代碼\SyntaxTree.h

?????文件???????1570??2006-06-30?08:28??簡(jiǎn)易編譯器??源代碼\SyntaxTreeNode.cpp

?????文件???????1106??2006-04-15?07:50??簡(jiǎn)易編譯器??源代碼\SyntaxTreeNode.h

?????文件??????65730??2006-06-26?09:31??簡(jiǎn)易編譯器??源代碼\temp.txt

?????文件?????????40??2006-06-26?09:21??簡(jiǎn)易編譯器??源代碼\test.txt

?????文件????????769??2006-04-17?17:03??簡(jiǎn)易編譯器??源代碼\test_complex.txt

?????文件????????113??2006-04-17?18:35??簡(jiǎn)易編譯器??源代碼\test_error.txt

?????目錄??????????0??2011-06-16?22:11??簡(jiǎn)易編譯器??源代碼

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

????????????????92226????????????????????17


評(píng)論

共有 條評(píng)論