如何用c++做一個編譯器(一)
程式碼連結
https://github.com/Wchenguang/wkC-compiler
詞法分析器第一階段
介紹:
一。Lexer.h Lexer.cpp
1. Lexer : 詞法分析器
構造:通過檔名來構造
功能:使用fstream讀取一個檔案,並進行詞法分析,getToken() 介面為語法分析順序提供單詞
成員hashMap:是利用連結串列法解決衝突的雜湊表,從檔案解析出一個單詞後,經過雜湊,查詢到map中的位置,若不存在則插入,插入的是Token型別的指標,Token由字元 串構造
成員tokenList:順序儲存單詞指標,為語法分析順序提供token
二。FA.h FA.cpp
各種自動機的實現,暫時只實現了幾個判別函式,和一個解析空白的自動機
三。後續工作
繼續豐富自動機型別,完成analyze() 函式進行解析
上火車了,十一快樂
相關推薦
如何用c++做一個編譯器(一)
程式碼連結 https://github.com/Wchenguang/wkC-compiler 詞法分析器第一階段 介紹: 一。Lexer.h Lexer.cpp 1. Lexer : 詞法分析器 構造:通過檔名來構造 功能:使用fstream讀取一個檔案,並進行詞法分
如何用c++做一個編譯器(二)
程式碼地址 https://github.com/Wchenguang/wkC-compiler/tree/master/Lexer-2 1. 向FA中添加了多個自動機,已經可以正常工作為語法分析提供 token 2. 加入了Error模組用於處理遇到的錯
用C#做一個簡單紙牌遊戲的程式
小子不才學C#沒多久,想做個窗體紙牌遊戲玩,但是窗體應用懂得不多,只能在控制命令臺上進行遊戲設計,希望有大神能幫我設計這個窗體程式,或者推薦好的窗體設計資料,謝謝了,控制命令臺程式如下: namespace BasicCardsGame { class OutOfR
用C++做了一個圖書管理系統
圖書管理系統功能如下: 新增書籍。 刪除書籍。當系統中存在此書時,刪除該書籍,否則提示使用者刪除失敗。 借閱書籍。當系統中存在此書且未被借閱時,將書的狀態設定為“借出”,否則提示使用者借閱失敗。 歸還書籍。當系統中存在未歸換的該書時,將書的狀態設定為“可用”,否則提示使用者歸還失敗。
用C++做一次雞兔同籠 2017.3.17
這節課做了一道雞兔同籠的題,用最大的“武器庫”。 “int”是整數,“double”是小數; 要先給定義變數,然後賦值,接著用題目中解出的方程求雞和兔子的只數,最後用F11輸出 。(做出來還有點兒成就感,呵呵) 這些是c++的一些知識體系,網上搜的, C語言語法知識
(一)用C++寫一個紅黑樹/區間樹
lab2 紅黑樹&區間樹(C實現) 本文分為3部分,第一部分實現一棵紅黑樹的左旋/右旋/插入和刪除。 第二部分將第一部分中的紅黑樹擴充套件成一棵區間樹。 第三部分是對區間樹(插入/刪除/搜尋)的測試。 part 1 紅黑樹的插入刪除操作 part 2 區間樹重疊區間查詢
用Jmeter做一個簡單的介面測試(一)
Jmeter介面測試例項 1.新建一個Thread Group 2. 線上程組下建一個HTTP請求 3. 在http請求下建檢視結果樹 4. 在http請求下建聚合報告 5.在http請求下建圖形結果 6.執行 最後右擊執行緒組,單擊
自己用C#做的一個萬年曆
剛開始接觸C#不久,自己嘗試做了一個日曆,說是說萬年曆哈其實只從1900開始算起哈,因為題目就是這樣的。先貼一下題目; 實現傳入一個年份後,輸出改年份每個月的資訊,星期和日期; 提示:1900.1.1剛好是星期一 下面是程式碼:using System; us
C#調用vlc做一個播放器
location root otf 應用 develop get com lec directory 開發環境: Visual Studio 2015 .Net Framework 4.5 1.新建一個Windows窗體應用程序 修改框架為.Net Framew
用C++設計一個不能被繼承的類(轉)
它的 設計 指定 基於 構造 重寫 rtu 構造函數、析構函數 析構函數 在Java 中定義了關鍵字final,被final修飾的類不能被繼承。 首先想到的是在C++中,子類的構造函數會自動調用父類的構造函數。同樣,子類的析構函數也會自動調用父類的析構函數。要想一個類不能
怎麽用cookie做一個選項卡?
eight splay i++ 作用 code round tab 多網站 個性化 什麽是cookie? Cookies雖然一般都以英文名呈現,但是它還是有一個可愛的中文名“小甜餅”。Cookies是指服務器暫存放在你的電腦裏的txt格式的文本文件資料,主要用
如何用C#做一個懸浮窗口程序
mos 判斷 pan item private red req sep 此外 用C#做一個像FlashGet的懸浮窗口,其實很簡單,不像以前需要調用很多系統API。大致的步驟如下。 首先是主窗體部分,即要判斷窗體的狀態來決定是否顯示懸浮窗口。 局部成員聲明: p
繞過010Editor網絡驗證(用python做一個仿真http server真容易,就幾行代碼)
headers redirect 如果 table 本地 align cnn 破解版 resp 010Editor是一款非常強大的十六進制編輯器,尤其是它的模板功能在分析文件格式時相當好用!網上現在也有不少010Editor的破解版,如果沒錢或者舍不得花錢買授權的話,去官方
星期四、星期五、星期一—用GUI做一個簡易的交易系統
his 換行 巧克力 cal show .get ner 文本域 array 1、登錄界面 package org.eclipse.wb.swing; //登錄界面 import java.awt.BorderLayout;import java.awt.EventQue
用 C# 實現一個簡單的 Rest Service 供外部調用
message [] operation rem adk www span method title 用 C# 實現一個簡單的 Restful Service 供外部調用,大體總結為4點: The service contract (the methods it o
用vue做一個酷炫的menu
方法 tar ges enter 導入 count https 簡單 ren 寫在前面 最近看到一個非常酷炫的menu插件,一直想把它鼓搗成vue形式,誰讓我是vue的死灰粉呢,如果這都不算愛??。??開個小玩耍,我們一起來探索黑魔法吧。觀看本教程的讀者需要
C#做一個簡單的進行串口通信的上位機
時序 網上 fun style 什麽 函數 數值 pos 表示 C#做一個簡單的進行串口通信的上位機 1、上位機與下位機 上位機相當於一個軟件系統,可以用於接收數據、控制數據。即可以對接收到的數據直接發送操控命令來操作數據。上位機可以接收下位機的信號。下位機是一個
【python基礎】用字典做一個小型的查詢數據庫
import oot 字符 odin 參數錯誤 err 輸出 put 異常 例子來源於《python基礎教程》第三版,57p 該例子主要是使用字典的方式,實現一個小型的數據庫,通過查詢字典的鍵值來獲取用戶的信息。 本人修改了部分代碼。 #!/usr/bin/python3
用c實現一個跳動的小球
#include<stdio.h> #include<stdlib.h> int main() { int x=1,y=1,dirx=1,diry=1; for(;;) { int line,col; fo
懶人動手,用python做一個基礎翻譯重新命名器(破解百度翻譯反爬手段)
想法: 在做開發的時候,經常需要命名各種變數,方法/函式,類,包,庫等。 走一遍流程就是:想好要起的名字,比如“非常帥氣”; 然後上翻譯網站,比如百度翻譯,有道翻譯; 將中文輸入並讓其翻譯成英文,此時就得出一個“very handsome”的單詞; 根據駝峰命名法,我們最後需要得