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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lr0forwindlg.cpp

?? lr(0),語(yǔ)法分析
?? CPP
字號(hào):
// LR0ForWinDlg.cpp : implementation file
//

#include "stdafx.h"
#include "LR0ForWin.h"
#include "LR0ForWinDlg.h"
#include "TableDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLR0ForWinDlg dialog

CLR0ForWinDlg::CLR0ForWinDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLR0ForWinDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLR0ForWinDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CLR0ForWinDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLR0ForWinDlg)
	DDX_Control(pDX, IDC_VTLIST, m_vtlist);
	DDX_Control(pDX, IDC_VTEDIT, m_vtedit);
	DDX_Control(pDX, IDC_VNLIST, m_vnlist);
	DDX_Control(pDX, IDC_VNEDIT, m_vnedit);
	DDX_Control(pDX, IDC_STARTEDIT, m_startedit);
	DDX_Control(pDX, IDC_PLIST, m_plist);
	DDX_Control(pDX, IDC_PEDIT, m_pedit);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CLR0ForWinDlg, CDialog)
	//{{AFX_MSG_MAP(CLR0ForWinDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_VNADD, OnVnadd)
	ON_BN_CLICKED(IDC_CLEAR, OnClear)
	ON_BN_CLICKED(IDC_GTABLE, OnGtable)
	ON_BN_CLICKED(IDC_IMPORT, OnImport)
	ON_BN_CLICKED(IDC_PADD, OnPadd)
	ON_BN_CLICKED(IDC_PDEL, OnPdel)
	ON_BN_CLICKED(IDC_SAVE, OnSave)
	ON_BN_CLICKED(IDC_VNDEL, OnVndel)
	ON_BN_CLICKED(IDC_VTADD, OnVtadd)
	ON_BN_CLICKED(IDC_VTDEL, OnVtdel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLR0ForWinDlg message handlers

BOOL CLR0ForWinDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CLR0ForWinDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CLR0ForWinDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CLR0ForWinDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CLR0ForWinDlg::OnOK() 
{
	// TODO: Add extra validation here
	
//	CDialog::OnOK();
}

void CLR0ForWinDlg::OnVnadd() 
{
	CString string;
	m_vnedit.GetWindowText(string);
	if(string.GetLength()!=1)
		MessageBox("您輸入的非終結(jié)符有誤,請(qǐng)檢查!","錯(cuò)誤", MB_OK | MB_ICONSTOP);
	else
	{
		if((m_vnlist.FindStringExact(-1, string) == LB_ERR) && (string!=""))
			m_vnlist.AddString(string);
	}
	m_vnedit.SetFocus();
	m_vnedit.SetSel(0, -1);	
}

void CLR0ForWinDlg::OnClear() 
{
	m_vtlist.ResetContent();
	m_vnlist.ResetContent();
	m_plist.ResetContent();
	m_vtedit.SetWindowText("");
	m_vnedit.SetWindowText("");
	m_pedit.SetWindowText("");
	m_startedit.SetWindowText("");		
}

void CLR0ForWinDlg::OnGtable() 
{
	CTableDlg dlg;
	dlg.SetControlInfo(IDC_EXPLORER1, RESIZE_BOTH);
	dlg.SetControlInfo(IDOK, ANCHORE_BOTTOM | ANCHORE_RIGHT);
	dlg.SetControlInfo(IDC_EXPORT, ANCHORE_BOTTOM | ANCHORE_RIGHT);
	dlg.SetControlInfo(IDC_ANALYZE, ANCHORE_BOTTOM | ANCHORE_RIGHT);
	string temp = "";
	CString t;
	for(int i = 0; i < m_vtlist.GetCount(); i++)
	{
		m_vtlist.GetText(i,t);
		//temp.push_back(t.GetAt(0));
		temp += t.GetAt(0);
	}
	dlg.g.SetVt(temp);
	temp = "";
	for(i = 0; i < m_vnlist.GetCount(); i++)
	{
		m_vnlist.GetText(i,t);
		//temp.push_back(t.GetAt(0));
		temp += t.GetAt(0);
	}
	dlg.g.SetVn(temp);
	m_startedit.GetWindowText(t);
	if (t == "")
	{
		MessageBox("輸入的文法有誤,請(qǐng)檢查!", "錯(cuò)誤",MB_OK | MB_ICONSTOP);
		return;
	}
	dlg.g.SetStart(t.GetAt(0));
	temp = "";
	for(i = 0; i < m_plist.GetCount(); i++)
	{
		temp = "";
		m_plist.GetText(i,t);
		for(int j = 0; j < t.GetLength(); j ++)
			//temp.push_back(t.GetAt(j));
			temp += t.GetAt(j);
		dlg.g.AddPrecept(temp);
	}
	if(dlg.g.IsGrammarLegal())
	{
		dlg.g.GenerateLR0Table();
		dlg.DoModal();
	}
	else
	{
		MessageBox("輸入的文法有誤,請(qǐng)檢查!", "錯(cuò)誤",MB_OK | MB_ICONSTOP);
	}		
}

void CLR0ForWinDlg::OnImport() 
{
   char szFilters[]=
      "文法文件 (*.txt)|*.txt|All Files (*.*)|*.*||";

	CFileDialog fdlg (TRUE, "txt", "*.txt",
      OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);

	if(fdlg.DoModal() == IDOK)
	{
		OnClear();
		CString pathName = fdlg.GetPathName();
		CStdioFile InFile;
		InFile.Open(pathName,CFile::modeRead);
		CString temp;
		InFile.ReadString(temp);
		if (temp != "[Terminator]")
		{
			MessageBox("文法文件有誤!","錯(cuò)誤",MB_OK|MB_ICONSTOP);
			InFile.Close();
			return;
		}
		do
		{
			InFile.ReadString(temp);
			if(temp=="") 
				break;
			m_vtlist.AddString(temp);
		}while(true);
		InFile.ReadString(temp);
		if (temp != "[NonTerminator]")
		{
			MessageBox("文法文件有誤!","錯(cuò)誤",MB_OK|MB_ICONSTOP);
			InFile.Close();
			return;
		}
		do
		{
			InFile.ReadString(temp);
			if(temp=="") 
				break;
			m_vnlist.AddString(temp);
		}while(true);
		InFile.ReadString(temp);
		if (temp != "[Starter]")
		{
			MessageBox("文法文件有誤!","錯(cuò)誤",MB_OK|MB_ICONSTOP);
			InFile.Close();
			return;
		}
		InFile.ReadString(temp);
		m_startedit.SetWindowText(temp);
		InFile.ReadString(temp);
		InFile.ReadString(temp);
		if (temp != "[Precept]")
		{
			MessageBox("文法文件有誤!","錯(cuò)誤",MB_OK|MB_ICONSTOP);
			InFile.Close();
			return;
		}
		do
		{
			InFile.ReadString(temp);
			if(temp == "") 
				break;
			m_plist.AddString(temp);
		}while((true)&&(InFile.GetPosition()!=InFile.GetLength()));
		InFile.Close();
			
	}		
}

void CLR0ForWinDlg::OnPadd() 
{
	CString string;
	m_pedit.GetWindowText(string);
	if(string.Find("->") == -1)
		MessageBox("您輸入的生成式不合法,請(qǐng)檢查!","錯(cuò)誤", MB_OK | MB_ICONSTOP);
	else
	{
		if((m_plist.FindStringExact(-1, string) == LB_ERR)&&(string!=""))
			m_plist.AddString(string);
		m_pedit.SetFocus();
		m_pedit.SetSel(0, -1);
	}		
}

void CLR0ForWinDlg::OnPdel() 
{
	int iPos;
	if ((iPos = m_plist.GetCurSel()) != LB_ERR) 
	m_plist.DeleteString(iPos);
	m_pedit.SetFocus();
	m_pedit.SetSel(0, -1);		
}

void CLR0ForWinDlg::OnSave() 
{
	char szFilters[]=
      "文法文件 (*.txt)|*.txt|All Files (*.*)|*.*||";

	CFileDialog fdlg (FALSE, "txt", "*.txt",
       OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilters, this);
	if(fdlg.DoModal()==IDOK)
	{
		CString pathName = fdlg.GetPathName();
		CStdioFile OutFile;
		OutFile.Open(pathName,CFile::modeCreate | CFile::modeWrite);
		CString t;
		OutFile.WriteString("[Terminator]\n");
		
		for(int i = 0; i < m_vtlist.GetCount(); i++)
		{
			m_vtlist.GetText(i,t);
			t += "\n";
			OutFile.WriteString(t);
			
		}
		OutFile.WriteString("\n[NonTerminator]\n");
		for(i = 0; i < m_vnlist.GetCount(); i++)
		{
			m_vnlist.GetText(i,t);
			t += "\n";
			OutFile.WriteString(t);
		}
		OutFile.WriteString("\n[Starter]\n");
		m_startedit.GetWindowText(t);
		t += "\n\n[Precept]\n";
		OutFile.WriteString(t);
		for(i = 0; i < m_plist.GetCount(); i++)
		{
			m_plist.GetText(i,t);
			t += "\n";
			OutFile.WriteString(t);
		}
		OutFile.Close();
	}		
}

void CLR0ForWinDlg::OnVndel() 
{
	int iPos;
	if ((iPos = m_vnlist.GetCurSel()) != LB_ERR) 
	m_vnlist.DeleteString(iPos);
	m_vnedit.SetFocus();
	m_vnedit.SetSel(0, -1);	
}

void CLR0ForWinDlg::OnVtadd() 
{
	CString string;
	m_vtedit.GetWindowText(string);
	if(string.GetLength()!=1)
		MessageBox("您輸入的終結(jié)符有誤,請(qǐng)檢查!","錯(cuò)誤", MB_OK | MB_ICONSTOP);
	else
	{
		if((m_vtlist.FindStringExact(-1, string) == LB_ERR) && (string!=""))
			m_vtlist.AddString(string);
	}
	m_vtedit.SetFocus();
	m_vtedit.SetSel(0, -1);	
}

void CLR0ForWinDlg::OnVtdel() 
{
	int iPos;
	if ((iPos = m_vtlist.GetCurSel()) != LB_ERR) 
	m_vtlist.DeleteString(iPos);
	m_vtedit.SetFocus();
	m_vtedit.SetSel(0, -1);	
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品夜色噜噜亚洲a∨| 欧美精品 国产精品| 国产精品女同互慰在线看| 大胆亚洲人体视频| 亚洲人成小说网站色在线| 91蜜桃网址入口| 亚洲国产wwwccc36天堂| 日韩精品一区二区三区在线观看| 免费看日韩a级影片| xf在线a精品一区二区视频网站| 久久成人免费日本黄色| 国产亚洲午夜高清国产拍精品| 成人高清av在线| 亚洲国产婷婷综合在线精品| 欧美一区二区三区视频免费 | 亚洲男同性恋视频| 91久久精品国产91性色tv| 亚洲成人福利片| 26uuu国产日韩综合| av网站免费线看精品| 亚洲成a人v欧美综合天堂下载| 日韩精品专区在线影院重磅| heyzo一本久久综合| 日日欢夜夜爽一区| 日本一区二区三区在线观看| 97se亚洲国产综合在线| 日韩高清不卡一区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 日本高清不卡在线观看| 国产一区二区三区免费| 亚洲午夜激情av| 国产精品婷婷午夜在线观看| 国产成人亚洲综合a∨婷婷图片| 亚洲一区在线看| 久久久久免费观看| 欧美日韩一级黄| 成人成人成人在线视频| 蜜乳av一区二区三区| 亚洲美女在线一区| 国产欧美日韩亚州综合| 欧美二区三区91| 97精品视频在线观看自产线路二| 美女在线一区二区| 亚洲精品久久久蜜桃| 久久久综合精品| 欧美一区二区人人喊爽| 在线视频中文字幕一区二区| 国产不卡免费视频| 久久电影网站中文字幕| 天堂va蜜桃一区二区三区 | 亚洲自拍偷拍综合| 中文字幕成人av| 亚洲精品在线三区| 欧美一区二区三区视频免费播放| 91久久久免费一区二区| 91一区一区三区| 成人三级在线视频| 国产白丝精品91爽爽久久| 麻豆国产精品777777在线| 一区二区高清免费观看影视大全| 国产精品久久久久久久第一福利| 精品国产麻豆免费人成网站| 欧美狂野另类xxxxoooo| 欧美三级电影网| 欧美影院一区二区| 在线视频欧美区| 色噜噜偷拍精品综合在线| 99精品视频在线观看| 成人性生交大片免费看中文 | 日韩欧美精品三级| 3d动漫精品啪啪一区二区竹菊 | 亚洲人成网站影音先锋播放| 中文字幕成人在线观看| 国产日产欧美一区二区三区| 精品国产乱码久久久久久老虎| 日韩一二三区视频| 日韩午夜在线影院| 日韩精品一区二区三区三区免费| 欧美一区二区三区四区五区 | 亚洲午夜免费福利视频| 亚洲一区二区三区四区五区黄| 伊人夜夜躁av伊人久久| 夜夜揉揉日日人人青青一国产精品| 伊人性伊人情综合网| 亚洲观看高清完整版在线观看| 亚洲福利视频一区二区| 日韩国产高清影视| 国产麻豆精品视频| 成人午夜碰碰视频| 97久久超碰国产精品| 欧美亚洲国产一区二区三区| 欧美三级韩国三级日本三斤| 日韩一级欧美一级| 国产拍欧美日韩视频二区| ㊣最新国产の精品bt伙计久久| 国产精品高潮呻吟| 亚洲国产欧美日韩另类综合| 视频一区在线视频| 国产精品一区不卡| 日本乱人伦aⅴ精品| 91精品国产乱| 国产午夜亚洲精品羞羞网站| 亚洲天堂av一区| 午夜精品福利一区二区三区av| 麻豆视频观看网址久久| jlzzjlzz欧美大全| 国产亚洲成年网址在线观看| 中文字幕亚洲综合久久菠萝蜜| 一区二区三区久久久| 裸体在线国模精品偷拍| aaa国产一区| 欧美精选午夜久久久乱码6080| 久久亚洲捆绑美女| 一区二区三区免费在线观看| 久久国产精品免费| 在线观看不卡一区| 久久品道一品道久久精品| 国产一区二区三区免费看| av电影天堂一区二区在线 | 2023国产一二三区日本精品2022| 国产精品乱人伦一区二区| 日韩精品成人一区二区三区| 成人深夜视频在线观看| 日韩视频免费观看高清完整版在线观看 | 日本在线观看不卡视频| 国产一区二区在线观看免费| 在线观看av不卡| 国产区在线观看成人精品 | 国产很黄免费观看久久| 欧美人妇做爰xxxⅹ性高电影| 日本一区二区三区四区| 日韩国产精品久久| 日本久久一区二区| 国产精品伦一区| 国产另类ts人妖一区二区| 7777精品伊人久久久大香线蕉| 中文字幕欧美激情| 国产一区日韩二区欧美三区| 欧美丰满美乳xxx高潮www| 亚洲精品水蜜桃| 成人免费观看男女羞羞视频| 精品国一区二区三区| 亚洲电影欧美电影有声小说| 99久久精品免费精品国产| 国产亚洲一区二区三区四区| 久久99精品久久只有精品| 欧美日韩mp4| 亚洲国产美国国产综合一区二区| 99久久精品费精品国产一区二区| 欧美精品一区二区三区蜜臀 | 一区二区三区四区蜜桃| 国产a精品视频| 欧美xxx久久| 奇米777欧美一区二区| 欧美日韩高清在线| 亚洲一区中文在线| 91麻豆高清视频| 中文字幕视频一区| 成人av在线资源网| 中文字幕在线免费不卡| 丁香婷婷综合色啪| 国产精品午夜久久| www.亚洲在线| 国产精品美女久久久久高潮| 高清av一区二区| 日本一区二区三区四区在线视频| 国产精选一区二区三区| 久久精品视频免费| 粉嫩嫩av羞羞动漫久久久 | 精品国产乱码久久久久久久| 久久激情五月激情| 2014亚洲片线观看视频免费| 国产一区二区h| 国产精品久久久一区麻豆最新章节| 国产91精品在线观看| 欧美国产国产综合| 99国产精品国产精品久久| 一区二区三区在线观看视频 | 91麻豆国产自产在线观看| 亚洲卡通欧美制服中文| 欧美日韩卡一卡二| 久久电影网站中文字幕| 国产欧美一区二区在线观看| 不卡视频一二三| 亚洲午夜一区二区三区| 91精品国产日韩91久久久久久| 精品一区二区三区在线观看国产| 久久五月婷婷丁香社区| 成人aaaa免费全部观看| 亚洲午夜av在线| 精品日韩一区二区| 99久久99久久综合| 亚洲gay无套男同| 久久五月婷婷丁香社区| 99久久99久久综合| 日本美女视频一区二区| 国产欧美日韩久久| 欧美日韩免费一区二区三区视频| 麻豆精品一区二区三区| 最新成人av在线|