亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scannerview.cpp

?? 詞法語法語義編譯器
?? CPP
字號:
// scannerView.cpp : implementation of the CScannerView class
//

#include "stdafx.h"
#include "scanner.h"
//#include "DemoView.h"
//#include "CompileWord.h"
#include "scannerView.h"
#include "SimpleCompiler.h"

#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CScannerApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CScannerView

IMPLEMENT_DYNCREATE(CScannerView, CEditView)

BEGIN_MESSAGE_MAP(CScannerView, CEditView)
	//{{AFX_MSG_MAP(CScannerView)
	ON_COMMAND(ID_COMPILE_WORD, OnCompileWord)
	ON_COMMAND(ID_FILE_SAVE, OnFileSave)
	ON_COMMAND(ID_COMPILE_GRAMMER, OnCompileGrammer)
	ON_COMMAND(ID_COMPILE_MEANING, OnCompileMeaning)
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
	ON_UPDATE_COMMAND_UI(ID_COMPILE_GRAMMER, OnUpdateCompileGrammer)
	ON_UPDATE_COMMAND_UI(ID_COMPILE_MEANING, OnUpdateCompileMeaning)
	ON_UPDATE_COMMAND_UI(ID_COMPILE_WORD, OnUpdateCompileWord)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScannerView construction/destruction

CScannerView::CScannerView()
{
	// TODO: add construction code here
    m_SCompiler=new CSimpleCompiler();
	this->m_readySC=false;
}

CScannerView::~CScannerView()
{
	delete m_SCompiler;
}

BOOL CScannerView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	BOOL bPreCreated = CEditView::PreCreateWindow(cs);
	cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);	// Enable word-wrapping

	return bPreCreated;
}

/////////////////////////////////////////////////////////////////////////////
// CScannerView drawing

void CScannerView::OnDraw(CDC* pDC)
{
	CScannerDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
    

}

/////////////////////////////////////////////////////////////////////////////
// CScannerView printing

BOOL CScannerView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default CEditView preparation
	return CEditView::OnPreparePrinting(pInfo);
}

void CScannerView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// Default CEditView begin printing.
	CEditView::OnBeginPrinting(pDC, pInfo);
}

void CScannerView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// Default CEditView end printing
	CEditView::OnEndPrinting(pDC, pInfo);
}

/////////////////////////////////////////////////////////////////////////////
// CScannerView diagnostics

#ifdef _DEBUG
void CScannerView::AssertValid() const
{
	CEditView::AssertValid();
}

void CScannerView::Dump(CDumpContext& dc) const
{
	CEditView::Dump(dc);
}

