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

  • 大小: 22KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-13
  • 語言: C/C++
  • 標(biāo)簽:

資源簡(jiǎn)介

編譯原理消除無用產(chǎn)生式的文法化簡(jiǎn)。用C++寫的,實(shí)現(xiàn)消除無用產(chǎn)生式。

資源截圖

代碼片段和文件信息

#include?
#include?“parser.h“
#include?
#include?
#include?
#include?
#include?
#include?

char?sourcefile[FILENAME_LENGTH];
FILE?*in?=?(FILE?*)?0?*out?=?(FILE?*)?0;
FILE?*str=(FILE*)0;

//至命錯(cuò)誤--退出
#ifndef?EXIT_FAILURE
#define?EXIT_FAILURE?2
#endif

void?fatal_error(?const?char?msg[]?){
fprintf(?stderr?“%s\n“?msg?);
exit(?EXIT_FAILURE?);
}

void???local_init();
void???local_end();

static?int?_stdcall?act_identity(char&c);
static?int?_stdcall?act_comment2(char&c);
static?int?_stdcall?act_string(char&c);
static?int?_stdcall?act_comment1(char&c);
static?int?_stdcall?act_chinese(char&c);
static?int?_stdcall?act_number(char&cint?state);
static?void?*flex_alloc?(?unsigned?int?);
static?void?*flex_realloc?(?void?*?unsigned?int?);
static?void?flex_free?(?void?*?);


static?TUPLE?result_tuple;
static?int?linenum=1;
static?int?stringpos;
static?int?init?=?1;

#ifdef??USER_INIT
#undef??USER_INIT
#endif

#define?USER_INIT?local_init()
#ifdef??USER_END
#undef??USER_END
#endif

#define?USER_END?local_end()


struct?buffer_state{
FILE?*input_file;
char?*ch_buf; //輸入緩沖區(qū)
char?*buf_pos; //輸入緩沖區(qū)的當(dāng)前位置
unsigned?int?buf_size; //輸入緩沖區(qū)的大小不包括結(jié)束標(biāo)志
int?n_chars; //輸入緩沖區(qū)中字符數(shù)目不包括結(jié)束標(biāo)志
int?is_our_buffer; //是否擁有這個(gè)緩沖區(qū)同智能指針的解決方案
int?is_interactive; //是否是交互式的輸入源如果是控制臺(tái)則input_file為空
int?at_bol; //是否在行開始
int?fill_buffer; //如果緩沖區(qū)數(shù)據(jù)用完是否讀入新的數(shù)據(jù)如果為0的話表示文件結(jié)束
int?buffer_status; //緩沖區(qū)狀態(tài)下面有定義

#define?BUFFER_NEW 0
#define?BUFFER_NORMAL 1
#define?BUFFER_EOF_PENDING 2
};

typedef?struct?buffer_state?*BUFFER_STATE;
#define?END_OF_BUFFER_CHAR?0 //結(jié)束標(biāo)志
#define?BUF_SIZE ?1024 //定義緩沖區(qū)大小
#define?READ_BUF_SIZE?1024

//當(dāng)前緩沖區(qū)和它的窗口變量

static??BUFFER_STATE?current_buffer?=?0;
#define?CURRENT_BUFFER?current_buffer

static??char?hold_char;
static??int??n_chars;

#define?MORE_ADJ?0

static??char?*text;
static??char?*c_buf_p?=?(char?*)?0;


void?load_buffer_state(?void?){
n_chars?=?current_buffer->n_chars;
text?=?c_buf_p?=?current_buffer->buf_pos;
in?=?current_buffer->input_file;
hold_char?=?*c_buf_p;
}

//使b中的所有數(shù)據(jù)失效如果b為當(dāng)前緩沖區(qū)則重新裝載窗口變量
void?flush_buffer(?BUFFER_STATE?b?){
if?(?!?b?)
return;
b->n_chars?=?0;
b->ch_buf[0]?=?END_OF_BUFFER_CHAR;
b->ch_buf[1]?=?END_OF_BUFFER_CHAR;
b->buf_pos?=?&b->ch_buf[0];
b->at_bol?=?1;
b->buffer_status?=?BUFFER_NEW;
if?(?b?==?current_buffer?)
load_buffer_state();
}