CScannerDoc* CScannerView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CScannerDoc)));
	return (CScannerDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CScannerView message handlers






void CScannerView::OnCompileWord() 
{
	//CDemoView *pWnd;
	//pWnd=(CDemoView *)m_wndSplitter.GetPane(1,0);
    //pWnd->OnPrin();


	// TODO: Add your command handler code here
	//如果做了修改就保存源程序
	//ModifySave();
	if (!ModifySave()) return;
	//PTokenNode pTokenFile;							//token串頭指針
	//PErrorNode pErrorCollection;						//錯誤信息頭指針
    this->m_SCompiler->SetSourceFile(((CScannerDoc *)this->GetDocument())->GetPathName());
	this->m_SCompiler->RunMorpheme();
	//pTokenFile = this->m_SCompiler->GetTokenFile();
    //pErrorCollection = this->m_SCompiler->GetErrorCollection();
	//在相應分割視圖中顯示
	CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    pFrame->m_pWnd->MyDrawing(m_SCompiler->GetErrorCollection());
    pFrame->m_pWnd1->MyDrawing(m_SCompiler->GetTokenFile());
	//pFrame->m_pWnd2->MyDrawing(m_SCompiler->GetErrorCollection());
//	strName.SetAt(strName.GetLength()+1,'a');
//	str=pDoc->GetTitle();
//	str=pDoc->GetPathName();
//	this->GetDC()->TextOut(10,10,str1.Left(6)+str);
//	str=CScannerDoc::GetTitle();
    //CString strErrorOut;
	//strErrorOut.Empty();
	
//    strName=scanner.IntoStr(54343);
//	MessageBox(strName,strPathName);
/*    CCompileWord scanner;
	scanner.WordScanner(strName,strPathName);

	CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    pFrame->m_pWnd->MyDrawing(scanner.GetError());
*/


    
//	strErrorOut=scanner.GetError();

//	if(!scanner.GetError().IsEmpty())
//		MessageBox(scanner.GetError(),"compiler infomation!");
//	else
//		MessageBox("Success!","compiler infomation!");
//	MessageBox(strError,strPathName);
//	OnDraw(this->GetDC());
//	MessageBox("源文件未保存或不能打開!","Error");	
}
void CScannerView::OnCompileGrammer() 
{
	// TODO: Add your command handler code here
	//如果做了修改就保存源程序
	//ModifySave();
	if (!ModifySave()) return;
	//執行語法分析
	this->m_SCompiler->SetSourceFile(((CScannerDoc *)this->GetDocument())->GetPathName());
	CString str;
	str.Empty();
	this->m_SCompiler->RunParsing();
	CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    pFrame->m_pWnd->MyDrawing(m_SCompiler->GetErrorCollection());
    pFrame->m_pWnd1->MyDrawing(m_SCompiler->GetTokenFile());
	pFrame->m_pWnd2->MyDrawingResult(str);
}

void CScannerView::OnCompileMeaning() 
{
	// TODO: Add your command handler code here
	//如果做了修改就保存源程序

	if(!ModifySave())return;
	
	//執行語義分析
	//
	this->m_SCompiler->SetSourceFile(((CScannerDoc *)this->GetDocument())->GetPathName());
	CString str;
	str.Empty();
	this->m_SCompiler->RunSemantic();
	CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    pFrame->m_pWnd->MyDrawing(m_SCompiler->GetErrorCollection());
    pFrame->m_pWnd1->MyDrawing(m_SCompiler->GetTokenFile());
	pFrame->m_pWnd2->MyDrawingFourElement(m_SCompiler->GetFSymbol());
}

void CScannerView::OnFileSave() 
{

	// TODO: Add your command handler code here
    //m_isChange=false; //保存后設定已更新源文件,可以開始分析

    CScannerDoc *pDoc=(CScannerDoc *)this->GetDocument();
	if (!pDoc->GetPathName().IsEmpty())
	{
		pDoc->OnSaveDocument(pDoc->GetPathName());
		return;
	}
	CString strPathName;

	CFileDialog fd(false,"txt",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"文本文檔(*.txt)|*.txt|所有文件(*.*)|*.*|");
	fd.m_ofn.lpstrTitle="保存";
	if(fd.DoModal()==IDOK)
	{
		pDoc->SetPathName((LPCTSTR)(strPathName=fd.GetPathName()));
		pDoc->OnSaveDocument(strPathName);
	}
	
	

}



bool CScannerView::ModifySave()
{
	/*
	CScannerDoc* pDoc = GetDocument();
    CString	strName=pDoc->GetTitle();
    CString strPathName=pDoc->GetPathName();
	if(strName.IsEmpty()||strPathName.IsEmpty()||m_isChange)
	{
		OnFileSave();		
	}    
	*/
	CScannerDoc *pDoc=(CScannerDoc *)this->GetDocument();
	CString strPathName=pDoc->GetPathName();
	if (strPathName.IsEmpty())
	{
		if (pDoc->IsModified())
		{
			if (this->MessageBox("是否保存源程序!","錯誤操作",MB_ICONWARNING | MB_OKCANCEL)==IDCANCEL)
			{
				return false;
			}
			else
			{
				CFileDialog fd(false,"txt",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"文本文檔(*.txt)|*.txt|所有文件(*.*)|*.*|");
				fd.m_ofn.lpstrTitle="請選擇你要保存的文件";
				if(fd.DoModal()==IDOK)
				{
					pDoc->SetPathName((LPCTSTR)(strPathName=fd.GetPathName()));
					
				}
				else
				{
					return false;
				}
			}
		}
		else
		{
			this->MessageBox("請輸入或打開源程序!","錯誤操作",MB_ICONWARNING | MB_OK);
			return false;
		}
	}

	pDoc->OnSaveDocument((LPCTSTR)strPathName);
	return true;
}

void CScannerView::OnFileOpen() 
{
	// TODO: Add your command handler code here
	CScannerDoc *pDoc=(CScannerDoc *)this->GetDocument();
	CString strPathName;

	CFileDialog fd(true,"txt",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"文本文檔(*.txt)|*.txt|所有文件(*.*)|*.*|");
	fd.m_ofn.lpstrTitle="打開";
	if(fd.DoModal()==IDOK)
	{
		pDoc->SetPathName((LPCTSTR)(strPathName=fd.GetPathName()));
		pDoc->OnOpenDocument(strPathName);
	}
}
void CScannerView::OnUpdateCompileWord(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	char strTemp[10];
	if (this->GetEditCtrl().GetLine(0,strTemp,9)>0 || this->GetEditCtrl().GetLineCount()>1)
	{
		this->m_readySC=true;
	}
	else
	{
		this->m_readySC=false;
	}
	pCmdUI->Enable(this->m_readySC);
}
void CScannerView::OnUpdateCompileGrammer(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here    
	pCmdUI->Enable(this->m_readySC);
}

void CScannerView::OnUpdateCompileMeaning(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(this->m_readySC);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区视频在线观看2020| 亚洲视频一二三| 日韩一区有码在线| 男女男精品视频网| 一本色道a无线码一区v| 久久欧美一区二区| 亚洲最新在线观看| 丁香激情综合国产| 日韩一区二区精品在线观看| 亚洲精品免费电影| 成人午夜免费av| 久久午夜电影网| 美腿丝袜亚洲综合| 精品成人在线观看| 午夜精品一区二区三区电影天堂 | 26uuu精品一区二区三区四区在线| 成人免费在线观看入口| 麻豆91小视频| 欧美一级在线观看| 午夜精品一区二区三区免费视频 | 精品一区二区久久| 欧美在线视频日韩| 亚洲女人****多毛耸耸8| 成人av在线资源网站| 久久久美女毛片| 老色鬼精品视频在线观看播放| 在线免费观看日本一区| 夜夜揉揉日日人人青青一国产精品| 丰满少妇久久久久久久| 久久久美女毛片| 丁香婷婷综合五月| 国产日韩欧美不卡| 国产精品一品二品| 日韩精品一区二区三区四区 | 国产成人免费视频| 精品捆绑美女sm三区| 青青草97国产精品免费观看无弹窗版| 欧美日韩国产在线观看| 亚洲成人一区二区在线观看| 欧美日韩成人综合| 日本不卡一区二区三区 | 欧美亚洲自拍偷拍| 午夜精品福利在线| 欧美一区二区三区婷婷月色| 三级一区在线视频先锋 | 亚洲一区在线视频| 在线免费亚洲电影| 日韩黄色小视频| 日韩欧美卡一卡二| 国产高清在线精品| 亚洲色图欧美偷拍| 欧美三级日韩三级| 美女免费视频一区二区| 久久久国产精品午夜一区ai换脸| 粉嫩av一区二区三区粉嫩| 中文字幕一区在线观看视频| 欧美性色综合网| 麻豆精品视频在线观看| 国产午夜精品一区二区三区视频 | 成人午夜电影网站| 有坂深雪av一区二区精品| 欧美日本视频在线| 国产乱人伦偷精品视频免下载 | 亚洲精品一区二区三区香蕉| 国产精品99久久久| 亚洲综合久久av| 亚洲精品在线电影| 91丝袜国产在线播放| 日韩电影在线观看一区| 国产三级久久久| 欧美日韩极品在线观看一区| 国产精品一线二线三线| 一片黄亚洲嫩模| 久久婷婷国产综合精品青草| 欧美午夜精品免费| 国产福利一区在线观看| 亚洲h在线观看| 中文字幕日韩精品一区 | 精品综合免费视频观看| 亚洲欧美色综合| 26uuu欧美| 欧美日韩精品一区二区三区蜜桃 | 久久97超碰色| 亚洲精品五月天| 国产性天天综合网| 67194成人在线观看| 91蜜桃在线免费视频| 国产在线不卡一区| 日本午夜精品一区二区三区电影| 国产精品国产三级国产| 国产精品天美传媒沈樵| 欧美一区二区在线看| 91久久人澡人人添人人爽欧美| 国产激情视频一区二区在线观看| 美女诱惑一区二区| 亚洲自拍偷拍九九九| 中文av一区二区| 久久久久国产精品免费免费搜索| 欧美一卡在线观看| 欧美亚洲日本国产| 一本大道久久a久久综合婷婷| 国产成人免费视频| 国产酒店精品激情| 久久99国内精品| 精品在线免费观看| 免费成人小视频| 日韩av中文字幕一区二区| 一卡二卡三卡日韩欧美| 亚洲黄网站在线观看| 18涩涩午夜精品.www| 国产精品电影一区二区| 中文欧美字幕免费| 亚洲欧美综合另类在线卡通| 国产精品美女久久久久aⅴ| 欧美激情中文不卡| 欧美激情中文不卡| 亚洲欧洲成人精品av97| 亚洲欧美韩国综合色| 一区二区三区日韩在线观看| 亚洲18女电影在线观看| 日韩电影在线观看电影| 看国产成人h片视频| 久久99精品国产麻豆婷婷洗澡| 国产精品自在在线| 成人晚上爱看视频| 色综合中文字幕国产 | 国产日韩欧美高清在线| 中日韩av电影| 亚洲视频一区二区在线| 一区二区三区**美女毛片| 亚洲高清免费观看高清完整版在线观看| 亚洲国产中文字幕在线视频综合| 天天综合日日夜夜精品| 麻豆精品蜜桃视频网站| 国产麻豆91精品| 99热国产精品| 欧美日本精品一区二区三区| 日韩免费看的电影| 国产蜜臀97一区二区三区| 美女性感视频久久| 亚洲与欧洲av电影| 成人高清视频在线观看| 国产精品一区在线观看乱码 | 在线亚洲人成电影网站色www| 欧美日韩一级视频| 97成人超碰视| 欧美午夜宅男影院| 亚洲精品一区二区三区精华液 | 91亚洲精品久久久蜜桃| 91福利在线看| 日韩欧美一区二区免费| 国产欧美日韩另类一区| 亚洲免费在线播放| 男人的天堂久久精品| 丰满少妇在线播放bd日韩电影| 欧美系列一区二区| 久久久国际精品| 香蕉成人伊视频在线观看| 国产福利一区在线观看| 欧美日韩专区在线| 国产欧美一区二区三区网站| 亚洲国产精品一区二区www| 国产精品77777| 欧美人牲a欧美精品| 国产欧美日韩不卡| 日韩在线a电影| 色综合天天综合网天天狠天天 | 久久99精品一区二区三区三区| 成人动漫视频在线| 欧美mv和日韩mv国产网站| 亚洲精品福利视频网站| 国产福利一区在线观看| 欧美一级日韩不卡播放免费| 亚洲免费观看在线观看| 国产一区二区不卡| 欧美精品1区2区| 亚洲自拍都市欧美小说| 国产不卡视频在线观看| 欧美激情一区二区| 另类调教123区| 69堂精品视频| 香蕉影视欧美成人| 欧美午夜精品免费| 亚洲另类春色国产| 99re在线视频这里只有精品| 国产欧美日韩另类一区| 国产一区福利在线| 日韩一卡二卡三卡| 日韩中文字幕区一区有砖一区| 在线中文字幕一区二区| 国产精品久久久久久久久动漫| 国产成人亚洲综合a∨婷婷图片 | 黄网站免费久久| 日韩欧美一级二级三级| 天天影视涩香欲综合网| 91成人在线精品| 亚洲永久免费视频| 色8久久人人97超碰香蕉987| 亚洲少妇屁股交4| 欧美伊人久久久久久午夜久久久久|