//使b無效把file放入b中
void?init_buffer(?BUFFER_STATE?b?FILE?*file?){
flush_buffer(?b?);
b->input_file?=?file;
b->fill_buffer?=?1;
b->is_interactive?=?file???(isatty(?fileno(file)?)?>?0)?:?0;
}

//創(chuàng)建一個(gè)包裝好的緩沖區(qū)(filesize)
BUFFER_STATE?create_buffer(?FILE?*file?int?size?){
BUFFER_STATE?b;
b?=?(BUFFER_STATE)?flex_alloc(?sizeof(?struct?buffer_state?)?);
if?(?!?b?)
fatal_error(?“out?of?dynamic?memory?in?create_buffer()“?);
b->buf_size?=?size;
b->ch_buf?=?(char?*)?

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

?????文件????????761??2003-04-28?21:44??文法化簡(jiǎn)\Pascalex\example.pas

?????文件?????????92??2007-12-14?14:55??文法化簡(jiǎn)\Pascalex\example.str

?????文件????????871??2007-12-14?10:58??文法化簡(jiǎn)\Pascalex\example1.pas

?????文件???????2169??2007-12-14?14:55??文法化簡(jiǎn)\Pascalex\out.txt

?????文件??????17707??2007-12-14?08:58??文法化簡(jiǎn)\Pascalex\parser.cpp

?????文件???????1754??2007-12-13?10:25??文法化簡(jiǎn)\Pascalex\parser.h

?????文件????????789??2007-12-14?10:17??文法化簡(jiǎn)\Pascalex\pascal.cpp

?????文件???????3529??2007-12-14?10:30??文法化簡(jiǎn)\Pascalex\pascal.dsp

?????文件????????537??2007-12-13?19:50??文法化簡(jiǎn)\Pascalex\pascal.dsw

?????文件????????761??2003-04-28?21:44??文法化簡(jiǎn)\Pascalex\test2.pas

?????文件????????190??2007-12-13?12:12??文法化簡(jiǎn)\文法化簡(jiǎn)\common.h

?????文件????????188??2007-12-14?12:05??文法化簡(jiǎn)\文法化簡(jiǎn)\grammer.out.txt

?????文件?????????71??2007-12-13?16:31??文法化簡(jiǎn)\文法化簡(jiǎn)\grammer.txt

?????文件????????169??2007-12-14?12:11??文法化簡(jiǎn)\文法化簡(jiǎn)\grammer1.txt

?????文件????????100??2007-12-14?11:11??文法化簡(jiǎn)\文法化簡(jiǎn)\grammer2.out.txt

?????文件??????15457??2007-12-14?14:49??文法化簡(jiǎn)\文法化簡(jiǎn)\main.c

?????文件???????3375??2011-03-06?12:57??文法化簡(jiǎn)\文法化簡(jiǎn)\main.dsp

?????文件???????9181??2007-12-14?14:43??文法化簡(jiǎn)\文法化簡(jiǎn)\Production.h

?????文件???????3286??2007-12-14?11:27??文法化簡(jiǎn)\文法化簡(jiǎn)\SymbolSet.h

?????文件???????4486??2007-12-13?11:01??文法化簡(jiǎn)\文法化簡(jiǎn)\文法化簡(jiǎn).dsp

?????文件????????541??2007-11-25?11:34??文法化簡(jiǎn)\文法化簡(jiǎn)\文法化簡(jiǎn).dsw

?????文件????????149??2007-12-14?14:53??文法化簡(jiǎn)\文法化簡(jiǎn)\消除單產(chǎn)生式.txt

?????文件????????129??2007-12-14?14:53??文法化簡(jiǎn)\文法化簡(jiǎn)\消除無用產(chǎn)生式.txt

?????文件????????120??2007-12-14?14:53??文法化簡(jiǎn)\文法化簡(jiǎn)\消除空產(chǎn)生式.txt

?????目錄??????????0??2011-03-14?22:51??文法化簡(jiǎn)\文法化簡(jiǎn)\Debug

?????目錄??????????0??2011-03-14?22:51??文法化簡(jiǎn)\Pascalex

?????目錄??????????0??2011-03-14?22:51??文法化簡(jiǎn)\文法化簡(jiǎn)

?????目錄??????????0??2011-03-14?22:51??文法化簡(jiǎn)

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

????????????????66412????????????????????28

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

評(píng)論

共有 條評(píng)論

相關(guān)資源